PDA

نسخه کامل مشاهده نسخه کامل : برنامه به زبانc++



maryam9903
09-12-2014, 10:34
سلام.خسته نباشید
تو سوالی ک دارم روش کار میکنم گفته "تازمانیکه صفر را وارد نکردیم مثلا اگهnبرابر با3باشه خروجی مقابل را چاپ کند؟"

1
3 2
6 5 4

1 1 1
2 2 2
3 3 3

4 5 6
2 3
1



کدی که براش نوشتم اینه:
#include <iostream>using namespace std;

int main()
{
int n;
cin>>n;
for(int i=1,j=1;j<=n;j++)
{
for(int k=0;k<j;k++,i++)
cout<<i<<" ";
cout<<endl;
}
cout<<endl;
for(int i=1;i<=n;i++)
{
for(int j=0;j<n;j++)
cout<<i<<" ";
cout<<endl;
}
cout<<endl;
for(int i=n*(n+1)/2,j=n;j>0;j--)
{
for(int k=0;k<j;k++,i--)
cout<<i<<" ";
cout<<endl;
}
return 0;
}






من این کد رو میخام با تابع voidبنویسم.البته نوشتم ولی میدونم اشتباست.ممنون میشم درستشو بهم بگید
این کدیه که خودم نوشتم و میدونم اشتباست!!!!

#include <iostream>
int main()
{
int n;
void Haval(int x)
{


for(int i=1,j=1;j<=n;j++)
{
for(int k=0;k<j;k++,i++)
cout<<i<<" ";
cout<<endl;
}
cout<<endl;
Haval();
}
void Hdovom(int n)
{
for(int i=1;i<=n;i++)
{
for(int j=0;j<n;j++)
cout<<i<<" ";
cout<<endl;
}
cout<<endl;
Hdovom(n);
}
void Hsevom(int n)
{
for(int i=n*(n+1)/2,j=n;j>0;j--)
{
for(int k=0;k<j;k++,i--)
cout<<i<<" ";
cout<<endl;
}
Hsevom(n);
}

B-Prot
09-12-2014, 15:26
نیاز به این همه کثیف کاری نیست.
یکی از اصول مهم برنامه نویسی ساده و خوانا نوشتن کدها است.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

maryam9903
09-12-2014, 21:13
ممنون از راهنماییتون ولی خب منم هنوزswitchنخوندم!!!!

B-Prot
10-12-2014, 09:15
با else if هم می توانید بنویسید.
ساختار switch منظم تر و ساده تر و خواناتر از else if هست.

maryam9903
10-12-2014, 11:14
من خودم با forنوشتم!
شما میتونید همین برنامه خودمو با تابعvoidبرام بنویسید لطفا؟

B-Prot
10-12-2014, 19:33
1. void تابع نیست. بلکه یک نوع داده ای است و کلمه کلیدی هست. زمانیکه تابع مقداری را بر نمی گرداند (return نمیکند)
از void استفاده می شود.


2. شما چطور مبحث تابع رو خوندید ولی switch رو نمی دونید چی هست؟!
switch از ساختارهای شرطی هست که در تمامی کتب برنامه نویسی در همون ابتدا گفته میشه.


3. ساختارهای حلقه for و while و do/while برای تکرار هست نه شرط.


4. ساختارهای if و if/else و switch برای تصمیم گیری (شرط گذاری) هست نه تکرار.
--------


برنامه شما نیاز به حلقه تکرار for نداره. چون قرار هست در هر بار از کاربر ورودی خواسته بشه و عبارت ثابت چاپ بشه.
بنابراین با همون ساختارهای شرطی میشه برنامه رو نوشت. اگر حلقه for بکار ببریم کارایی نخواهد داشت.


صورت مسئله شما شرطی با چاپ عبارت ثابت هست نه تکراری.



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


سورس code2 اگر کاراکتر وارد بشه ایجاد حلقه بی نهایت خواهد کرد و cpu رو مشغول خواهد کرد.

rahimizahra
28-12-2014, 09:43
سلام دوستان و خسته نباشيد
ازتون كمك كيخواستم براي پروزه دانشگاه ميشه برام برنامه هاي ساده بفرستيد به اميلم.
ازتون ممنون ميشم .
rahimizahra86@gmail.com
:n40: