سئوالات و مشکلات برنامه نویسی به زبان C و ++C

sungift143

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

سوال اینه ک: برنامه ای بنویسید ک عدد n را از ورودی دریافت کرده و سپس به تعداد عدد n و یا تا زمانیکه کاربر 1- وارد کند،عدد از کاربر گرفته و میانگین آنها را چاپ کند...

اینم کدش:
کد:
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
    int i,sum=0,num;
    float avg;
    for(i=0;i<=num;i++)
    {
        cout<<"please enter a number(-1 to end)"<<i+1<<":";
        cin>>num;
        if(num<0)
            break;
        sum+=num;
    }
    avg=static_cast<float> (sum)/num;
    cout<<"the average is:"<<avg;
    cin.get();
    cin.get();
}

من چون خودم برنامه ویژوال رو نداشتم نتونستم ببینم درسته یا ن...
ممنون میشم راهنماییم کنید
 

Aydin_

عضو جدید
ممنون اما من چون باید این برنامه رو ب زبان c‌ بنویسیم مشکل دارم... من c++‌کار کردم...
من که کدی ننوشتم بخوایم تبدیلش کنیم به c :)
سلام دوستان !

این سوالا رو یکی داده من بذارم اینجا ! خیلیم نیاز داره گویا :cry:

میشه کمک کنید لطفا ؟ :(
سلام
لطفا بگید خودشون بنویسند
لقمه آماده دادن دست کسی ممنوع :)
دوستان بازم شرمنده ک من سوال میپرسم

سوال اینه ک: برنامه ای بنویسید ک عدد n را از ورودی دریافت کرده و سپس به تعداد عدد n و یا تا زمانیکه کاربر 1- وارد کند،عدد از کاربر گرفته و میانگین آنها را چاپ کند...

اینم کدش:
کد:
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
    int i,sum=0,num;
    float avg;
    for(i=0;i<=num;i++)
    {
        cout<<"please enter a number(-1 to end)"<<i+1<<":";
        cin>>num;
        if(num<0)
            break;
        sum+=num;
    }
    avg=static_cast<float> (sum)/num;
    cout<<"the average is:"<<avg;
    cin.get();
    cin.get();
}

من چون خودم برنامه ویژوال رو نداشتم نتونستم ببینم درسته یا ن...
ممنون میشم راهنماییم کنید

اولا واسه num باید مقدار اولیه بدید
چون برنامه وقتی وارد حلقه میشه چک میکنه که آیا i کوچکتر یا مساوی num هست یا نه
وقتی num مقدار اولیه نداشته باشه i رو با چی میخواد مقایسه کنه ؟!

دوما سینتکس شما مختص کامپایلری هست که استفاده میکنید که انگار از ویژوال استودیو استفاده میکنید
من رو لینوکس هستم و کامپایلر من به درد کار شما نمیخوره و بهتره ویژوال استودیو رو نصب کنید :)
ولی ظاهرا برنامه تون مشکلی نداره از نظر کدنویسی
بهتره خودتون run کنید برنامه رو تا اگر مشکلی داشت نمایان بشه
 

sungift143

عضو جدید
راستش برنامه ویژوال نصبه روی سیستمم اما در اخر فایل رو نمیخونه و ارور میده... اما از کدهام ایراد نگرفته....

بعد برای اون شکله ک توضیح دادین... من نتونستم دوتا حلقه for رو بنویسم .. میشه بگین چجوری باید بنویسمشون...لطفا
 

iaidin

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

سوال اینه ک: برنامه ای بنویسید ک عدد n را از ورودی دریافت کرده و سپس به تعداد عدد n و یا تا زمانیکه کاربر 1- وارد کند،عدد از کاربر گرفته و میانگین آنها را چاپ کند...

اینم کدش:
کد:
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
    int i,sum=0,num;
    float avg;
    for(i=0;i<=num;i++)
    {
        cout<<"please enter a number(-1 to end)"<<i+1<<":";
        cin>>num;
        if(num<0)
            break;
        sum+=num;
    }
    avg=static_cast<float> (sum)/num;
    cout<<"the average is:"<<avg;
    cin.get();
    cin.get();
}

