PDA

View Full Version : مبتدی: کمک برای حل یک مسئله به زبان php



xxxyyy375
سه شنبه 02 دی 1399, 13:36 عصر
سلام دوستان. ببخشید من دنبال کدی بودم که این اعداد رو چاپ کنه:

1,1,2,3,5,8,12


دنباله فیبونانچی هم نبود. ممنون میشم اگر کسی از دوستان میتونه کدش رو بگه که چجوری این اعداد رو چاپ کنم با حلقه های شرطی. ممنون.

roxment
پنج شنبه 04 دی 1399, 13:00 عصر
منظور از چاپ کنه چیه؟ منطق ایجاد این اعداد چیه ؟منظور از شرط چیه یکم توضیح بدبد بفهمم اصلا چی می خواین

xxxyyy375
جمعه 05 دی 1399, 20:52 عصر
منظور از چاپ کنه چیه؟ منطق ایجاد این اعداد چیه ؟منظور از شرط چیه یکم توضیح بدبد بفهمم اصلا چی می خواین

سلام. استاد گفته یه حلقه توی php بنویسید که خروجیش این اعداد باشه:

1,1,2,3,5,8,12

roxment
شنبه 06 دی 1399, 08:35 صبح
یک کد نوشتم خروجی مورد نظر شما را نمایش می ده ولی نمی دانم منظور استادتان این سبک بوده یا خیر



<?function SysCheck(){ $Data=array(1,1); $Count=count($Data); $Result=$Data[$Count-1]+$Data[$Count-2]; for($x=0; $x<=4; $x++){ $Count=count($Data); $SubResult=$Data[$Count-1]+$Data[$Count-2]; if($x==4){$SubResult=$SubResult-1;} array_push($Data, $SubResult); }
$Result=$Data; return $Result;}

var_dump(SysCheck());

plague
شنبه 06 دی 1399, 12:34 عصر
سلام. استاد گفته یه حلقه توی php بنویسید که خروجیش این اعداد باشه:

1,1,2,3,5,8,12



خب حتما گفته فرمولش و منطق تولید این اعداد چیه
به نظر میاد که هر عدد جمع 2 عدد قبلشه ... ولی احتمالا آخرش 12 رو اشتباه نوشتی و باید 13 باشه

roxment
شنبه 06 دی 1399, 13:15 عصر
اگه 13 باشه همون فیبونانچی هست

Ali_Sedaghat
دوشنبه 08 دی 1399, 21:37 عصر
سلام دوست عزیز
این الگوی عددی که شما نوشتید همون اعداد فیبوناچی هستند که کد تولیدش رو در پایین براتون می فرستم.
امیدوارم که این تکه کد درست باشه و به کار شما بیاد.


<?php
$Temp_1 = 0;
$Temp_2 = 1;

$First = 1; //اولین عدد حلقه ی تکرار
$End = 6; //آخرین عدد حلقه ی تکرار، 6 عدد بعد از عدد یک

echo $Temp_2 .','; //چاپ اولین عدد که همان یک هست

for ($i = $First; $i <= $End; $i++)
{
$Temp_3 = $Temp_2 + $Temp_1;
if ($i == $End)
{
echo $Temp_3 ; //چاپ عدد آخر و برداشتن علامت کاما از جلوی الگوی عددی
break;
}
else
echo $Temp_3 .','; //چاپ عدد دوم و اعداد بعدی و گذاشتن علامت کاما در جلوی هر عدد

$Temp_1 = $Temp_2;
$Temp_2 = $Temp_3;
}
?>

xxxyyy375
سه شنبه 09 دی 1399, 10:44 صبح
سلام. ممنون از دوستان عزیز. ولی این فیبونانچی نیست و مشکل دقیقا همینه. الگوش اینه:

1
2+0=2
2+1=3
3+2=5
5+3=8
8+4=12
12+5=17
17+6=23
23+7=30
30+8=38


ولی نمیدونم چجوری باید توی php کدی نوشت که خروجیش این الگو باشه. هرجا هم میپرسم میگن فیبونانچیه ولی تنها تفاوتش توی همین عدد 12 است. از دوستان کسی همچین الگویی رو با php تاحالا نوشته؟

