The Developer 5478 اشتراک گذاری ارسال شده در 29 دی، ۱۳۹۱ ممنون از راهنمایی تون.تونستم add و sort برنامه رو بنویسم.به این صورت void add (string a[],string b[],string c[],float d[],int ) { cout for(int i=0;i { cout cin>>a>>b>>c>>d; } } ولی اینجا تعداد افرادی که میگیره 3 نفره.نمیخوام یه مقدار ثابت باشه.میخوام هرتعداد که خواست وارد کنه.میخوام بپرسه که وارد کردن اطلاعات افراد ادامه داشته باشه یا نه و در ابتدای برنامه تعداد افراد مشخص نباشه. نمیدونم منظورم رو رسوندم یا نه. خوب شما بیاین از تخصیص حافظه پویا در برنامتون استفاده کنید / به این صورت که هنگام درج اطلاعات دانشجویان تعداد دانشجوها رو سوال کنه و بر اساس اون تعداد خانه حافظه را در نظر بگیره برای تخصیص حافظه پویا از تابع malloc استفاده میشه void * malloc ( size_t size ); برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام موفق باشید 2 لینک به دیدگاه
tahmina 41 اشتراک گذاری ارسال شده در 29 دی، ۱۳۹۱ این تابعی که نوشتین برای c ولی من با c++ مینویسم. سوال: ما از سیستم درخواست حافظه میکنیم.بعد تست میکنیم ببینیم به ما داده یا نه؟درست میگم؟ اگه این طوری باشه،ممکنه یک بار به ما حافظه نده.اون موقع چه اتفاقی می افته؟ چرا باید از حافظه پویا استفاده کنیم؟مگه نمیشه این کار رو با ارایه هم انجام داد؟ لینک به دیدگاه
The Developer 5478 اشتراک گذاری ارسال شده در 29 دی، ۱۳۹۱ این تابعی که نوشتین برای c ولی من با c++ مینویسم.سوال: ما از سیستم درخواست حافظه میکنیم.بعد تست میکنیم ببینیم به ما داده یا نه؟درست میگم؟ اگه این طوری باشه،ممکنه یک بار به ما حافظه نده.اون موقع چه اتفاقی می افته؟ چرا باید از حافظه پویا استفاده کنیم؟مگه نمیشه این کار رو با ارایه هم انجام داد؟ اون تابع رو هم میتونید در سی پلاس پلاس استفاده کنید. دقیقا میشه همین کار رو با آرایه انجام داد. ولی اگه حرفه ایی بخواین به قضیه نگاه کنید اینه که از حافظه پویا استفاده بشه / برای مثال شما یه ارایه 100 عضوی در نظر میگیرید شاید کاربر شما 5 تا از اون رو استفاده کنه 95 خانه اضافه اشغال شده و یا کاربر شما قصد داشته باشه 101 دانشجو وارد کنه ! کلا در برنامه نویسی راه ها و الگوریتم های زیادی برای رسیدن به هدف وجود داره / مهم اینه که کدوم کارایی بیشتری داره موفق باشید 3 لینک به دیدگاه
tahmina 41 اشتراک گذاری ارسال شده در 29 دی، ۱۳۹۱ خیلی ممنون. ولی در چه صورت امکان داره سیستم به ما حافظه نده؟ لینک به دیدگاه
The Developer 5478 اشتراک گذاری ارسال شده در 29 دی، ۱۳۹۱ خیلی ممنون.ولی در چه صورت امکان داره سیستم به ما حافظه نده؟ متوجه منظورتون نمیشم که چرا باید سیستم به ما حافظه نده لینک به دیدگاه
tahmina 41 اشتراک گذاری ارسال شده در 29 دی، ۱۳۹۱ متوجه منظورتون نمیشم که چرا باید سیستم به ما حافظه نده پس چرا باید تست کنیم ببینیم بهمون حافظه میده یا نه؟ مثلا: int *x; if (!x) {cout exit(1);} مگه ما اینجا تست نکردیم که حافظه داده یا نداده؟ لینک به دیدگاه
The Developer 5478 اشتراک گذاری ارسال شده در 29 دی، ۱۳۹۱ پس چرا باید تست کنیم ببینیم بهمون حافظه میده یا نه؟مثلا: int *x; if (!x) {cout exit(1);} مگه ما اینجا تست نکردیم که حافظه داده یا نداده؟ برفرض که کاربر عددی وارد نکرده برای مدیریت خطا ما از برنامه خارج میشیم یا اینکه سیستم نتونست به اون میزانی که کاربر وارد کرده به ما حافظه بده و .. / البته این حدس خودمه و هیچ دلیل دیگه ای ندارم 1 لینک به دیدگاه
tahmina 41 اشتراک گذاری ارسال شده در 30 دی، ۱۳۹۱ ممنون. این ضرب دو ماتریسه چرا متغییر k رو کوچکتر از 3 قرار میدیم؟ int mat1[2][3], mat2[3][4], mat3[2][4]={0} ; int i,j,k,l ; clrscr(); //read mat1 for(i=0 ; i<2 ; i++) for(j=0 ; j<3 ;j++) { printf("tenter mat1[%d][%d]: ",i,j); scanf("%d",&mat1[i][j]) ; } //read mat2 for(i=0 ; i<3 ; i++) for(j=0 ; j<4 ;j++) { printf("enter mat2[%d][%d]: ",i,j); scanf("%d",&mat2[i][j]) ; } //multiply mat1 by mat2 for(i=0 ; i<2 ; i++) for(j=0 ; j<4 ;j++) { mat3[i][j]=0 ; for(k=0 ;k<3 ; k++) mat3[i][j] = mat3[i][j]+mat1[i][k]*mat2[k][j]; } برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام میخوام از clsec(); استفاده کنم ولی ارور میده.چکار باید بکنم.توی visual studio مینویسم. لینک به دیدگاه
tahmina 41 اشتراک گذاری ارسال شده در 30 دی، ۱۳۹۱ کلا میشه طرز کار ضرب دو ماتریس رو توضیح بدین؟ لینک به دیدگاه
The Developer 5478 اشتراک گذاری ارسال شده در 30 دی، ۱۳۹۱ ممنون.این ضرب دو ماتریسه چرا متغییر k رو کوچکتر از 3 قرار میدیم؟ int mat1[2][3], mat2[3][4], mat3[2][4]={0} ; int i,j,k,l ; clrscr(); //read mat1 for(i=0 ; i<2 ; i++) for(j=0 ; j<3 ;j++) { printf("tenter mat1[%d][%d]: ",i,j); scanf("%d",&mat1[i][j]) ; } //read mat2 for(i=0 ; i<3 ; i++) for(j=0 ; j<4 ;j++) { printf("enter mat2[%d][%d]: ",i,j); scanf("%d",&mat2[i][j]) ; } //multiply mat1 by mat2 for(i=0 ; i<2 ; i++) for(j=0 ; j<4 ;j++) { mat3[i][j]=0 ; for(k=0 ;k<3 ; k++) mat3[i][j] = mat3[i][j]+mat1[i][k]*mat2[k][j]; }[/left][/quote] [left][/left] [quote]کلا میشه طرز کار ضرب دو ماتریس رو توضیح بدین؟[/quote]برای مثال در ضرب دو ماتریس 3*4 و 4*5 جواب ما یک ماتریس 3*5 هست.در برنامه که قرار دارین یک ماتریس 2*3 را با 3*4 ضرب میکنه و جوابش در ماتریس 2*4 قرار میدهمقدار k=3 قرار داده چون به تعداد ستون های ماتریس اول در تعداد سطرهای ماتریس دوم باید عمل ضرب انجام بشه [quote name='tahmina']این برنامه رو نوشتم ولی وقتی چاپ میکنه داده ها زیر هم قرار نمی گیرن.چرا؟[code]// join project.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>#include <string>const int n=3;using namespace std;void add (string [],string[],string[],float [],int );void sort (string [],string[],string[],float [],int );void output(string [],string[],string[],float [],int );int main(){ string last_name[n]; string name[n]; string id[n]; float ave[n]; add(last_name,name,id,ave,n); sort(last_name,name,id,ave,n); output(last_name,name,id,ave,n); cin.get();}//********************************************************void add (string a[],string b[],string c[],float d[],int n){ cout<<"enter last name,name,id,average:"<<endl<<endl; for(int i=0;i<3;i++) { cout<<i+1<<"."; cin>>a[i]>>b[i]>>c[i]>>d[i]; } cout<<endl<<endl;}//********************************************************void sort (string a[],string b[],string c[],float d[],int n){ float temp; for (int j=1;j<n;j++) for(int i=0;i<n-j;i++) if (a[i]>a[i+1]) { a[i].swap(a[i+1]); c[i].swap(c[i+1]); b[i].swap(b[i+1]); temp=d[i]; d[i]=d[i+1]; d[i+1]=temp; }}//********************************************************void output(string a[],string b[],string c[],float d[],int n){ cout<<'\t'<<"last name"<<'\t'<<"name"<<'\t'<<"id"<<'\t'<<"average"<<endl; cout<<"---------------------------------------------------------------"; for(int i=0;i<n;i++) cout<<'\t'<<a[i]<<'\t'<<b[i]<<'\t'<<c[i]<<'\t'<<d[i]<<endl; cin.get();} برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام در ضمن متوجه منظورتون از clsec() نشدم!! موفق باشید 1 لینک به دیدگاه
tahmina 41 اشتراک گذاری ارسال شده در 1 بهمن، ۱۳۹۱ خیلی خیلی ممنون. اونو اشتباه تایپ کرده بودم ،خودم متوجه شدم. لینک به دیدگاه
tahmina 41 اشتراک گذاری ارسال شده در 1 بهمن، ۱۳۹۱ سلام. من شماره دانشجویی هارو نتونستم توی ارایه ذخیره کنم پس توی ارایه رشته ای زخیره کردم.حالا میخوام بر اساس شماره دانشجویی،دانشجوهارو مرتب کنم.نمدونم چطوری باید دو تا شماره دانشجویی رو باهم مقایسه کنم. میخوام وقتی فامیلی یک دانشجو رو حذف میکنم تمام مشخصاتی که براش وارد شده هم حذف شه.چطوری؟ :ws36: لینک به دیدگاه
The Developer 5478 اشتراک گذاری ارسال شده در 1 بهمن، ۱۳۹۱ سلام.من شماره دانشجویی هارو نتونستم توی ارایه ذخیره کنم پس توی ارایه رشته ای زخیره کردم.حالا میخوام بر اساس شماره دانشجویی،دانشجوهارو مرتب کنم.نمدونم چطوری باید دو تا شماره دانشجویی رو باهم مقایسه کنم. میخوام وقتی فامیلی یک دانشجو رو حذف میکنم تمام مشخصاتی که براش وارد شده هم حذف شه.چطوری؟ :ws36: توجه داشته باشید که sort کردن یک آرایه ی رشته با sort کردن آرایه عددی هیچ تفاوتی نداره و همون منوالی که برای مرتب کردن آرایه عددی قبلا انجام میدادید انجام بدین! برای سوال دومتون هم یک مثال واضح از سایت cplusplus رو نگاه کنید کاملا واضح هست / اول باید رکورد اون دانشجو رو پیدا کنید و بعدش حذف! مشاهده نمونه: برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام موفق باشید 1 لینک به دیدگاه
tahmina 41 اشتراک گذاری ارسال شده در 3 بهمن، ۱۳۹۱ دوباره سلام. متوجه نمیشم کجاش مشکل داره. میشه لطفا برام پیداش کنید.کلا درسته من اینطوری outputرو فراخوانی کردم.می خوام بعد از sort چاپشون کنه اینطوری درسته؟ // project2.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>#include <string>#include <windows.h>using namespace std;const int n=3;void add (string [],string [],string [],float [],int );void sort (string [],string[],string[],float [],int );void last_name_sort(string [],string [],string [],float [],int );void id_sort(string [],string [],string [],float [],int );void ave_sort(string [],string [],string [],float [],int );void output (string [],string[],string[],float [],int );int main(){ string a[n]; string b[n]; string c[n]; float temp; float d[n]; add(a,b,c,d,n); sort(a,b,c,d,n); cin.get();}//**************************************************************void add (string a[],string b[],string c[],float d[],int n){ cout<<"enter last name,name,id,average:"<<endl<<endl; for(int i=0;i<3;i++) { cout<<i+1<<"."; cin>>a[i]>>b[i]>>c[i]>>d[i]; } cout<<endl<<endl;}//*****************************************void sort (string a[],string b[],string c[],float d[],int n){ int f; cout<<endl<<"how do you want to sort information?"<<endl<<endl; Sleep(500); cout<<" "<<"2.by id"<<endl; Sleep(500); cout<<" "<<"3.by average"<<endl; Sleep(500); cin>>f; switch(f) { case 1: last_name_sort(a,b,c,d,n); break; case 2: id_sort(a,b,c,d,n); break; case 3: ave_sort(a,b,c,d,n); break; }//*************************************************************void last_name_sort(string a[],string b[],string c[],float d[],int n){ int g; float temp; for (int j=1;j<n;j++) for(int i=0;i<n-j;i++) if (a[i]>a[i+1]) { a[i].swap(a[i+1]); c[i].swap(c[i+1]); b[i].swap(b[i+1]); temp=d[i]; d[i]=d[i+1]; d[i+1]=temp; }void output(a,b,c,d,n);}//***************************************************************void id_sort(string a[],string b[],string c[],float d[],int n){ int temp; for (int j=1;j<n;j++) for(int i=0;i<n-j;i++) if (c[i].compare(c[i+1])>0) { c[i].swap(c[i+1]); a[i].swap(a[i+1]); b[i].swap(b[i+1]); temp=d[i]; d[i]=d[i+1]; d[i+1]=temp; } void output(a,b,c,d,n);}//*****************************************************************void add (string a[],string b[],string c[],float d[],int n){ int temp; for (int j=1;j<n;j++) for(int i=0;i<n-j;i++) if (d[i]>d[i+1]) { c[i].swap(c[i+1]); a[i].swap(a[i+1]); b[i].swap(b[i+1]); temp=d[i]; d[i]=d[i+1]; d[i+1]=temp; } void output(a,b,c,d,n);}//*****************************************************************void output(string a[],string b[],string c[],float d[],int n){ cout<<'\t'<<"last name"<<'\t'<<"name"<<'\t'<<"id"<<'\t'<<"average"<<endl; cout<<'\t'<<"---------------------------------------------------------------"<<endl; for(int i=0;i<n;i++) cout<<"\t"<<a[i]<<"\t\t"<<b[i]<<"\t"<<c[i]<<"\t"<<d[i]<<endl; cin.get();} لینک به دیدگاه
tahmina 41 اشتراک گذاری ارسال شده در 8 بهمن، ۱۳۹۱ سلام. من میخوام یه تابع بنویسم که دوتا ارایه رو در هم ضرب بکنه.ارایه هام اعداد n رقمی (حداکثر 50 رقمی) توشون ذخیره شده. لطفا راهنماییم کنید.مرسی لینک به دیدگاه
The Developer 5478 اشتراک گذاری ارسال شده در 8 بهمن، ۱۳۹۱ سلام.من میخوام یه تابع بنویسم که دوتا ارایه رو در هم ضرب بکنه.ارایه هام اعداد n رقمی (حداکثر 50 رقمی) توشون ذخیره شده. لطفا راهنماییم کنید.مرسی با سلام / برنامه زیر مقادیر دو آرایه ی یک بعدی با 3 عنصر را از ورودی گرفته و سپس ضرب این دو آرایه را در یک آرایه دیگه ذخیره میکنه برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام موفق باشید لینک به دیدگاه
DavOOd_TiTaN 10472 اشتراک گذاری ارسال شده در 16 فروردین، ۱۳۹۲ کسی تو حل کردن این سوالا میتونه بهم کمکی بکنه برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام 1 لینک به دیدگاه
unstoppable 5989 اشتراک گذاری ارسال شده در 9 اردیبهشت، ۱۳۹۲ سلام دوستان من یه برنامه نوشتم به زبان ++C و با visual studio اما Ctrl+F5 (برای اجرای برنامه) رو که میزنیم.این پیام میاد. کسی میتونه کمکم کنه؟ لینک به دیدگاه
ارسال های توصیه شده