آموزش زبان ++C و #C

arthes

کاربر سایت
Jul 8, 2006
330
در مورد سوال اول هم خب خيلي راحته شما 3 عدد رو از ورودي ميگيري تك تك با هم مقايسه ميكني يعني ميگي اگر عدد اول از عدد دوم بزرگتر بود اونو با عدد سوم مقايسه كن اگر نبود عدد دوم رو با عدد سوم مقايسه ميكني و درنهايت وقتي يه دونه به عنوان مكس انتخاب شد 2 تا عدد ديگه رو با هم مقايسه كن اگر مثلا A بزرگترين عدد بود بايد در نهايت B با C مقايسه بشه تا عدد كوچكتر هم مشخص بشه البته راههاي زيادي هست كه بشه هر مساله رو حل كرد من يكي از راههاشو گفتم نميدنم اگه مشكلي تو نوشتن برنامه داري بگو تا برات بنويسم اگر تو راه حل مونده بودي كه فعلا اين راه رو امتحان كن ببين به نتيجه ميرسي يا نه
من سه تا عددو از ورودی می گیرم . میگم اگه A>B باشه و اگه A>C باشه چاپ کنه A مکسه .
به همین ترتیب برای B , C که نتیجه نمی دونم چرا چاپ میی کنه هر سه تا مکسند .
اگه برات ممکنه این برنامه رو فقط از قسمت شرطیش بنویس . خیلی ممنونت میشم . راستی در مورد سوال سوم نظری نداری ؟ دقت داشته باشین ا همش یک جلسه C یاد گرفتیم حالا استاد همچین تکلیف هایی میده !
اول از استادت بپرس بايد از چه كامپايلري استفاده كني؟!! چون الان دقيق يادم نيست ولي فكر كنم بورلند هم محيطي شبيه ايني كه شما ميگي داشت البته ميگم درست يادم نيست
طرف میگه واسه من فرقی نمی کنه توی چی می نویسید . من آخر کار ازتون سورس و EXE رو میخوام و باید بتونی سورستو توضیح بدی . منم چون محیط این Torbo C خسته کننده است به فکر یه چیز جدید هستم .
خودش یه برنامه ای استفاده می کنه که اسمشو نمی دونم تو مایه های د.....و C . اگه کمکم کنیدممنون میشم .
 

Lich King

Administrator
Sep 22, 2005
5,901
نام
اشکان
در مورد این برنامه نمایش max خیلی سادس:
Code:
   if(x>=y)
   {
          if(x>z)
          {
             printf("\nthe max number is:%d", x);
          }
          else
          {
             printf("\nthe max number is:%d", z);
          }
   }
   else
   {
          if(y>z)
          {
             printf("\nthe max number is:%d", y);
          }
          else
          {
             printf("\nthe max number is:%d", z);
          }
   }
این فقط قسمت شرطی برنامه هست! البته من متوجه نشدم استادتون min رو هم می خواد یا فقط max رو؟

----------------------------------------------
شما به محیط این برنامه ها زیاد کار نداشته باش چون همشون تقریبا یه شکل هستن و ساده. اونی که استادتون استفاده می کرده حتما رنگ و آبشو تغییر داده چون اگه بخواد محیط گرافیکی داشته باشه می شه visual که هیچ وقت نمیان اول کار visual درس بدن.
همه اول کار از Turbo C یا Borland C استفاده می کنند.
 

arthes

کاربر سایت
Jul 8, 2006
330
آقا دستت درد نکنه تازه گرفتم . میگم وجود این } ها اجباریه ؟ استاد min رو هم میخواد . همین جوریه دیگه ؟
سعی می کنم Min رو خودم بنویسم . میگم شما نظری در مورد سوال سوم نداری ؟
چطور میشه یه عدد 4 رقمی رو گرفت و چهار رقمشو جدا جدا نمایش داد ؟!!!
----------------
شما به محیط این برنامه ها زیاد کار نداشته باش چون همشون تقریبا یه شکل هستن و ساده. اونی که استادتون استفاده می کرده حتما رنگ و آبشو تغییر داده چون اگه بخواد محیط گرافیکی داشته باشه می شه visual که هیچ وقت نمیان اول کار visual درس بدن.
همه اول کار از Turbo C یا Borland C استفاده می کنند.
چرا واسه من محیط خیلی مهمه . اصلا میرم توی این Torbo C بعد از 20 دقیقه چشام میخواد بزنه بیرون .
ویژال هم نبود . یه اسم دیگه داشت . هیچ برنامه دیگه ای نیست . راستی مگه توی ویژال میشه با C هم نوشت ؟
 