plague
سه شنبه 09 دی 1399, 11:48 صبح
دوست عزیز وقتی سوال میپرسی کامل توضیح بده , این رو اگه از اول گفته بودی خیلی راحت حل میشد
ما که نباید هم کد رو بنویسیم و هم فرمول ریاضیش رو حدس بزنیم برا شما , حداقل کاری که میتونی بکنید اینه که اطلاعات کامل رو بدی وقتی سوال میکنی

xxxyyy375
چهارشنبه 10 دی 1399, 09:52 صبح
دوست عزیز وقتی سوال میپرسی کامل توضیح بده , این رو اگه از اول گفته بودی خیلی راحت حل میشد
ما که نباید هم کد رو بنویسیم و هم فرمول ریاضیش رو حدس بزنیم برا شما , حداقل کاری که میتونی بکنید اینه که اطلاعات کامل رو بدی وقتی سوال میکنی

ببخشید. ولی من فکر کردم توی انجمنی پیام گذاشتم که خیلی ها شاید از قبل نمونه های این کد رو دیده باشن. شما ببخشید. من الان که فرمولش رو نوشتم شما روشی رو میتونید بگید؟

roxment
چهارشنبه 10 دی 1399, 11:08 صبح
for($x=0; $x<=8; $x++){
if($x==0){
$ThisNum=(2+$x);
echo "1<br />";
echo "2+$x=$ThisNum<br />";
}elseif($x==1){
$ThisNum1=($ThisNum+$x);
echo "$ThisNum+$x=$ThisNum1<br />";
}else{
if($x==2){
$ThisNum=($ThisNum1);
}
echo ($ThisNum)."+$x=".($ThisNum+$x)."<br />";
$ThisNum=($ThisNum+$x);
}
}

xxxyyy375
پنج شنبه 11 دی 1399, 10:57 صبح
for($x=0; $x<=8; $x++){
if($x==0){
$ThisNum=(2+$x);
echo "1<br />";
echo "2+$x=$ThisNum<br />";
}elseif($x==1){
$ThisNum1=($ThisNum+$x);
echo "$ThisNum+$x=$ThisNum1<br />";
}else{
if($x==2){
$ThisNum=($ThisNum1);
}
echo ($ThisNum)."+$x=".($ThisNum+$x)."<br />";
$ThisNum=($ThisNum+$x);
}
}



سلام. ببخشید ولی خروجی این کد اینه:
12+0=22+1=33+2=55+3=88+4=1212+5=1717+6=2323+7=3030 +8=38

ولی مشکلی که هست من این اعداد رو میخواستم:
1
2
3
5
8
12

ممنون. بازم معذرت میخوام بابت اینکه این کد اینقدر دردسر ساز شد

xxxyyy375
پنج شنبه 11 دی 1399, 10:58 صبح
سلام دوست عزیز
این الگوی عددی که شما نوشتید همون اعداد فیبوناچی هستند که کد تولیدش رو در پایین براتون می فرستم.
امیدوارم که این تکه کد درست باشه و به کار شما بیاد.


<?php
$Temp_1 = 0;
$Temp_2 = 1;

$First = 1; //اولین عدد حلقه ی تکرار
$End = 6; //آخرین عدد حلقه ی تکرار، 6 عدد بعد از عدد یک

echo $Temp_2 .','; //چاپ اولین عدد که همان یک هست

for ($i = $First; $i <= $End; $i++)
{
$Temp_3 = $Temp_2 + $Temp_1;
if ($i == $End)
{
echo $Temp_3 ; //چاپ عدد آخر و برداشتن علامت کاما از جلوی الگوی عددی
break;
}
else
echo $Temp_3 .','; //چاپ عدد دوم و اعداد بعدی و گذاشتن علامت کاما در جلوی هر عدد

$Temp_1 = $Temp_2;
$Temp_2 = $Temp_3;
}
?>


مثلا این کد درسته ولی به جای 13 باید 12 باشه

roxment
پنج شنبه 11 دی 1399, 11:03 صبح
function SysCheck(){
$Data=array(1,1);
$Count=count($Data);
$Result=$Data[$Count-1]+$Data[$Count-2];
echo"1<br />";
for($x=0; $x<=4; $x++){
$Count=count($Data);
$SubResult=$Data[$Count-1]+$Data[$Count-2];
if($x==4){$SubResult=$SubResult-1;}
echo"$SubResult<br />";
array_push($Data, $SubResult);
}
$Result=$Data;
return $Result;
}
SysCheck();