من چون خودم برنامه ویژوال رو نداشتم نتونستم ببینم درسته یا ن...
ممنون میشم راهنماییم کنید
عدد n را قبل از حلقه for از کاربر دریافت کنید
یک شمارشگر قرار بدید تا تعداد اعداد ورودی را نگهداری نماید. دقت کنید که num میتونه برابر تعداد اعداد ورودی نباشه به این دلیل که فرض کنید کاربر در ابتدای برنامه تعداد اعداد 100 را وارد کرده باشه و بعد از وارد کردن تعدادی عدد(10تا) عدد -1 وارد کنه و در این صورت تعداد اعداد ورودی شما 10 هست و باید مجموعه ده عدد وارد شده را تقسیم بر 10 کنید
 

sungift143

عضو جدید
عدد n را قبل از حلقه for از کاربر دریافت کنید
یک شمارشگر قرار بدید تا تعداد اعداد ورودی را نگهداری نماید. دقت کنید که num میتونه برابر تعداد اعداد ورودی نباشه به این دلیل که فرض کنید کاربر در ابتدای برنامه تعداد اعداد 100 را وارد کرده باشه و بعد از وارد کردن تعدادی عدد(10تا) عدد -1 وارد کنه و در این صورت تعداد اعداد ورودی شما 10 هست و باید مجموعه ده عدد وارد شده را تقسیم بر 10 کنید

یعنی اینجوری

کد:
int i,sum=0,num;     float avg;
cin>>n;     for(i=0;i<=num;i++)
 

sungift143

عضو جدید
کد:
int n;
int i;
cin>>n:
for(i=0;i<n;i++)
...

خب من ک i رو قبل از حلقه توی int تعریف کردم....

کد:
int i,sum=,num;

حالا اگه n هم بهشون اضافه کنم اینجوری میشه:

کد:
int i,sum=,num,n;
درسته؟؟؟

یعنی در آخر:

کد:
int i,sum=0,num,n;
float avg;
for(i=0;i<n;i++)
 

iaidin

عضو جدید
خب من ک i رو قبل از حلقه توی int تعریف کردم....

کد:
int i,sum=,num;

حالا اگه n هم بهشون اضافه کنم اینجوری میشه:

کد:
int i,sum=,num,n;
درسته؟؟؟

یعنی در آخر:

کد:
int i,sum=0,num,n;
float avg;
for(i=0;i<n;i++)
دوست عزیز من در مورد تعریف i حرفی نزدم. کد خودتون را اصلاح میکنم:
کد:
int i,sum=0,num,n;
int Counter=0;
float avg;
cin>>>n;
for(i=0;i<n;i++)
{
        cin>>num;
        if(num<0)
            break;
        sum+=num;
Counter++;
}
avg=static_cast<float> (sum)/Counter;
 

sungift143

عضو جدید
دوست عزیز من در مورد تعریف i حرفی نزدم. کد خودتون را اصلاح میکنم:
کد:
int i,sum=0,num,n;
int Counter=0;
float avg;
cin>>>n;
for(i=0;i<n;i++)
{
        cin>>num;
        if(num<0)
            break;
        sum+=num;
Counter++;
}
avg=static_cast<float> (sum)/Counter;

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

sungift143

عضو جدید
میشه لطف کنید و بگید خروجی های این برنامه رو

کد:
int c=1;
    while(c++<5)
    {
        c--;
        printf("%d",(--c)++);
        (c+=2)--;
    }

چجوری باید بدست بیارم؟؟؟

من جواباشو اینجوری پیدا کردم : 2و3و4
درسته؟؟؟
 

sungift143

عضو جدید
برنامه ای بنویسید ک عددی از ورودی خوانده و مشخص کند جزء سری فیبوناچی هست یا نه.....

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

کد:
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
    int n,sum,a=1,b=1,c,i;
cout<<"please enter a number:";
cin>>n;
cout<<a<<","<<b;
    for(int i=3;i<=n;i++)
    {
        c=a+b;
cout<<","<<c;
        a=b;
       b=c;
}
cin.get();
cin.get();
}


