Gå til innhold

Foto

[Løst] Feilmelding på kode

PHP

17 svar i denne tråden

#1 nepz

nepz

    Bruker

  • Medlemmer
  • 98 innlegg
  •   4. september 2011

Skrevet 7. oktober 2012 - 21:33

Har problemer med en kode, tror jeg har gjort alt riktig. Er sikkert bare en enkel ting. Noen som ser hva som er feil? Hadde vært nice om noen kunne svart meg før klokka 00.00, da skal oppgaven leveres. :tease: Det er en kode for å liste ut tall fra 0 tilogmed 20.

echo $sum / sizeof( $liste);

for($i=0; $i<count($table); $i++)

{

if($table[$i]>0 && ($table[$i]<20));

{

echo "$table[$i]";

{


Dette innlegget har blitt redigert av Krissey: 7. oktober 2012 - 21:34

  • 0

#2 hjahre

hjahre

    Bruker

  • Medlemmer
  • 436 innlegg
  •   27. februar 2006

Skrevet 7. oktober 2012 - 21:35

Ikke ha semikolon etter if.

echo $sum / sizeof( $liste);
for($i=0; $i<count($table); $i++) {
 if($table[$i]>0 && ($table[$i]<20)) {
  echo "$table[$i]";
 }
}

  • 1
I reject your reality and substitute my own — Adam Savage
See the driver hooks a function by patching the system core table, so its not safe to unload it unless another thread's about to jump in there and do its stuff, and you don't want to end up in the middle of invalid memory! — Moss

I'm more powerfull than God!!


#3 nepz

nepz

    Bruker

  • Medlemmer
  • 98 innlegg
  •   4. september 2011

Skrevet 7. oktober 2012 - 21:37

Ikke ha semikolon etter if.


echo $sum / sizeof( $liste);
for($i=0; $i<count($table); $i++) {
if($table[$i]>0 && ($table[$i]<20)) {
  echo "$table[$i]";
}
}

Herlig! Takk skal du ha, men tallene vises ikke av en eller annen grunn? Har du en idé til hva jeg kan gjøre?
  • 0

#4 hjahre

hjahre

    Bruker

  • Medlemmer
  • 436 innlegg
  •   27. februar 2006

Skrevet 7. oktober 2012 - 21:41

Du kan prøve med
echo $table[$i];
i stedet for
echo "$table[$i]";

Det er lenge sida jeg har holdt på med PHP, men jeg tror dette burde funke
  • 0
I reject your reality and substitute my own — Adam Savage
See the driver hooks a function by patching the system core table, so its not safe to unload it unless another thread's about to jump in there and do its stuff, and you don't want to end up in the middle of invalid memory! — Moss

I'm more powerfull than God!!


#5 nepz

nepz

    Bruker

  • Medlemmer
  • 98 innlegg
  •   4. september 2011

Skrevet 7. oktober 2012 - 21:44

Du kan prøve med

echo $table[$i];
i stedet for
echo "$table[$i]";

Det er lenge sida jeg har holdt på med PHP, men jeg tror dette burde funke

Ingen forskjell. Takk for hjelpen uansett!
  • 0

#6 Sk!ppy

Sk!ppy

    Bruker

  • Medlemmer
  • 3 735 innlegg
  •   3. mars 2009

Skrevet 7. oktober 2012 - 21:44

Hva inneholder $table før denne snutten?

Sånn ellers ville jeg løst det slik:

<?php
for($i=1; $i<21; $i++) {
echo $i;
}
?>

Dette innlegget har blitt redigert av Sk!ppy: 7. oktober 2012 - 21:46

  • 0

#7 hjahre

hjahre

    Bruker

  • Medlemmer
  • 436 innlegg
  •   27. februar 2006

Skrevet 7. oktober 2012 - 21:46

Du er sikker på at alle tallene i tabellen er høyere enn 0 og lavere enn 20? Og at $table faktisk inneholder de talla du tror den skal inneholde?
  • 0
I reject your reality and substitute my own — Adam Savage
See the driver hooks a function by patching the system core table, so its not safe to unload it unless another thread's about to jump in there and do its stuff, and you don't want to end up in the middle of invalid memory! — Moss

I'm more powerfull than God!!


#8 nepz

nepz

    Bruker

  • Medlemmer
  • 98 innlegg
  •   4. september 2011

Skrevet 7. oktober 2012 - 21:49

$liste = array(20, 34,-4,4,5,11,-23);
Det er listen min.
  • 0

#9 hjahre

hjahre

    Bruker

  • Medlemmer
  • 436 innlegg
  •   27. februar 2006

Skrevet 7. oktober 2012 - 21:50

$liste = array(20, 34,-4,4,5,11,-23);
Det er listen min.


Og du looper gjennom $table. Bytt ut $table med $liste eller sett $table = $liste før for-løkka, så tror jeg du har det :)
  • 0
I reject your reality and substitute my own — Adam Savage
See the driver hooks a function by patching the system core table, so its not safe to unload it unless another thread's about to jump in there and do its stuff, and you don't want to end up in the middle of invalid memory! — Moss

I'm more powerfull than God!!


#10 Sk!ppy

Sk!ppy

    Bruker

  • Medlemmer
  • 3 735 innlegg
  •   3. mars 2009

Skrevet 7. oktober 2012 - 21:56

Koden blir isåfall

<?php
$table = array(20, 34,-4,4,5,11,-23);
echo $sum / sizeof( $table);
for($i=0; $i<count($table); $i++) {
if($table[$i]>0 && ($table[$i]<20)) {
echo $table[$i];
}
}
?>


Den lister ut de tallene i listen som er mellom 0 og 20.
  • 0

#11 nepz

nepz

    Bruker

  • Medlemmer
  • 98 innlegg
  •   4. september 2011

Skrevet 7. oktober 2012 - 22:05

Takk skal dere ha! Vet ikke hva jeg har surra med.

Dette innlegget har blitt redigert av Krissey: 7. oktober 2012 - 22:06

  • 0

#12 slacky

slacky

    Bruker

  • Medlemmer
  • 882 innlegg
  •   9. november 2008

Skrevet 7. oktober 2012 - 22:08

Koden blir isåfall

<?php
$table = array(20, 34,-4,4,5,11,-23);
echo $sum / sizeof( $table);
for($i=0; $i<count($table); $i++) {
if($table[$i]>0 && ($table[$i]<20)) {
echo $table[$i];
}
}
?>


Den lister ut de tallene i listen som er mellom 0 og 20.


Dette er en fin plass å bruke foreach.
$table = array(20, 34,-4,4,5,11,-23);
echo $sum / sizeof($table); //$sum er ikke definert.

foreach($table as $tbl) {
  if($tbl>0 && ($tbl<20)) {
    echo $tbl;
  }
}


PS: Du har ikke definert variablen $sum. Jeg kan tenke meg at denne er definert tidligere i koden (noe du ikke viser oss)..? Om ikke, så vil den echo-statementen altid returnere 0, da $sum = 0 (ingen definisjon). 0/7=0.

Dette innlegget har blitt redigert av warpie: 7. oktober 2012 - 22:18

  • 0

#13 nepz

nepz

    Bruker

  • Medlemmer
  • 98 innlegg
  •   4. september 2011

Skrevet 7. oktober 2012 - 22:14

Nå surrer jeg mye her.
<?php
		 echo "<strong>Oppgave 1</strong>";
	    echo "<br/>";
$liste = array(20, 34,-4,4,5,11,-23);
	 
  echo "<br/>";   
  foreach ($liste as $verdi)
   {
	  echo $verdi.", ";
  }  
  echo "<br/>";
  $sum = 0;
	  foreach ($liste as $element)
	  {
		  $sum = $sum + $element;
	  }
	  echo "<br/>";
	  echo "Summen av alle tall i Arrayet er $sum.";
	  echo "<br/>";
echo "Gjennomsnitt av tallene"; //Utregning av gjennomsnitt
echo "<br/>";
$sum = '';
	  foreach( $liste as $tall ) {
    $sum += $tall;
}

$table = array(20, 34,-4,4,5,11,-23);
echo $sum / sizeof( $table);
for($i=0; $i<count($table); $i++) {
if($table[$i]>0 && ($table[$i]<20)) {
  echo $table[$i];
}
}


?>
Nå får jeg ikke en ny linje som jeg kan ha de tallene jeg har listet ut. De kommer bare etter det jeg har skrevet hva gjennomsnittet er....
  • 0

#14 slacky

slacky

    Bruker

  • Medlemmer
  • 882 innlegg
  •   9. november 2008

Skrevet 7. oktober 2012 - 22:28

Virker som det er mye klipp og lim, samt feilene er helt grunleggende :p
<?php
echo "<h2>Oppgave 1</h2>";

$liste = array(20, 34,-4,4,5,11,-23);

foreach ($liste as $verdi) echo $verdi.", ";
echo "<br/>";

$sum = 0;
foreach ($liste as $element) $sum = $sum + $element;
echo "<br/>";

echo "Summen av alle tall i Arrayet er: <i>".$sum."</i> <br/>";

echo "Gjennomsnitt av tallene: <br/>"; //Utregning av gjennomsnitt
$sum = 0;
foreach( $liste as $tall ) $sum += $tall;
echo "</i> ".$sum / sizeof($liste)."</i><br /><br />";

echo "Resten av tallene finenr du under:<br />";
foreach($liste as $tbl) {
  if($tbl>0 && ($tbl<20)) {
	echo $tbl.", ";
  }
}
?>


Dette innlegget har blitt redigert av warpie: 7. oktober 2012 - 22:33

  • 1

#15 hjahre

hjahre

    Bruker

  • Medlemmer
  • 436 innlegg
  •   27. februar 2006

Skrevet 7. oktober 2012 - 22:28

Bytt ut
$sum = ''
med
$sum = 0

  • 0
I reject your reality and substitute my own — Adam Savage
See the driver hooks a function by patching the system core table, so its not safe to unload it unless another thread's about to jump in there and do its stuff, and you don't want to end up in the middle of invalid memory! — Moss

I'm more powerfull than God!!


#16 slacky

slacky

    Bruker

  • Medlemmer
  • 882 innlegg
  •   9. november 2008

Skrevet 7. oktober 2012 - 22:56

Tok meg tiden til å omformulere koden litt. Pyntet litt på den.

<?php
echo "<h2>Oppgave 1</h2>";

$liste = array(20, 34,-4,4,5,11,-23);

//Array to string.
$verdi = "";
foreach ($liste as $data) $verdi .= "$data, ";

//kalkulere totalsum
$sum = 0;
foreach ($liste as $element) $sum = $sum + $element;

//kalkulere gjennomsnitt
$sum = 0;
foreach( $liste as $tall ) $sum += $tall;
$average = $sum / sizeof($liste);

//Tallene som er positive, men under 20
$positive = "";
foreach($liste as $tbl) {
  if($tbl>0 && $tbl<20) $positive .= $tbl.", ";
}

//Fjerner siste komma fra listene
$positive = substr($positive, 0,-2);
$verdi = substr($verdi, 0,-2);


echo "Listen inneholder: <i>{$verdi}</i> <br /><br />";
echo "Summen av alle tall: <i>{$sum}</i> <br/><br />";
echo "Gjennomsnitt av tallene: <i>{$average}</i><br/><br />";
echo "Positive tall som har verdi under 20: <i>{$positive}</i><br /><br />";
?>

Gøy å gjøre leksene for andre :-D

Dette innlegget har blitt redigert av warpie: 8. oktober 2012 - 01:26

  • 0

#17 nepz

nepz

    Bruker

  • Medlemmer
  • 98 innlegg
  •   4. september 2011

Skrevet 8. oktober 2012 - 01:47

Tok meg tiden til å omformulere koden litt. Pyntet litt på den.

<?php
echo "<h2>Oppgave 1</h2>";

$liste = array(20, 34,-4,4,5,11,-23);

//Array to string.
$verdi = "";
foreach ($liste as $data) $verdi .= "$data, ";

//kalkulere totalsum
$sum = 0;
foreach ($liste as $element) $sum = $sum + $element;

//kalkulere gjennomsnitt
$sum = 0;
foreach( $liste as $tall ) $sum += $tall;
$average = $sum / sizeof($liste);

//Tallene som er positive, men under 20
$positive = "";
foreach($liste as $tbl) {
  if($tbl>0 && $tbl<20) $positive .= $tbl.", ";
}

//Fjerner siste komma fra listene
$positive = substr($positive, 0,-2);
$verdi = substr($verdi, 0,-2);


echo "Listen inneholder: <i>{$verdi}</i> <br /><br />";
echo "Summen av alle tall: <i>{$sum}</i> <br/><br />";
echo "Gjennomsnitt av tallene: <i>{$average}</i><br/><br />";
echo "Positive tall som har verdi under 20: <i>{$positive}</i><br /><br />";
?>

Gøy å gjøre leksene for andre :-D

Jeg kommer sikkert med noen flere tråder iløpet av året! Det er bare å glede seg! : - ) Takk for oppussingen av dokumentet mitt!
  • 0

#18 Crowly

Crowly

    Bruker

  • Medlemmer
  • 4 306 innlegg
  •   17. februar 2005

Skrevet 8. oktober 2012 - 07:59

Er ikke nødvendig å bruke så mange looper, finnes ferdige funksjoner som gjør samme jobben
<?php
echo "<h2>Oppgave 1</h2>";
$liste = array(20, 34,-4,4,5,11,-23);

//Array to string.
$verdi = implode(',',$liste);

//kalkulere totalsum
$sum = array_sum($liste);

//kalkulere gjennomsnitt
$average = $sum / count($liste);

//Tallene som er positive, men under 20
foreach($liste as $tbl) {
  if($tbl>0 && $tbl<20) $positive[]=$tbl;
}

echo "Listen inneholder: <i>{$verdi}</i> <br /><br />";
echo "Summen av alle tall: <i>{$sum}</i> <br/><br />";
echo "Gjennomsnitt av tallene: <i>{$average}</i><br/><br />";
echo 'Positive tall som har verdi under 20: <i>'.implode(',',$positive).'</i><br /><br />';
?>

  • 0
Last.fm

"The only thing necessary for the triumph of evil is for good men to do nothing" - Edmund Burke (1729-1797)



0 bruker(e) leser denne tråden

0 medlemmer, 0 gjester, 0 skjulte brukere