ورود

View Full Version : مشکل در تعریف نامحدود متغییر و استفاده در تابع



Amir Sadjad
یک شنبه 27 خرداد 1386, 16:50 عصر
سلام دوستان

من مدتیه که شروع کردم به یادگیریه ++C و هر مسئله ای که به ذهنم برسه سعی میکنم بنویسم.

این برنامه که شروع کردم قراره N متغییر X و Y تعریف کنه که این X و Y بازه ای برای محدوده S هست ( مثلا اگر N=4 خواهیم داشت x1,y1,x2,y2,x3,y3,x4,y4 که بازه های s1,s2,s3 و s4 رو تعریف میکنند). بعد از این مرحله قراره که مشخص بشه کدوم از این بازه ها با هم اشتراک دارند.

خب برنامه ای که من نوشتم به این شکله :



#include <iostream.h>
#include <conio.h>
#include <stdio.h>

int Confines(int,int,int,int);
void main()
{
int n,i,j,s=0;
cout << "Enter N : ";
cin >> n;
i=1;
while(i<=n)
{
int xi,yi;
cout << "Enter X" << i << " : ";
cin >> xi;
cout << "Enter Y" << i << " : ";
cin >> yi;
i++;
}
for (i=1;i<=n;i++)
{
cout << "S" << i << " : ";
for (j=1;j<=n;j++)
{
if (i==j)
j++;
s=Confines (xi,yi,xj,yj);
if (s==1)
cout << "S" << j << ",";
if (j==n)
cout << "\n";
}}
getch();
}
int Confines (int a1,int b1,int a2,int b2)
{
int s=0;
if (a1>a2)
{
if (b2>a1)
s=1;
else
s=0;
}
else if (a1<a2)
{
if (b1>a2)
s=1;
else
s=0;
}
else
s=1;
return s;
}
من تونستم متغییرها رو تعریف کنم ولی نمیتونم از اونها در قسمتهای دیگه برنامه استفاده کنم ، آیا راهی هست که بتونم از این متغییر ها استفاده کنم یا راه بهتری برای تعریف متغییر به صورتی که قابل استفاده باشه وجود داره ؟

kiani.mehdi
یک شنبه 27 خرداد 1386, 21:51 عصر
cin >> n;
i=1;
while(i<=n)
{
int xi,yi;
cout << "Enter X" << i << " : ";
cin >> xi;
cout << "Enter Y" << i << " : ";
cin >> yi;
i++;
}







شما نمیتونین با دستورات فوق متغیرایی که میخواین را تعریف کنین
باید از آرایه ها استفاده کنین





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


خوب مسلمه که نمیتونید
برای اینکه متغیر هاتون را داخل بلاک while تعریف کردین
هر متغیری که داخل هر بلاکا تعریف میشه خارج از بلاک شناخته شده نیست

ولی در کل از بیخ و بن راه را اشتباه رفتین

همیشه در اوایل راه بهتره که از برنامه های ساده تر شروع کنید
شاید برنامه فوق که شما میخواین بنبویسین برای یه برنامه نویس معمولی سی پلاس هم خیای ساده باشه و لی اگه خیلی توی سی پلاس مبتدی هستین پیشنهاد میکنم که یه روال منظم از برنامه های خیلی ساده را پی بگیرید تا به برنامه های مشکل تر و بزرگتر برسید

برنامه نویسی های حرفه ای هم یه روز مثل شما بودن

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