PDA

View Full Version : برنامه پیدا کردن بزگترین عدد بین 50 عدد



blaster-777
یک شنبه 12 آذر 1391, 20:48 عصر
من یه پروژه دارم می خوام 50 عدد رو بگیره تو یه آرایه بریزه و بعد بزرگترین عدد ، تعداد تکرار و همچنین مکان تکرار (ایندکس خانه یا خانه هایی از آرایه که بزرگتررین عدد در اون تکرار شده) رو نشون بده
خودم اینو نوشتم ولی کامل نیست
کسی می تونه کاملش کنه تا تعداد تکرار و اندیکس ها رو هم نمایش بده؟

begin

for i := 1 to 50 do
begin

write('please enter 50 numbers:');
read(n[i]);

clrscr;
end;



for i:=1 to 50 do

if n[i]>max then


max:=n[i];


writeln('the maximum is=',max);





end.

me.enik
یک شنبه 12 آذر 1391, 21:11 عصر
سلام.

روش شما که دارید اینکار را انجام میدید, درسته.

ولی من پیشنهاد میکنم هربار که یک عدد را از ورودی دریافت کردید, چک کنید ببینید آیا اون عدد ورودی بزرگتر از متغییر max است یا نه.
اگر بزرگتر بود, max مساوی است با اون عدد ورودی.
این روش یک سری برتری هایی داره, و به نظر من راحت تر هم هستش.
نکته ::: مقدار اولیه max را کمترین عددی که میشود قرار بدهید. :::

حالا برای فهمیدن تکرار هم, اگر ورودی برابر با max بود, مقدار یک متغییر را بعلاوه 1 میکنیم.


درباره تیکه سوم هم چندان منظورتون رو چندان نفهمیدم.

Valadi
یک شنبه 12 آذر 1391, 21:22 عصر
شما بايد از الگوريتم فلويد استفاده كنيد

سعید صابری
یک شنبه 12 آذر 1391, 21:43 عصر
همون کدت تقریبا درسته.یک حلقه دیگه بزار یکی یکی چک کن که کدوم خانه از آرایه برابر با max هست اون شماره را چاپ کنه کنتور هم در بدنه شرطت بزاره که هر دفعه که شرط برقرار میشه +1 بشه که بتونی تعداد دفعات تکرار بدست بیاری

gholami146
دوشنبه 13 آذر 1391, 18:05 عصر
کدی که شما نوشته اید خوبه
اما کامل نیست
شما در پروژه ای که معرفی کردید 3 چیز رو خواستید 1 بزرگترین عدد 2 تعداد تکرار 3 شماره اندیس ارایه
من پیشنهاد میکنم تا این کار رو در چند قسمت انجام بدید
اول : تمامی اعداد گرفته بشن
دوم : بر اساس کوچک به بزرگ یا برعکس همه اونها رو مرتب کنید
سوم : تعداد تکرار ها رو بشمارید و در مقابل هر عدد ذخیره کنید
چهارم : شماره اندیس هر عدد در ارایه را چاپ کنید
اما این روش یک مشکل داره که اون هم اینه در زمانی که شما عمل مرتب سازی رو انجام میدید با جابجایی انها شماره اندیس قبلی تغییر میکنه که اگر براتون مهم نباشه مشکلی نیست ولی اگه مهمه باید ادرس اندیس رو در جایی ذخیره کنید و پس از اتمام کار انها رو چاپ کنید
برای مثال یک ارایه تعریف کنید که به شکل زیر باشه
array = (شماره اندیس در زمان ورود,تعداد تکرار,عدد)