ورود

نسخه کامل مشاهده نسخه کامل : سوال تخصصی درc++



psa93
19-01-2015, 14:27
باسلام
من برای نوشتن یک پروژه در رابطه با مجموعه ای از فایل ها وداکیومنت ها به چند مشکل برخوردم.یکی اینکه نحوه تعریف آرایه ای از فایل ها
دوم چگونگی گرفتن آدرس چند فایل از کاربر میباشد

psa93
19-01-2015, 17:18
من برای جلوگیری از تکرار در کدم فکر کردم آرایه مناسب بشه ،اگر شما نظر دیگری دارید ممنون میشم بگید:n13:

shengo_k
19-01-2015, 18:37
باسلام
من برای نوشتن یک پروژه در رابطه با مجموعه ای از فایل ها وداکیومنت ها به چند مشکل برخوردم.یکی اینکه نحوه تعریف آرایه ای از فایل ها
دوم چگونگی گرفتن آدرس چند فایل از کاربر میباشد
آرایه ها تعدادی متغییر هم نوع هستند که با یک نام مشترک ویک عدد بنام اندکس
منحصر به فرد برای هر متغیر شناخته می شوند. حافظه مر بوط به این متغییر ها بصورت متوالی و پشت سرهم در حافظه قرار میگیرند. وبه صورت
];تعداد[نام نوع دادهای
تعریف می شوند.

مثال:



int x[10];
float y[4];
char z[30];



نکته:
1.اندکس اولین خانه از صفر شروع می شود.
2.در صورت دستیابی به خانه های تعریف نشده از یک آرایه مثلاx[10]پیغام خطایی دریافت نخواهید کرد. لذا همیشه مراقب بازه اندکس ها باشید چرا که چنین دستیابی های غیر مجازی می تواند نتایج عجیب و غیر قابل پیش بینی داشته باشد مثل تغییر مقادیر سایر متغیرها.

بعد از تعریف یک آرایه شما می توانید با عباراتی مثل x[0] x[1] …x[n-1] به عناصر یا همان متغییر ها ی آرایه دسترسی داشته باشید در واقع عبارات فوق کاملا مشابه
متغییر های معمولی دیگر عمل میکنند.

برای مثال می توانید بنویسید:

cin>>x[0];

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

for(int i=0;i<10;i++)
cin>>x[i];

نکته:
1.انتساب آرایه ها به یکدیگر غیر مجاز است و سبب بروز خطای کامپایلری می شود.

int x[10];
int y[10];

خطا x=y;

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

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

int a[3][4][5];

مقدار اولیه در آرایه ها:
آرایه ها مانند سایر انواع مقدار اولیه ندارند لذا باید در صورت لزوم به آنها مقدار اولیه داد.
به مثال ها توجه کنید.

int x[5]={2,56,4,8,4};

پنج خانه آرایه بترتیب با اعداد ذکر شده مقدار دهی میشوند.

int y[2][3]={1,4,5,9,54,21,97};
int y[2][3]={{1,4,5},{54,21,97};

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

Int y3d[2][3][4]={{{1,2,3,4},{5,6,7,8},{9,10,11,12}},
{{13,14,15,16},{17,18,19,20},{21,22,23,24}}};

برای آرایه های چند بعدی بهتر است برای خوانایی بیشتر مقادیر هر سطر را در یک آکولاد قرار دهید.

int z[]={1,2,3};

در صورتی که اندازه آرایه ذکر نشودبرابر تعداد مقادیر ذکر شده در نظر گرفته می شود.

int x[5]={1,2};
int y[2][3]={1,4,5,9};
int y3d[2][3][4]={};

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

نکته:
آرایه ی عمومی همیشه مقدار اولیه صفر دارد.یعنی تمام خانه های آن صفر اند.

برای تعریف آرایه دو بعدی به صورت زیر عمل میکنیم:



ستون][سطر]اسم آرایه نوع آرایه]; مثلا آرایه ی a از نوع عدد صحیح و دارای 10 سطر و 5 ستون می باشد. شماره سطرهای آن از 0 تا 9 و شماره ستونهای آن از 0 تا 4 می باشند.

int a[10][5];برای استفاده از آرایه دو بعدی باید مفهوم حلقه های تو در تو را خوب درک کرده باشیم.