plague
پنج شنبه 11 دی 1399, 12:53 عصر
ببخشید. ولی من فکر کردم توی انجمنی پیام گذاشتم که خیلی ها شاید از قبل نمونه های این کد رو دیده باشن. شما ببخشید. من الان که فرمولش رو نوشتم شما روشی رو میتونید بگید؟

بیشتر دوستانی که اینجا هستن این شغلشونه و دانشجو نیستن
این مسائل دانشجویی هیچ استفاده عملی ندارن و فقط برای دوندن دانشجو ها و مشغول کردن فکرشونه تا با سروکله زدن با کد آشنا بشن , چیزی نیست که یه برنامه نویس حفظ کنه یا بخاد بدونه
پس سوالات دانشجویی میپرسید کامل توضیح بدین

ضمن اینکه شما ابتدا گفتید این خروجی رو میخاید


1,1,2,3,5,8,12

بعا گفتید این خروجی


1,2,3,5,8,12




دلیل اینکه همه میگن فیبوناچیه اینه که هیچ الگوی مشخصی رو دنبال نمیکنه این خروجی به دلیل وجود 1 در ابتداش (از 2 به بعد الگوی مشخصی داره ) و همه فکر میکنن که شما اشتباه نوشتی خروجی رو ... اگر الگو رو از اول نوشته بودین میشد متوجه شد که یه الگوی نامنظم هست و استاد برای رد گم کردم و اینکه دانشجو ها نرن سرچ و کپی کنن کد های فیبوناچی این رو بهتون داده




$arr = [1] ;
for($i=0 ; $i <= 8 ; $i++ )
{
$arr[] = $i+ (end($arr) == 1 ? 2 : end($arr));
}

echo implode(',' , $arr );

xxxyyy375
پنج شنبه 11 دی 1399, 13:18 عصر
بیشتر دوستانی که اینجا هستن این شغلشونه و دانشجو نیستن
این مسائل دانشجویی هیچ استفاده عملی ندارن و فقط برای دوندن دانشجو ها و مشغول کردن فکرشونه تا با سروکله زدن با کد آشنا بشن , چیزی نیست که یه برنامه نویس حفظ کنه یا بخاد بدونه
پس سوالات دانشجویی میپرسید کامل توضیح بدین

ضمن اینکه شما ابتدا گفتید این خروجی رو میخاید


1,1,2,3,5,8,12

بعا گفتید این خروجی


1,2,3,5,8,12




دلیل اینکه همه میگن فیبوناچیه اینه که هیچ الگوی مشخصی رو دنبال نمیکنه این خروجی به دلیل وجود 1 در ابتداش (از 2 به بعد الگوی مشخصی داره ) و همه فکر میکنن که شما اشتباه نوشتی خروجی رو ... اگر الگو رو از اول نوشته بودین میشد متوجه شد که یه الگوی نامنظم هست و استاد برای رد گم کردم و اینکه دانشجو ها نرن سرچ و کپی کنن کد های فیبوناچی این رو بهتون داده




$arr = [1] ;
for($i=0 ; $i <= 8 ; $i++ )
{
$arr[] = $i+ (end($arr) == 1 ? 2 : end($arr));
}

echo implode(',' , $arr );




واقعا ممنونم. ببخشید. خیلی متشکرم بابت وقتی که گذاشتین ❤

Ali_Sedaghat
شنبه 13 دی 1399, 08:25 صبح
<?php
$Temp_1 = 1;
$Temp_2 = 2;
$Pattern_Array = array();

$First = 0; //اولین عدد حلقه ی تکرار
$End = 10; //آخرین عدد حلقه ی تکرار، 6 عدد بعد از عدد یک

echo $Temp_1 .','; //چاپ اولین عدد که همان یک هست

for ($i = $First; $i <= $End; $i++)
{
$Temp_3 = $Temp_2 + $i;
if ($i == $End)
{
echo $Temp_3 ; //چاپ عدد آخر و برداشتن علامت کاما از جلوی الگوی عددی
break;
}
else
echo $Temp_3 .','; //چاپ عدد دوم و اعداد بعدی و گذاشتن علامت کاما در جلوی هر عدد

$Temp_1 = $Temp_2;
$Temp_2 = $Temp_3;
}
?>