Gå til innhold

Et slags regneprogram som ikke virker


Anbefalte innlegg

dette programmmet skal finne to faktorer som blir det produktet brukeren taster inn. Men jeg får ikke noe output i det hele tatt!

Noen som greier å se hva som er feil?

 

<?php
$faktor = '10';
$produkt1 = '0';
$produkt2 = '0';

while($produkt1 * $produkt2 != $faktor):             //sånn at whilen avslutter når jeg har produktene

 if ($produkt1 * $produkt2 == $faktor) {           //når produktene blir riktige lagres de i $produkt_ferdig
 $faktor_ferdig = "$produkt1 $produkt2";
 }
 elseif ($produkt2 == 1000000) {                    /*Hvis $produkt2 er 1000000 så starter
                                                      den på null igjen mens $produkt1 plusser på 1*/
 $produkt2 = '0';
 $produkt1++;}
 elseif ($produkt2 == 1000000) {                    /*Hvis denne slår ut så er tallet et primtall og kan ikke lages av to
                                                      produkter som bare kan være hele tall.*/
 $kan_ikke_finne = "Tallet du valgte er
 et primtall og kan derfor ikke ha to faktorer
  som er hele tall";
 else {                                             //denne slår ut hvis ingen av de andre slår ut, noe de burde.
 $feil = "det er en feil her!!";
 }
 
$produkt2++;                                         //plusser en på $produkt2 hver runde
endwhile;
                                                    /*her skrives alle variablene som er blitt lagd i scriptet.
                                                      Her får jeg desverre ikke no output*/
PRINT "$produkt1 <br>";
PRINT "$produkt2 <br>";
PRINT "$faktor <br>";
PRINT "$faktorferdig <br>";
PRINT "$a <br>";
PRINT "$kan_ikke_finne <br>";
?>

 

 

Kan noen være så snill å hjelpe meg?

Lenke til kommentar
Videoannonse
Annonse
dette programmmet skal finne to faktorer som blir det produktet brukeren taster inn. Men jeg får ikke noe output i det hele tatt!

Noen som greier å se hva som er feil?

 

<?php
$faktor = '10';
$produkt1 = '0';
$produkt2 = '0';

while($produkt1 * $produkt2 != $faktor):             //sånn at whilen avslutter når jeg har produktene

 if ($produkt1 * $produkt2 == $faktor) {           //når produktene blir riktige lagres de i $produkt_ferdig
 $faktor_ferdig = "$produkt1 $produkt2";
 }
 elseif ($produkt2 == 1000000) {                    /*Hvis $produkt2 er 1000000 så starter
                                                      den på null igjen mens $produkt1 plusser på 1*/
 $produkt2 = '0';
 $produkt1++;}
 elseif ($produkt2 == 1000000) {                    /*Hvis denne slår ut så er tallet et primtall og kan ikke lages av to
                                                      produkter som bare kan være hele tall.*/
 $kan_ikke_finne = "Tallet du valgte er
 et primtall og kan derfor ikke ha to faktorer
  som er hele tall";
 else {                                             //denne slår ut hvis ingen av de andre slår ut, noe de burde.
 $feil = "det er en feil her!!";
 }
 
$produkt2++;                                         //plusser en på $produkt2 hver runde
endwhile;
                                                    /*her skrives alle variablene som er blitt lagd i scriptet.
                                                      Her får jeg desverre ikke no output*/
PRINT "$produkt1 <br>";
PRINT "$produkt2 <br>";
PRINT "$faktor <br>";
PRINT "$faktorferdig <br>";
PRINT "$a <br>";
PRINT "$kan_ikke_finne <br>";
?>

 

 

Kan noen være så snill å hjelpe meg?

Du kan ihvertfall begynne med å rydde i koden din.

 

<?php
$faktor = '10';
$produkt1 = '0';
$produkt2 = '0';

while($produkt1 * $produkt2 != $faktor) {            

 if ($produkt1 * $produkt2 == $faktor) {       
   $faktor_ferdig = "$produkt1 $produkt2";
 }
 elseif ($produkt2 == 1000000) {                   

 $produkt2 = '0';
 $produkt1++;}
 elseif ($produkt2 == 1000000) {                  
   $kan_ikke_finne = "Tallet du valgte er et primtall og kan derfor ikke ha to
    faktorer som er hele tall";
 } // denne burde kanskje lukkes?
 else {                                            
   $feil = "det er en feil her!!";
 }
 
 $produkt2++;                                      
}
                                                    
echo "$produkt1 <br>";
echo "$produkt2 <br>";
echo "$faktor <br>";
echo "$faktorferdig <br>";
echo "$a <br>";
echo "$kan_ikke_finne <br>";
?>

Lenke til kommentar

Skjønner ikke helt åssen du har tenkt. Et tall kan deles opp i ganske mange faktorer... Så her er en liten snutt som deler opp tallet i alle faktorer som er mulig. Den minste faktoren et tall kan deles på er 2, så vi starter på to og går oppover mot tallet (eller resten av tallet). Til dette bruker vi operatoren %, som forteller oss om det er en rest i regnestykket.

4/2 = 2, det gir ingen rest: derfor vil 4%2 gi 0, som betyr at det er 0 i rest.

4/3 = 1,333.. gir rest, 4%3 vil gi 1 i rest (4/3 går EN gang, 4-3 = 1)

 

$tall_input = 1645;
$faktor = 2;

echo "tallet: $tall_input kan deles opp i faktore(ene):<br>";
while ($faktor<$tall_input) 
{
  if ( ($tall_input%$faktor) == 0 )
  {
     echo "$faktor<br>\n";
     $faktor_array[] = $faktor;
     $tall_input /= $faktor;
     $faktor = 2;

  }  else {
     $faktor++;
  }
}
//  få med resten... (primtall)
$faktor_array[] = $tall_input;
echo "$tall_input<br>";

// her er alle leddene i et array om du trenger dem til noe annet enn output
print_r($faktor_array);

 

Output:

tallet: 1645 kan deles opp i disse faktor(ene):

5

7

47

Array

(

[0] => 5

[1] => 7

[2] => 47

)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...