الان باید اول سری رو برای برنامه تعریف کنم بعد if‌بزارم...
اما نمیدونم شرط if‌ رو چی باید بنویسم....:(
 

sungift143

عضو جدید
*برنامه ای بنویسید که یک عدد را گرفته و مشخص کند جناس قلب دارد یا نه(از دو طرف یکسان خوانده شود)

اینو چکارش کنم؟؟؟

مثل معکوس کردن می مونه؟؟؟؟
 

sungift143

عضو جدید
الان دیگه همه منو میکشن از بس سوال پرسیدم...

دوستان من ی برنامه ای باید بنویسم ک شکل زیر رو چاپ کنه:
100
110 100
120 110 100
130 120 110 100
140 130 120 110 100
150 140 130 120 110 100
160 150 140 130 120 110 100
170 160 150 140 130 120 110 100
180 170 160 150 140 130 120 110 100
190 180 170 160 150 140 130 120 110 100
200 190 180 170 160 150 140 130 120 110 100

الان این برنامه ک میخوام بنویسم باید 3 تا حلقه for داشته باشه؟؟؟
for اول برای تعداد سطر
for دوم برای متغیر ها ک 10 تا 10 بهشون اضافه میشه
for سوم واسه چاپ for دوم...

درسته؟؟
 

iaidin

عضو جدید
برنامه ای بنویسید ک عددی از ورودی خوانده و مشخص کند جزء سری فیبوناچی هست یا نه.....

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

کد:
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
    int n,sum,a=1,b=1,c,i;
cout<<"please enter a number:";
cin>>n;
cout<<a<<","<<b;
    for(int i=3;i<=n;i++)
    {
        c=a+b;
cout<<","<<c;
        a=b;
       b=c;
}
cin.get();
cin.get();
}


الان باید اول سری رو برای برنامه تعریف کنم بعد if‌بزارم...
اما نمیدونم شرط if‌ رو چی باید بنویسم....:(
در حلقه For کافیه a را چاپ کنید تا اینکه به اون عدد وارد شده از طرف کاربر برسید. در نهایت عدد b را هم چاپ کنید. برنامه زیر n تای اول را در سری فیبوناچی چاپ میکنه

کد:
[/COLOR][RIGHT]#include >
[/RIGHT]
  [LEFT][RIGHT]#include >[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]int main(){[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]            int x=1 , g = 1 , z , k , n ;[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]            clrscr();[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]            cout << " how many number for fibonachi ? : " ;[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]            cin >> n ;[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]            n -= 2 ;[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]            cout << x << " " << g << " " ;[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]            z = x + g ;[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]            cout << z << " " ;[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]            for (k = 1 ; k <= n -1 ; k++ ){[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]                        x = g ;[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]                        g = z ;[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]                        z = x + g ;[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]                        cout << z << " " ;[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]            }[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]            getch() ;[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]            return 0 ;[/RIGHT]
[/LEFT]
  [LEFT][RIGHT]}
[/RIGHT]
[/LEFT]
 
آخرین ویرایش:

iut.ali

عضو جدید
با سلام میخواستم بدونم چه تفاوتی بین library ها با namespace ها وجود داره
 

Mohandes Mohades

عضو جدید
سلام
ببینین من نفهمیدم تابع که میگن بنویس یعنی دقیقا یه برنامه ای رو تو تابع بنویسیم یعنی مثلا برا فاکتوریل که بخوایم با تابع بنویسیم اینجوری میشه؟

مشکل برنامم چیه ؟
#include <iostream>
#include <conio.h>
using namespace std;

int myfact ( int x)
{
int fact=1 ,n ;

while (x>1)


int fact=fact*x;
x--;


return fact;

}

int main ()
{
cout <<myfact(4)<< endl;
return 0;
}
 

iut.ali

عضو جدید
سلام
ببینین من نفهمیدم تابع که میگن بنویس یعنی دقیقا یه برنامه ای رو تو تابع بنویسیم یعنی مثلا برا فاکتوریل که بخوایم با تابع بنویسیم اینجوری میشه؟

مشکل برنامم چیه ؟

}
سلام آره منظور از تابع نوشتن همین کاریه که تو انجام دادی عیب کدت هم اینه که توی حلقه ی while دوبارهfact رو از نوع int تعریف کردی int رو باک کن کدت درست درست میشه البته بعد while باید یه آکلاد باز کنی و بعد x-- ببندیش وگرنه یه while بی نهایت میشه
 

iaidin

عضو جدید
با سلام میخواستم بدونم چه تفاوتی بین library ها با namespace ها وجود داره
Namespaces provide a notional separation for classes, class libraries provide a physical separation
The purpose of namespaces is to avoid name collisions. Namespace should be used when your have several hundreds of classes. Other indicator - when your code is used by somebody else and your names may collide with names in the user code.

