ورود

View Full Version : مبتدی: راهنمایی در رابطه با2 الگوریتم



am5152
چهارشنبه 16 مهر 1393, 21:54 عصر
سلام
دو سوال هست بدین شکل :
1.الگوريتم و فلوچارتی بنويسيد که n عدد را از ورودي خوانده و تعداد اعداد منفي ، مثبت و صفر را مشخص کند ؟!
2.الگوريتم و فلوچارتی بنويسيد که n عدد را دريافت و ميانگين آن عدد را چاپ کند ؟!

از الگوریتم نویسی میشه گفت 0 هستم
اما با رفرنس های استاد تونستم یکی از سوال ها رو که مربوط به بزرگترین عدد(max) بود رو حل کنم !
اما تو این دو موندم واقعا !
اصلا با بقیه سوالا فرق میکرد مخصوصا قسمت قرمز رنگ یکم گیج شدم !
میشه یکی از دوستان راهنمایی کنه یا حداقل راهنمایی که چجوری میشه میانگین رو بدست آورد ؟ و در سوال اول نیز همینطور تا بقیشو با یکم تمرکز بیشتر ادامه بدم
ایناش دیگه نه ریفرنس بود نه منبع که بشه حللش کرد :|
تشکر

am5152
چهارشنبه 16 مهر 1393, 22:15 عصر
یه رفرنس پیدا کردم اما تو این قسمتش برای سوال دو موندم ( سوالش شبیه همین سوال 2 هست)

گفته 2 عدد رو بگیره و میانگین آن دو عدد رو حساب کنه



1.شروع
2.n رو بگیر
3.c=a+b
4.c=c/2
5.cرا چاپ کن
6.تمام

حالا چون عدد مورد نظرمون n هست ، میتونیم مثل سوال پست اول سوال 2 بدین شکل بنویسیمش ؟ درست در میاد برای میانگین؟

1.شروع
2.n رو بگیر
3.c=n
4.c=c/n
5.cرا چاپ کن
6.تمام
فقط این به ذهنم رسید !
تشکر

بهزاد علی محمدزاده
پنج شنبه 17 مهر 1393, 19:35 عصر
سلام . سوال 2 : n عدد معناش این نیست که یه عدد داری و اونم چون نمی دونی چنده بهش بگی n . معناش اینه که n تا عدد از ورودی بگیر . یعنی چند تا عدد رو میگیره . مجموع اعداد تقسیم بر تعداد اونها میشه میانگین . مثال : 2+5+6+10 = 23 که بر تعداد تقسیم کنیم : 23 / 4 = 5.75 .

1. شروع
2. 0 را در s و c قرار بده

نکته : ( s = sum , c = counter که ما توصیه می کنیم به جای نوشتن حروف اول به همین صورت اسم ها رو کامل بنویسید تا برنامه خوانا باشه.
چون می خوایم هر بار ورودی رو با یه متغیر جمع بزنیم پس باید اول اون و با صفر تنظیم کنیم . که بار اول با صفر جمع بشه . اون کانتر هم شمارنده است تا بدونیم چه تعداد عدد وارد شده و result رو تقسیم بر چند کنیم . )

3. n رو بگیر
4. s = n + s
5. یک واحد به شمارنده c اضافه کن . ( c = c + 1 )
6. پیغام " آیا می خواید ادامه بدهید؟ y = 1 , n = 0" را چاپ کن.
7. ورودی را بگیر و در a ذخیره کن . ( a به معنای answer و یعنی پاسخ )
8. اگر a مساوی یک بود برو به مرحله 3
9. در غیر اینصورت s را تقسیم بر c کن و نمایش بده.

این الگوریتم ها معمولا با حلقه while پیاده سازی میشند. همین و بصورت کد ( زبان سی شارپ ) :



static void Main(string[] args)
{
// مجموع ورودی ها را نگهداری می کند
double sum = 0;


// شمارنده برا اینکه بدانیم چند عدد وارد شده
int counter = 0;


// پاسخ به سوال را نگهداری می کند
int answer = 1;


do
{
// نمایش پیغام راهنما
System.Console.WriteLine("Please Enter a number:");


// دریافت ورودی و تبدیل کاراکتر به عدد
double n = double.Parse(System.Console.ReadLine());


// جمع با متغیر
sum = sum + n;


// یک واحد به شمارنده اضافه کن
counter = counter + 1;

// نمایش پیغام
System.Console.WriteLine("Do you want to continue? Yes >= 1, No = 0");


// دریافت ورودی
answer = int.Parse(System.Console.ReadLine());


// اگر ورودی عددی غیر از صفر بود ادامه بده
} while (answer != 0);

// نمایش میانگین
System.Console.WriteLine("Average is: {0} ", (sum / counter) );
}


نکته : در این کد ورودی ها و خطا ها کنترل نشده برای اینکه شما اون و بهتر درک کنید و گیج کننده نباشه .

بهزاد علی محمدزاده
پنج شنبه 17 مهر 1393, 19:42 عصر
1. صفر را در negative , positive, zero قرار بده .
2. ورودی را بگیر و در n قرار بده.
3. اگر n بزرگتر از صفر بود یک واحد به positive اضافه کن و اگر کوچکتر از صفر بود یک واحد به negative اضافه کن و اگر صفر بود یک واحد به zero اضافه کن.
...

مانند مثال قبل این مراحل و ادامه میدی تا وقتی که کاربر بخواد خارج بشه . اونوقت تعداد متغیر ها رو چاپ می کنی .

نوشتن برنامه این بخش هم برای شما.