Jump to content
alexarpad2003

Conditie php

Recommended Posts

Posted

Am codu :

<?php
if ($_POST['sub'])
{

if (!is_numeric($_POST['nr1'])) echo "scrie un numar la numarul 1";
elseif (!is_numeric($_POST['nr2'])) echo "scrie un numar la numarul 2";
elseif ($_POST['nr1']%3==1) echo "numarul 1 nu este divizibil cu 3";
elseif ($_POST['nr2']%3==1) echo "numarul 2 nu este divizibil cu 3";
elseif (($_POST['nr1']%3==1) && ($_POST['nr2']%3==1)) echo "numarul 1 si 2 nu este divizibil cu 3";

else
{
$nr1=$_POST['nr1'];
$nr2=$_POST['nr2'];
$op=$_POST['op'];

if ($op=="+") { $rezult=$nr1+$nr2; $selected1="selected='selected'"; }
elseif ($op=="-") { $rezult=($nr1-$nr2);$selected2="selected='selected'";}
elseif ($op=="*") { $rezult=$nr1*$nr2;$selected3="selected='selected'";}
else { $rezult=$nr1/$nr2; $selected4="selected='selected'"; }
}
}

?>

Insa conditia :

elseif (($_POST['nr1']%3==1) && ($_POST['nr2']%3==1)) echo "numarul 1 si 2 nu este divizibil cu 3"; - nu o ia !

Deci daca amandoua numere nu sunt divizibile cu 3 trece mai departe, ca si cum nu ar exista conditia. Unde gresesc ?

Posted

Nu ai gandit problema bine dpdv logic. Uite solutia


<?php
if ($_POST['sub'])
{

if (!is_numeric($_POST['nr1'])) echo "scrie un numar la numarul 1";
elseif (!is_numeric($_POST['nr2'])) echo "scrie un numar la numarul 2";
elseif (($_POST['nr1']%3==1) && ($_POST['nr2']%3==1)) echo "numarul 1 si 2 nu este divizibil cu 3";
elseif ($_POST['nr1']%3==1) echo "numarul 1 nu este divizibil cu 3";
elseif ($_POST['nr2']%3==1) echo "numarul 2 nu este divizibil cu 3";

else
{
$nr1=$_POST['nr1'];
$nr2=$_POST['nr2'];
$op=$_POST['op'];

if ($op=="+") { $rezult=$nr1+$nr2; $selected1="selected='selected'"; }
elseif ($op=="-") { $rezult=($nr1-$nr2);$selected2="selected='selected'";}
elseif ($op=="*") { $rezult=$nr1*$nr2;$selected3="selected='selected'";}
else { $rezult=$nr1/$nr2; $selected4="selected='selected'"; }
}
}

?>

Hint: Doar am inversat doua linii.

Posted

Am observat. Merci, insa nu inteleg de ce unele numere care nu sunt divizibile cu 3, totusi mi le vede divizibile cu 3.

<?php

if ($_POST['sub'])

{

if (!is_numeric($_POST['nr1'])) echo "scrie un numar la numarul 1";

elseif (!is_numeric($_POST['nr2'])) echo "scrie un numar la numarul 2";

elseif (($_POST['nr1']%3==1) && ($_POST['nr2']%3==1)) echo "numarul 1 si 2 nu este divizibil cu 3";

elseif ($_POST['nr1']%3==1) echo "numarul 1 nu este divizibil cu 3";

elseif ($_POST['nr2']%3==1) echo "numarul 2 nu este divizibil cu 3";

else

{

$nr1=$_POST['nr1'];

$nr2=$_POST['nr2'];

$op=$_POST['op'];

if ($op=="+") { $rezult=$nr1+$nr2; $selected1="selected='selected'"; }

elseif ($op=="-") { $rezult=($nr1-$nr2);$selected2="selected='selected'";}

elseif ($op=="*") { $rezult=$nr1*$nr2;$selected3="selected='selected'";}

else { $rezult=$nr1/$nr2; $selected4="selected='selected'"; }

}

}

?>

<form method='post' >

<input name='nr1' type='text' value=<?php echo $nr1; ?>>

<select name='op'>

<option <?php echo $selected1; ?>>+</option>

<option <?php echo $selected2; ?>>-</option>

<option <?php echo $selected3; ?>>*</option>

<option <?php echo $selected4; ?>>/</option>

</select>

<input name='nr2' type='text'value=<?php echo $nr2; ?>>

<input name='sub' type='submit' value='='>

<input name='rez' type='text' value=<?php echo $rezult; ?>>

</form>

5+5=10 -> de ce nu se aplica if-urile aici ? 5 nu este divizibil cu 3

Posted (edited)

@alexarpad2003

Un numar este divizibil cu 3 daca n mod 3=0;

Un numar NU este divizibil cu 3 daca n mod 3=1 SAU n mod 3=2. (Sau mai simplu n mod 3 > 0)

Hope this helps. :)

Edited by em
Alta idee.
  • Upvote 1
Posted

elseif (($_POST['nr1']%3>=1) && ($_POST['nr2']%3>=1)) echo "numarul 1 si 2 nu este divizibil cu 3";

elseif ($_POST['nr1']%3>=1) echo "numarul 1 nu este divizibil cu 3";

elseif ($_POST['nr2']%3>=1) echo "numarul 2 nu este divizibil cu 3

Asa merge, merci !

Posted

<form method='post'>
nr1<input type='text' name='nr1'>
nr2<input type='text' name='nr2'>
op<input type='text' name='op'>
<input type='submit' name='sub'>
</form>


<?
$erori = 0;
if(isset($_POST['sub']))
{
if(!is_numeric($_POST['nr1']))
{
$erori .= 'nr 1 nu este numeric ';
}
if(!is_numeric($_POST['nr2']))
{
$erori .= 'nr 2 nu este numeric ';
}
if($_POST['op'] != '+' && $_POST['op'] != '-' && $_POST['op'] != '*')
{
$erori .= 'op nu este operator';
}
if($erori != '0')
{
print str_replace('0', '', $erori);
}
else
{
$mesaj = '';
switch($_POST['op'])
{
case '+':
if(is_int(($_POST['nr1'] + $_POST['nr2']) / 3))
{
$mesaj .= 'suma numerelor este divizibila cu 3';
}
else
{
print 'suma nu este divizibila cu 3';
}
break;
case '*':
if(is_int(($_POST['nr1'] * $_POST['nr2']) / 3))
{
$mesaj .= 'produs divizibil cu 3';
}
else
{
$mesaj .= 'produs nedivizibil cu 3';
}
break;
case '-':
if(is_int(($_POST['nr1'] - $_POST['nr2']) / 3))
{
$mesaj .= 'nr1-nr2 divizibil cu 3';
}
else
{
$mesaj .= 'nr1-nr2 nedivizibil cu 3';
}
break;

}
if(is_int($_POST['nr1'] / 3))
{
$mesaj .= 'nr1 divizibil cu 3';
}
else
{
$mesaj .= 'nr1 nedivizibil cu 3';
}
if(is_int($_POST['nr2'] / 3))
{
print 'nr2 divizibil cu 3';
}
else
{
$mesaj .= 'nr2 nedivizibil cu 3';
}
print $mesaj;
}
}

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...