Other important difference is that class is always a data type. You can define variables with this type. Namespace is not a type. You cannot define vars with the namespace.


منبع

 

Mohandes Mohades

عضو جدید
تو این دو تا برنامه موندم نمیدونم چیکار کنم اینکه مشخص کنه عدد وارد شده اول هست یا نه
و اینکه یه عدد وارد کنیم اعداد اول ماقبلشو چاپ کنه.
برا برنامه اولی من اینجوری مینویسم ولی مشکل داره


int i=2
int n;
cin>>n
while ( n<=i)
}
if ( n%i==1(
cout<< "is prime
i++
{
else
cout <<is not prime;
مشکلش چیه دومیشو کلا نمیدونم چیکار کنم
 
آخرین ویرایش:

behzad74

عضو جدید
سلام دوستان کسی با آرایه ها رو کامل بلده؟ تو یه برنامه مشکل پیدا کردم

برنامه ای که یه ارایه سه × چهار رو میگیره و تعداد خونه هایی که با برعکس برعکس خودشون یکی هستند رو بدست بیاره
مجموع خونه های ستون دوم و سوم رو پیدا کنه
و همینطور ترانهاده (معکوس) ارایه رو حساب کنه / به زبان سی شارپ هست

تنها چیزی که بلدم همین تعریف کردن و پر کردنشونه : :confused:
int x [] = new int(3,4)

for(int i = 0 ; i<3;i++) { for(int j = 0 ; j<4,j++) { x[i,j] = int.parse(console.readline()); } }
 

Mohandes Mohades

عضو جدید
بچه ها جواب بدین خواهشا ببینین این برنامه ای که نوشتم برنامه ای که عددهای تام قبل از عدد ورودی و به ما میده خب
#include <iostream>
using namespace std;
int main ()
{
int n,sum,j,i=1;
cin>>n;

while ( i<=n)

{
sum=0;
j=1;

while ( j<i)

{
if ( i%j==0)
{
sum=sum+j;
}
j++;
}

if ( sum==i)
{
cout<<i<<endl;
}

i++;
}

return 0;
}



حالا اون بالا تو قسمتی که

sum=sum+j
اگه بذاریم
sum=sum+i
عددهای اول ماقبل ورودی و و اگه خود ورودیم اول باشه رو میده
میخوام بدونم مشکلی نداره ؟
 

iaidin

عضو جدید
تو این دو تا برنامه موندم نمیدونم چیکار کنم اینکه مشخص کنه عدد وارد شده اول هست یا نه
و اینکه یه عدد وارد کنیم اعداد اول ماقبلشو چاپ کنه.
برا برنامه اولی من اینجوری مینویسم ولی مشکل داره


int i=2
int n;
cin>>n
while ( n<=i)
}
if ( n%i==1(
cout<< "is prime
i++
{
else
cout <<is not prime;
مشکلش چیه دومیشو کلا نمیدونم چیکار کنم

تابع زیر مشخص میکنه که عدد n اول هست یا خیر. برای چاپ اعداد اول کوچکتر از n هم می توانید این تابع را برای اعداد کوچکتر از n فراخوانی کنید.
کد:
int is_prime(int n)
{
    int i;
    for(i=2;i<n;i++){
          if (n%i)     continue;
          else     return 0;
    }
    return 1;
}
 

iaidin

عضو جدید
سلام دوستان کسی با آرایه ها رو کامل بلده؟ تو یه برنامه مشکل پیدا کردم

برنامه ای که یه ارایه سه × چهار رو میگیره و تعداد خونه هایی که با برعکس برعکس خودشون یکی هستند رو بدست بیاره
مجموع خونه های ستون دوم و سوم رو پیدا کنه
و همینطور ترانهاده (معکوس) ارایه رو حساب کنه / به زبان سی شارپ هست

تنها چیزی که بلدم همین تعریف کردن و پر کردنشونه : :confused:
int x [] = new int(3,4)

for(int i = 0 ; i<3;i++) { for(int j = 0 ; j<4,j++) { x[i,j] = int.parse(console.readline()); } }

منظورتون از "خونه هایی که با برعکس برعکس خودشون یکی هستند" چیه؟
در ظمن اینجا سوالات ++
C مطرح می شوند.
 

! # ALI # !

عضو جدید
راهنمایی در رابطه با Windows Form Application . . .

راهنمایی در رابطه با Windows Form Application . . .

سلام دوستان عزیز
من یه برنامه نوشتم ++C در File.cpp
حالا استاد گفت همینو با ویندوز فرم اپلیکیشن سی پلاس پلاس درست کن

اما خب اصلا ساختار کد هارو نمیدونم تو فرم چجوری میشه و مشکلم دقیقا همین جا هست
هیچ اموزش و منبع و نمونه ای هم پیدا نکردم ، اگه شما دوستان عزیز میتونید کمک کنید!

مثلا: اینو چطور باید تعریف کنم

کد:
Cout << "adad vared konid" << endl ; 
Cin << x ;
تو محیط کد نویسی برای فرم چطور باید بگم از T1.text بخون و با زدن دکمه محاسبه رو که انجام داد چجوری خروجی رو داخل Lable1 نمایش بده؟
دستورات به چه شکلی باید به کار برده بشه؟

ممنون میشم کمک کنیدخیلی مهمه.
 

behzad74

عضو جدید
منظورتون از "خونه هایی که با برعکس برعکس خودشون یکی هستند" چیه؟
در ظمن اینجا سوالات ++
C مطرح می شوند.

ببخشید اشتباهی "برعکس " رو دوبار تکرار کردم / منظور خونه هاییه که با برعکس خودشون یکسان هستن


مشکلی هم نیست سی پلاس پلاس باشه اونو هم بلدم و شبیه هم هستند
 

iaidin

عضو جدید
سلام دوستان کسی با آرایه ها رو کامل بلده؟ تو یه برنامه مشکل پیدا کردم

برنامه ای که یه ارایه سه × چهار رو میگیره و تعداد خونه هایی که با برعکس برعکس خودشون یکی هستند رو بدست بیاره
مجموع خونه های ستون دوم و سوم رو پیدا کنه
و همینطور ترانهاده (معکوس) ارایه رو حساب کنه / به زبان سی شارپ هست

تنها چیزی که بلدم همین تعریف کردن و پر کردنشونه : :confused:
int x [] = new int(3,4)

for(int i = 0 ; i<3;i++) { for(int j = 0 ; j<4,j++) { x[i,j] = int.parse(console.readline()); } }

ببخشید اشتباهی "برعکس " رو دوبار تکرار کردم / منظور خونه هاییه که با برعکس خودشون یکسان هستن


مشکلی هم نیست سی پلاس پلاس باشه اونو هم بلدم و شبیه هم هستند

کد زیر مقلوب عدد را محاسبه می کنه. کافیه این کد را برای تمامی حانه های آرایه فراخوانی کنید و بررسی کنید که عدد با خروجی این کد با هم برابر هستند یا خیر.

کد:
[LEFT]void main()
{
int a,c,d;
cin>>a;
c=0;
while (a>0)
{
d=a%10;
a=int(a/10);
c=(c*10)+d;
}
cout << c<<endl;
}
[/LEFT]
 

iaidin

عضو جدید
سلام دوستان عزیز
من یه برنامه نوشتم ++C در File.cpp
حالا استاد گفت همینو با ویندوز فرم اپلیکیشن سی پلاس پلاس درست کن

اما خب اصلا ساختار کد هارو نمیدونم تو فرم چجوری میشه و مشکلم دقیقا همین جا هست
هیچ اموزش و منبع و نمونه ای هم پیدا نکردم ، اگه شما دوستان عزیز میتونید کمک کنید!

مثلا: اینو چطور باید تعریف کنم

کد:
Cout << "adad vared konid" << endl ; 
Cin << x ;
تو محیط کد نویسی برای فرم چطور باید بگم از T1.text بخون و با زدن دکمه محاسبه رو که انجام داد چجوری خروجی رو داخل Lable1 نمایش بده؟
دستورات به چه شکلی باید به کار برده بشه؟

ممنون میشم کمک کنیدخیلی مهمه.

"خروجی کد شما"=label1.Text
 

Mohandes Mohades

عضو جدید
مگه این برنامه نباید مجموع 5 عدد و بهم بده مشکلش چیه که صفر میده ؟
#include <iostream>
using namespace std;
int main()
{

int a[5], i=0, sum=0;

while ( i<5)
{
cout <<" a["<<i<<"]"<<endl;
cin>>a;
i++;
}
while ( i<5)

sum=sum+ a;
cout << sum;
return 0;
}
 

Similar threads

بالا