شاید کی بردت مشکل دارهنوشته شده توسط mohandes hale [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
شاید کی بردت مشکل دارهنوشته شده توسط mohandes hale [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
-برنامه ای بنویسید که عدد صحیحی از ورودی گرفته و آن را به شکل زیر چاپ کند : مثلا برای 5
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
-برنامه ای که جمله ی n ام فیبوناچی رو چاپ کنه .
-برنامه ای که رشته ای از ورودی گرفته و مشخص کند از char های استفاده شده در این رشته هر کدام چندتا موجود است
-برنامه ای بنویسید که 2 رشته از ورودی بگیرد و مشخص کند رشته ی دوم چند بار در رشته ی اول به کار رفته
-برنامه ای که 3 رشته از ورودی دریافت در رشته ی اول به دنبال رشته ی دوم بگردد ، هرجا آن را دریافت رشته ی سوم را جایگزین آن کند..
برای درک حل این مسائل بهتر هست که توضیحاتشون به صورت عینی باشه و گرنه باعث سردرگمی میشه .
سوال اول و دومتون رو من سعی میکنم تا جایی که در توانم هست واضح توضیح بگم .برای سوال سومتون که باید تقریبا با پردازش روی رشته ها آشنا باشید ولی در همین حد میگم که احتیاج به دوتا آرایه دارید که تو یکی کاراکتر ها مورد نظر و تو آرایه دیگه تعداد تکرار را ذخیره می کنیم و بعد به ازای تایپ هر کاراکتر باید تو آرایه کاراکترها جستجو کنید و تو خونه متناظر با آرایه کاراکتر (آرایه دوم) یکی به مقدارش اضافه کنید . پس باید یه تابع جستجو هم بنویسید که به نظرم این برنامه و دو تای دیگش رو دبیرتون توضیح بده بهتر متوجه میشید.
حالا برنامه اول :
برای نوشتن این برنامه های از دوتا حلقه for تودرتواستفاده میکنیم که به ازای هر بار تکرار حلقه بیرونی حلقه درونی از اول تا آخر تکرار میشه.مثلا فرض کن من این حلقه تو در تو رو داشته باشم .
ای کاش شما یه visual studio 2005 نصب میکردید که کدها رو بتونید اجرا کنید بعد که متوجه شدید چی به چی هست اونارو به c تبدیل کنید.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا کد بالا رو نگاه کن .
حلقه درونی میگه از یک تا 2 رو چاپ کن و یه کمک حلقه ی بیرونی این عمل 5 بار تکرار میشه و همه ی اعداد پشت سر هم چاپ میشه . ولی اگر بخوام بگم که بعد ازهر بار تکرار درونی بره سر خط بعدی باید بگم یه خط خالی برام چاپ کنه درسته ؟ پس عملا میام برنامه رو این طوری تغییر میدم.
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدولی اگر این برنامه رو اجرا کنی میبینی که باز هم اعداد پشت سر هم هستند . به نظرت چرا این اتفاق افتاد؟ چون تو این برنامه فقط cout<<j; متعلق به حلقه درونی هست و بعد از اینکه این دوتا حلقه تموم شدن میره به خطی که اضافه کردم.برای حل این مشکل باید از تکنیک بلوک کردن استفاده کنیم.
اگر کدم رو اینطوری بلوکه کنم چه اتفاقی می افته ؟
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خب خواهی دید که اعداد رو زیر هم چاپ میکنه و این به خاطر این هست که دوخطی که باهم قرمز کردم متعلق به حلقه ی درونی میشه ولی ما که اینو نمیخوایم ما میخوایم هر بار که حلقه درونی تموم شد بره سر خط بعدی . پس باید برنامه رو اینطوری تغییر بدیم.
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
چیزی هم که باید اول میگفتم و فراموش کردم این هست که تو حلقه های تو در توی این شکلی حلقه بیرونی تعداد سطر هست و حلقه درونی تعداد ستون .
خب حالا با تغییری که تو این برنامه دادم باعث میشه وقتی حلقه درونی تموم شد بره سر سطر بعد تا خط جدید رو برامون تولید کنه .
ببین من کل برنامه رو برات گذاشتم فقط یه تغییر کوچیک در حد یه اپسیلون میخواد تا خروجی مورد نظر شما رو چاپ کنه . اونم باز بهت یه راهنمایی میکنم ولی خدایی وقتی پیداش کردی بیا اینجا بذارش تا بفهمم این همه که حرف زدم و توضیح دادم رو متوجه شدی .
مثلا عددت رو گرفتی 6 .یعنی میخوای تا 6 سطر این کاروبرات انجام بده ولی این عدد 6 درون یه متغیر هست دیگه پس شرط حلقه بیرونی رو با این متغیر تنظیم کن .
شرط حلقه ی درونی وابسته به مولفه اول حلقه بیرونی هست . مثلا اگر در حلقه بیرونیت i=3 شده تو حلقه درونی باید بگی از یک شروع کنه تا زمانی که کوچکتر مساوی 3 بشه . یا اگر i=4 شد باید حلقه درونی از یک تا کوچکترمساوی 4 تکرار بشه . پس تو شرط حلقه درونی هم یه تغییر در حد اپسیلون اعمال کن .
فعلا اینو انجام بده تا برنامه دومت رو شروع کنیم.
Last edited by dewdrops; 12-11-2010 at 15:38.
مشکلم اینه که من فقط با stdio.h میتونم کار کنم...... و این سرفایل رو بلد نیستم
این سرفایل چیه و چطوری کار میکنه ؟ این C هستش یا ++C ؟
#include<iostream> ؟
مثلا scanf و printf تو stdio.h تعریف شده در زبان C
اما تو c++ توی iostream . الان این چیزایی که در مورد حلقه ها گفتم رو متوجه شدید ؟؟؟
بچه ها این رو کسی میتونه یک کمکی کنه ما حلش کنیم؟
هخر چی فکر کردم و برنامه نوشتم نشد با c من میخواهم حلش کنم.
برنامه ای بنویسید که عدد اعشاری از ورودی گرفته و آن را مغلوب کند
سلام من از برنامه borland c++2005 تحت ویندوز استفاده میکنم .
یه راهنمایی تو این 4 تا برنامه بکنید. که از چه توابعی و چه دستوراتی استفاده کنم.
1. برنامه ای که n عدد صحیح رو از ورودی بگیرد و بزرگترین . کوچکترین . مجموع و میانگین انها را یافته و در خروجی چاپ کند؟
2. برنامه ای که 20 عدد طبیعی رو از ورودی گرفته و مجموع ارقام هر عدد رو محاسبه کرده و به همراه خود عدد در خروجی چاپ کند؟( این برنامه رو توسط تابع میخوا بنویسم و فراخوانی کنم!)
3. برنامه ای که با استفاده از یک تابع بازگشتی حاصل x به توان y را با استفاده از عملگر ضرب محاسبه و در خروجی چاپ کند؟
4. برنامه ای که 2 عدد طبیعی x و y را گرفته و باقی مانده تقسیم x بر y را با استفاده از عملگر تفریق محاسبه کرده؟(این برنامه هم میخوام با تابع برگشتی بنویسم داخل خود تابع)
سلام واسه مقلوب کردن از دستورwhile باید استفاده کرد یا do while و while رو باهم باید استفاده کرد؟
منم برنامه ای که عدد اعشاری رو مغلوب کنه مشکل دارمنوشته شده توسط Life24 [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
میشه کمک کنید
Last edited by Aryana_b; 06-12-2011 at 23:59.
مقلوب یعنی چی ؟
یعنی برعکس چاپ کنه ؟
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)