در مورد سوال دومتون هم متوجه نشدم اگه منظورتون نحوه گرفتن اطلاعات از کاربره میتونید از textbox استفاده کنید اگه میخواید یک فایل رو در نرم افزار لود کنید باید از Dialog استفاده کنید.

psa93
19-01-2015, 21:13
باتشکر از پاسخ شما!منظور من نحوه تعریف فایل ها(.docو.txtدر هارد) میباشد.اما در مورد سوال دوم بیشتر توضیح بدید چجوری درc++میتونم ازtext boxاستفاده کنم؟ونحوه استفاده ازdialogرا توضیح دهید(درضمن من از برنامه ویژوال استادیو استفاده میکنم نه از مرورگرها)باتشکر

shengo_k
19-01-2015, 21:31
باتشکر از پاسخ شما!منظور من نحوه تعریف فایل ها(.docو.txtدر هارد) میباشد.اما در مورد سوال دوم بیشتر توضیح بدید چجوری درc++میتونم ازtext boxاستفاده کنم؟ونحوه استفاده ازdialogرا توضیح دهید(درضمن من از برنامه ویژوال استادیو استفاده میکنم نه از مرورگرها)باتشکر
دوست عزیز در برنامه نویسی شما نمیتونید فایل هایی با پسوند doc. که برای فایل های ورد آفیس به کار میرود رو تعریف کنید تنها در برنامه نویسی میتونید متغییرها آرایه ها و امثال آنهارا تعریف کنید که در آنها مقادیر عددی و رشته ذخیره شود
Textbox یک ابزار است که شما میتونید از قسمت ابزار ها اون رو روی فرم خودتون بیارید و از طریق آن میتونید مقادیر عددی و رشته (string) رو از کاربر دریافت یا به کاربر نشان دهید برای مثال اگه وارد سایتی میشید ازتون یوزرنیم و رمز میخواد شما اطلاعات خودتون رو در Textbox وراد میکنید.
dialog نیز یک ابزار است که با آن میتونید برای مثال یک فایل با پسوند txt. (متن) و ... رو در برنامه تون لود کنید و برای آن تعریف کنید که محتوای متنی فایلی با پسوند txt. در textbox یا listbox قرار داده شود همینتور میتویند برای ذخیره کردن فایل ها با پسوند های مختلف نیز از آن استفاده کنید که در هر زبان برنامه نویسی تعریف کردن کدهاشون مقداری با هم تفاوت داره.

من به شما که تازه در حال شروع کردن برنامه نویسی هستید زبان #C رو پیشنهاد میکنم که از ++C قدرتمندتره و از تکلونوژیه بالاتری بهره مند است

psa93
19-01-2015, 21:45
من با c++آشنایی قبلی داشتم به همین علت تصمیم گرفتم پروژم را با این زبان بنویسم تا کمتر درگیر یادگیری کدها باشم.پروژه ای که من دارم مربوط به بازیابی اطلاعات است که باید یک موتور جستجو براش نوشته بشه که ازمیان صدها داکیومنت ،داکیومنت مربوط به کوئری که کاربر وارد میکنه برگردونده بشه.البته داکیومنت ها باید ازطرف خود کاربر selectبشه.(من با زبان وب نویسی آشنایی دارم ولی هدف ازپروژه من نوشتن باازبان های cیاc++یاc#یا جاواست)

shengo_k
19-01-2015, 22:02
من با c++آشنایی قبلی داشتم به همین علت تصمیم گرفتم پروژم را با این زبان بنویسم تا کمتر درگیر یادگیری کدها باشم.پروژه ای که من دارم مربوط به بازیابی اطلاعات است که باید یک موتور جستجو براش نوشته بشه که ازمیان صدها داکیومنت ،داکیومنت مربوط به کوئری که کاربر وارد میکنه برگردونده بشه.البته داکیومنت ها باید ازطرف خود کاربر selectبشه.(من با زبان وب نویسی آشنایی دارم ولی هدف ازپروژه من نوشتن باازبان های cیاc++یاc#یا جاواست)
دوست عزیز زبان برنامه نویسی من #C هست و من در زمینه ++C خیلی وارد نیستم و میشه گفت هنوز مبتدی هستم برای همین خیلی در مورد زبان سی پلاس پلاس نمیتونم کمکتون کنم اما اگه سی شارپ بود میتونستم کمکتون کنم شما از منابع موجود در انجمن استفاده کنید کمکمتون میکنه مطالب خیلی مفید و جامعی موجود هست