mohammad1365

کاربر سایت
Mar 1, 2006
128
آقا دستت درد نکنه تازه گرفتم . میگم وجود این } ها اجباریه ؟ استاد min رو هم میخواد . همین جوریه دیگه ؟
سعی می کنم Min رو خودم بنویسم . میگم شما نظری در مورد سوال سوم نداری ؟
چطور میشه یه عدد 4 رقمی رو گرفت و چهار رقمشو جدا جدا نمایش داد ؟!!!
----------------

چرا واسه من محیط خیلی مهمه . اصلا میرم توی این Torbo C بعد از 20 دقیقه چشام میخواد بزنه بیرون .
ویژال هم نبود . یه اسم دیگه داشت . هیچ برنامه دیگه ای نیست . راستی مگه توی ویژال میشه با C هم نوشت ؟
برنامه ويژوال زياده . نمونه خوبش كه مجاني هم هستش : [SIZE=-1]www.bloodshed.net/devcpp.html
++++++++++++++++++++
يه پيشنهاد برات دارم . يك كمي به رياضيات دبيرستان بويژه بخش رياضيات گسسته يه سري بزن .
+++++++++++++++++
درباره اون شماره 4 رقمي هم اينجوريه :
براي پيدا كردن يكانش بايد عدد رو به پيمانه 10 بگيري ( رياضي گسسته كه يادت هست ؟ عدد به پيمانه
10 يعني اينكه باقيمانده عدد زماني كه اون رو بخش بر 10 ميكنيم كه ميدونيم يكان اون عدد هستش )
براي دهگان و صدگان هم بايد عدد رو به 100 و 1000 بخش كني .
++++++++++++++
درباره نمايش دادن جدا جداي عدد ها خودت يك كم فكر كن

+++++++++++++++
درباره ‍‍ { , } اينكه : زماني كه شما بخواي چند دستور با هم انجام بشه بايد درون اين اكلاد بذاري
يه نمونه برات ميذارم خودت كامپايلش كن ميفهمي چي ميشه
[/SIZE]
if ( a>b)
}
a=10;
b=20
}

اين يكي رو دقت كن :
if (a>b)
a=10;
b=20;
 

arthes

کاربر سایت
Jul 8, 2006
330
واقعا از همتون ممنونم به خاطر راهنماییاتون .
در مورد اون سواله هم فکر کردم سوال این بود که چطوری میشه یک عدد 4 رقمی گرقت و رقم هاشو جدا جدا نشون داد .
باید 4 بار به 10 تقسم بشه یا یه بار به 10 یه بار به 100 یه بار به 1000 ..
مشکل من این جاست که چطوری برامه به جای خارج قسمت ، باقی مانده رو نشون بده ؟!
من فقط دستور تقسیم و if و else رو میشناسم . اگه میشه کمکم کنید . ممنون .
 

mohammad1365

کاربر سایت
Mar 1, 2006
128
اگر زبانت خوبه يك كتاب از نت دانلود كن و بخون .
++++++++++
درباره اون فرمان پيمانه و اينا استادتون بعدا بهتون ميگه . پيمانه اينجوريه %
 

arthes

کاربر سایت
Jul 8, 2006
330
آره زیانم خوبه . من کلی نت رو گشتم ولی از بس زیاد بود نمی دونستم کدوم رو دانلود کنم .
من تکلیف دارم برای پنجشنبه . اگه بتونی یه راهنمایی بکنید ممنونت میشم .
فقط با راهنمایی های شما و دوستان تونستم مشکلم رو با maxو min حل کنم !!!
 

mohammad1365

کاربر سایت
Mar 1, 2006
128
يارو داره c ياد ميده يا c++ ؟ كتابهايي كه فرنام complete reference رو دارن دانلود كن
c the complete reference
c++ the complete reference
تو بيشترشون چيزهايي مشترك رو اموزش داده . اون برنامه نمايش دادن تك به تك شماره ها رو مينويسم شب برات ميذارم
 

solid_hooman

کاربر سایت
Nov 2, 2006
601
نام
Hoomaan
واقعا از همتون ممنونم به خاطر راهنماییاتون .
در مورد اون سواله هم فکر کردم سوال این بود که چطوری میشه یک عدد 4 رقمی گرقت و رقم هاشو جدا جدا نشون داد .
باید 4 بار به 10 تقسم بشه یا یه بار به 10 یه بار به 100 یه بار به 1000 ..
مشکل من این جاست که چطوری برامه به جای خارج قسمت ، باقی مانده رو نشون بده ؟!
من فقط دستور تقسیم و if و else رو میشناسم . اگه میشه کمکم کنید . ممنون .

در مورد باقيمانده و خارج قسمت هم اگر نميدوني بايد بگم كه براي بدست اوردن باقيمانده از اين علامت ميكني %
و براي خارج قسمت از اين علامت /
مثال: A=10 B=5
A/B = 2
A%B = 0
كامل مشخصه تو تقسيم بالا يعني 10 تقسيم بر 5 خارج قسمت 2 هست و باقيمانده هم صفر
 

arthes

کاربر سایت
Jul 8, 2006
330
سلام بازم من اومدم . دوباره یه مشکل برام پیش اومده بالاجبار گفتم مزاحم شماها شم !!:biggrin1:
این متن یه برنامه ایه که با سی نوشتم ولی موقع کامپایل کردن ارور میده !! میشه بگید اشکالش کجاست ؟
#include <stdio.h>
int main();
{
int x,n,,m,z;
m=1 ;
printf("lotfan adade ra vared konid");
scanf("%d",&x);
printf("lotfan tavan ra vared konid");
scanf("%d",&n);
while(n=m){
x=x.x ;
m=m+1 ;
}
printf("%d",%x);
printf("lotfan baraye khorooj kelidi ra feshar dahid");
scanf("%d",&z);
return 0
}
اگه میشه سریع کمکم کنید تا این استاد کلمو نکنده !!!
 

TyRaX

موجودی خوشحال
کاربر سایت
Oct 21, 2005
1,824
نام
پارسیا
سلام بازم من اومدم . دوباره یه مشکل برام پیش اومده بالاجبار گفتم مزاحم شماها شم !!:biggrin1:
این متن یه برنامه ایه که با سی نوشتم ولی موقع کامپایل کردن ارور میده !! میشه بگید اشکالش کجاست ؟
#include <stdio.h>
int main();
{
int x,n,,m,z;
m=1 ;
printf("lotfan adade ra vared konid");
scanf("%d",&x);
printf("lotfan tavan ra vared konid");
scanf("%d",&n);
while(n=m){
x=x.x ;
m=m+1 ;
}
printf("%d",%x);
printf("lotfan baraye khorooj kelidi ra feshar dahid");
scanf("%d",&z);
return 0
}
اگه میشه سریع کمکم کنید تا این استاد کلمو نکنده !!!


while (n==m).. :D
این یکی از شایع ترین اشتباه ها است .. شما میخواهید شرط رو چک کنید پس باید از == استفاده کنید .. به اون صورتی که شما نوشته اید محتوای m را در n میریزد و شرط هم همیشه برقرار است .. پس while همیشه اجرا میشود.

x = x.x : فکر کنم منظور شما این بوده x = x*x .
البته اگر میخواهید عدد x را به توان برسانید این اشتباه است .. زیرا در هر بار اجرای حلقه مقدار x عوض میشود و در اجرای بعدی شما x حاصل از حلقه قبل را در خودش ضرب میکنید.
فکر کنم متغیر z را میخواستید به همین منظور استفاده کنید.
قبل از حلقه z=x . مقدار اولیه x را در z ذخیره کنید . سپس x = x* z .
پس اینجوری میشه

....
z=x;
while (n==m) {
x = x*z;
m = m +1;
{
printf ..

بجای خط m=m+1; میتوانید از m++; یا m+=1; هم استفاده کنید .. البته دقیقا یادم نیست که این syntax ها مربوط به C بودند یا Cpp .
 

arthes

کاربر سایت
Jul 8, 2006
330
تیرکس جان دستت درد نکنه که جواب دادی . من قبل از اینکه یه جوابتو بخونم یکم اصلاحش کرده بودم . الان
برنامه اجرا میشه ولی هرچی بهش می دم فقط عدد 2293308 رو بهم جواب میده . ممنون میشم اگه کمکم کنی .
#include <stdio.h>
int main()
{
int x,n,m=1,y=1, ;
printf("lotfan adade ra vared konid :");
scanf("%d",&x);
printf("lotfan tavan ra vared konid :");
scanf("%d",&n);
while(m==n){
y=y*x ;
m=m+1 ;
}
printf("%d ^ %d = %d ",x,n,y);

printf(":\nlotfan baraye khorooj kelidi ra feshar dahid :");
scanf("%d");
return 0 ;
}
 

TyRaX

موجودی خوشحال
کاربر سایت
Oct 21, 2005
1,824
نام
پارسیا
#include <stdio.h>
int main()
{
int x,n,m=0,y=1, ;
printf("lotfan adade ra vared konid :");
scanf("%d",&x);
printf("lotfan tavan ra vared konid :");
scanf("%d",&n);
while(m!=n){
y=y*x ;
m=m+1 ;
}
printf("%d ^ %d = %d ",x,n,y);

printf(":\nlotfan baraye khorooj kelidi ra feshar dahid :");
scanf("%d");
return 0 ;
----------------
حق با شماست .. یک جا من اشتباه کرده بودم .. برای چک کردن شرط while باید بگذارید.
while (m!=n) :D یعنی تا وقتی که m , n برابر نشده اند حلقه اجرا بشه .. انقدر یاد اون اشتباه معمول بودم که همه چیز رو فراموش کردم.

برای شروع حلقه هم m رو از صفر شروع کنید .
این که میگید همش یک عدد میده که خوب به دلیل اون اشتباه من بود .. ببخشید .. به این دلیل نیست که عدد های بزرگ برای امتحان میدید؟ شاید overflow میده .
سورس اون بالا رو درست کردم و امتحان کردم .. جواب میده . اگه میخواهید اعداد بزرگ امتحان کنید .. y رو از نوع دیگه انتخاب کنید .. مثلا float یا double .
 

arthes

کاربر سایت
Jul 8, 2006
330
نمی دونم مشکلش چیه !! حتی سورسی آخری رو که شما نوشتید رو کپی پیست کردم باز هم کار نمیده جواب رو فقط 2293308 می نویسه . حتی 2 به توان 2 رو هم امتحان کردم!!
مطمئنی سورس بالا درست روی دستگاهت کار میده ؟
اگه بشی سورس خودتو برای دانلود بزاری ممنونت میشم . ممکنه اشکال از دستگاهم باشه !
 

TyRaX

موجودی خوشحال
کاربر سایت
Oct 21, 2005
1,824
نام
پارسیا
نمی دونم مشکلش چیه !! حتی سورسی آخری رو که شما نوشتید رو کپی پیست کردم باز هم کار نمیده جواب رو فقط 2293308 می نویسه . حتی 2 به توان 2 رو هم امتحان کردم!!
مطمئنی سورس بالا درست روی دستگاهت کار میده ؟
اگه بشی سورس خودتو برای دانلود بزاری ممنونت میشم . ممکنه اشکال از دستگاهم باشه !

والا این برای من داره درست کار میکنه فقط روی اعداد بالا Overflow میده .. یک نکته ای که هست اینه که شما داری یک ]integer رو برای جواب نمایش میدی .. اون نمیتونه عددی بزرگتر از 32500 و خورده ای رو نشون بده. پس اون 2293308 چیه.

#include <stdio.h>
#include <math.h>

int main()
{
int x,n,m=0 ;
double y=1;
printf("lotfan adade ra vared konid :");
scanf("%d",&x);
printf("lotfan tavan ra vared konid :");
scanf("%d",&n);

while(m!=n){
y=y*x ;
m=m+1 ;
}

printf("%d ^ %d = %e \n",x,n,y);
printf("%e",pow(x,n));

printf(":\nlotfan baraye khorooj kelidi ra feshar dahid :");
scanf("%d");
return 0 ;
}

در هر حال .. من اون y رو double کردم که برای اعداد بالا جواب بده.
برای اینکه مطمئن هم بشیم که جواب درسته .. اون خط pow(x,n) هم از تابع توان استفاده میکنه که جواب رو چک کنه .. سورس و exe رو هم براتون پیوست کردم .. که اجرا کنید.
54024vn.jpg
 

Attachments

  • Nem.rar
    18.7 KB · مشاهده: 1

کاربرانی که این قسمت را مشاهده می‌کنند

Top
رمز عبور خود را فراموش کرده اید؟
or ثبت‌نام سریع از طریق سرویس‌های زیر