نمایش نتایج 1 تا 5 از 5

نام تاپیک: مشکل در if

  1. #1

    مشکل در if

    سلام و درود .
    من به تازگی شروع به برنامه نویسی C#‎ کردم و بدجوری سر این مسئله گیر کردم :
    برنامه ای بنویسید که سه عدد از کاربر بگیرد و بررسی کند این سه عدد مثلث میسازند یا خیر . ( مجموع دو شعاع کوچکتر برابر یا بزرگتر از شعاع بزرگتر هست یا خیر ؟ )
    من به دو صورت این نرم افزارو نوشتم ولی هیچکدوم درست کار نکردند .
    بار اول به این شکل کار کردم :

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;


    namespace Mosalas
    {
    class Program
    {
    static void Main(string[] args)
    {
    double a, b, c;
    Console.WriteLine("Enter 3 numbers : ");
    a = double.Parse(Console.ReadLine());
    b = double.Parse(Console.ReadLine());
    c = double.Parse(Console.ReadLine());
    if (a > b && a > c)
    if (a <= b + c)
    Console.Write("Yes they can . .");
    else
    if (b > a && b > c)
    if (b <= a + c)
    Console.Write("Yes they can .");
    else
    if (c > a && c > b)
    if (c <= a + b)
    Console.Write("Yes they can .");
    else
    Console.Write("No they can't .");
    Console.ReadLine();
    }
    }
    }




    visual studio اروری نداد اما پس از اجرا ودریافت 3 عدد نتیجه ای به کاربر برنگشت . وقتی با f11 بررسی کردم دیدم بعد از if اول یکسره میره سرConsole.ReadLine و if های بعدی رو بررسی نمیکنه .

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

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;


    namespace Mosalas
    {
    class Program
    {
    static void Main(string[] args)
    {
    int a, b, c, f;
    Console.WriteLine("Enter 3 nubers : ");
    a = int.Parse(Console.ReadLine());
    b = int.Parse(Console.ReadLine());
    c = int.Parse(Console.ReadLine());
    if (a > b && a > c)
    a = f;
    else
    if (b > a && b > c)
    b = f;
    else
    if (c > a && c > f)
    b = c;
    if (f >= a + b || f >= a + c || f >= b + c || f >= c + b)
    Console.Write("Yes .");
    else
    Console.Write("No .");
    Console.ReadLine();
    }
    }
    }




    اینبار Visual Studio اروری به من برگردوند که معنی دقیقشو متوجه نمیشم و هر تغییری اعمال میکنم درست نمیشه .
    Error 1 Use of unassigned local variable 'f'

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

  2. #2

    نقل قول: مشکل در if



    static void Main(string[] args)
    {
    try
    {
    string a, b, c, f;
    Console.WriteLine("Enter 3 nubers : ");
    Console.Write("a:");
    a = Console.ReadLine();
    Console.Write("b:");
    b =Console.ReadLine();
    Console.Write("c:");
    c =Console.ReadLine();


    if (a != null &&b!=null && c!=null)
    {
    int x = int.Parse(a);
    int y = int.Parse(b);
    int z = int.Parse(c);
    if (x==0 || y==0 ||z==0)
    {
    Console.WriteLine("Error in numbers");


    }
    else
    {
    bool result=true;
    if (x >= y + z) result = false;
    if (y >= x + z) result = false;
    if (z >= x + y) result = false;
    if (result)
    {
    Console.Write("Yes ,you can create triangle.");
    }
    else
    {
    Console.Write("No ,you can't create triangle.");
    }


    }

    }
    else
    {
    Console.WriteLine("Error in numbers");

    }
    Console.ReadLine();
    }
    catch (Exception)
    {

    Console.WriteLine("Error");

    }

    }


  3. #3

    نقل قول: مشکل در if

    نقل قول نوشته شده توسط TeacherMath مشاهده تاپیک


    static void Main(string[] args)
    {
    try
    {
    string a, b, c, f;
    Console.WriteLine("Enter 3 nubers : ");
    Console.Write("a:");
    a = Console.ReadLine();
    Console.Write("b:");
    b =Console.ReadLine();
    Console.Write("c:");
    c =Console.ReadLine();


    if (a != null &&b!=null && c!=null)
    {
    int x = int.Parse(a);
    int y = int.Parse(b);
    int z = int.Parse(c);
    if (x==0 || y==0 ||z==0)
    {
    Console.WriteLine("Error in numbers");


    }
    else
    {
    bool result=true;
    if (x >= y + z) result = false;
    if (y >= x + z) result = false;
    if (z >= x + y) result = false;
    if (result)
    {
    Console.Write("Yes ,you can create triangle.");
    }
    else
    {
    Console.Write("No ,you can't create triangle.");
    }


    }

    }
    else
    {
    Console.WriteLine("Error in numbers");

    }
    Console.ReadLine();
    }
    catch (Exception)
    {

    Console.WriteLine("Error");

    }

    }

    خیلی خیلی ممنون از کمکتون .
    راستش من متوجه نشدم چی نوشتید اگر بشه به سوالاتم پاسخ بدید خیلی خیلی ممنونتون میشم .

    if(a != null&&b!=null&& c!=null)

    در بخش بالا a !=null رو ارگ میشه توضیح بدید !=null چیکار میکنه ؟

    bool result=true;
    if (x >= y + z) result = false;
    if (y >= x + z) result = false;
    if (z >= x + y) result = false;
    if (result)
    {
    Console.Write("Yes ,you can create triangle.");
    }
    else
    {
    Console.Write("No ,you can't create triangle.");
    }


    if رو نفهمیدم result=false
    آخرین ویرایش به وسیله Mahmoud.Afrad : جمعه 26 تیر 1394 در 19:25 عصر

  4. #4

    نقل قول: مشکل در if

    a !=null: واسه اینه که کاربر به جای وارد کردن عدد اینتر نزنه چون a از نوعه استرینگه null میشه.
    if رو نفهمیدم result=false: از عکس نقیض قضیه استفاده کردم یعنی دنباله حالتیم که یک ضلع از مجموع دو ضلع دیگر بزرگتر باشه

  5. #5
    کاربر دائمی آواتار alireza264
    تاریخ عضویت
    تیر 1390
    محل زندگی
    تهران
    پست
    264

    نقل قول: مشکل در if

    سلام
    دوست گرامی ArshiaMansouri ابتدا شروع کار با سی شارپ رو تبریک میگم.
    هر چند روش استاد گرامی TeacherMath درسته اما این پاسخ رو فقط بعنوان توسعه مطلب نوشتم
    اولین نکته مهم در برنامه نویسی اینه که ابتدا مسئله رو درست تحلیل کنیم
    قانون اضلاع مثلث اینه که هر ضلع عددی بزرگتر از صفره وهمواره مجموع دو ضلع از ضلع سوم بزرگتر باشه

    ضمن تشکر از استاد گرامی TeacherMath که مقدار ورودی رو چک کردن که null نباشه میشه کنترل کرد که حرف هم نباشه

    در زمان گرفتن مقدار هر ضلع بصورت زیر رفتار می کنیم


    int a=0, b=0, c=0, f;
    while (a<= 0)
    {
    try
    {
    a = int.Parse(Console.ReadLine());
    }
    catch(){
    a=0;
    }
    }

    while (b<= 0)
    {
    try
    {
    b = int.Parse(Console.ReadLine());
    }
    catch(){
    b=0;
    }
    }

    while (c<= 0)
    {
    try
    {
    c = int.Parse(Console.ReadLine());
    }
    catch(){
    c=0;
    }

    }


    و برای بررسی شرط مثلث بودن کد زیر را می نویسیم

    if (( (a < b + c) && (b < a + c)) && (c < a + b))
    {
    Console.Write("Yes ,you can create triangle.");
    }
    else
    {
    Console.Write("No ,you can't create triangle.");
    }


تاپیک های مشابه

  1. یک مشکل هنگام کپی کردن فایل مربوط به بانک
    نوشته شده توسط ghaum در بخش SQL Server
    پاسخ: 4
    آخرین پست: یک شنبه 25 اردیبهشت 1384, 23:00 عصر
  2. مشکل در دسترسی به Interbase
    نوشته شده توسط Mahdiseif در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 8
    آخرین پست: سه شنبه 26 فروردین 1382, 00:03 صبح
  3. مشکل در بی دی ای دلفی
    نوشته شده توسط hosseinabdollah در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 1
    آخرین پست: یک شنبه 17 فروردین 1382, 17:38 عصر
  4. مشکل ارسال ایمیل در سایت
    نوشته شده توسط mahmoodreza در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 2
    آخرین پست: شنبه 16 فروردین 1382, 14:24 عصر
  5. مشکل در نمایش Time
    نوشته شده توسط (امید) در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 4
    آخرین پست: شنبه 24 اسفند 1381, 10:23 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •