دوستان کسی می تونه در رابطه با استراکچر ها و کاربردش و نوع تعریفش کمک کنه
ممنون میشم
Printable View
دوستان کسی می تونه در رابطه با استراکچر ها و کاربردش و نوع تعریفش کمک کنه
ممنون میشم
سلام.
فك كنم بهترين راه بررسي سورس باشه.
کد:#include<time.h>
#include<stdio.h>
#include<conio.h>
struct time{
int h;
int m;
int s;
};
void update(struct time *);
void display(struct time *);
void stop(void);
/////////////
main(){
long int x;
struct time tm={0};
while(1){
sleep(1);
update(&tm);
display(&tm);
}
}
///////////////
void update(struct time *p){
p->s++;
if(p->s==60){
p->s=0;
p->m++;
}
if(p->m==60){
p->m=0;
p->h++;
}
if(p->h==24)
p->h=0;
clrscr();
}
//////////////
void display(struct time *p){
printf("%d %d %d\n",p->h,p->m,p->s);
}
برنامه ای بنویسید که ریختن دو تاس را شبیه سازی کند این برنامه باید برای ریختن دو تاس دوبار ازتابع rand استفاده کند.(یک بار برای تاس اول و یک باربرای تاس دوم).سپس مجموع این دو مقدار محاسبه شود.برنامه شما باید دوتاس را 36000 بار بریزد.با استفاده از آرایه یک بعدی ، تعداد دفعاتی را که هر یک از مجموعه های ممکن ، پیش می آیند ثبت کرده و نتایج را به شکل جدولی چاپ کنید.اینو قبلا برنامشو با دوستان توی یکی دو تا پست قبلی نوشتیم که خب من خیلی متوجه راه حل نشدم . ولی خود آقای دایتل این مسئله رو اینجوری حل کردن .به نظر شما چرا آرایه ی expected رو اینجوری مقدار دهی کرده ؟ چرا از هر کدوم مقادیر 2 بار استفاده کرده ولی از 6 یک بار ؟؟؟
کد:
#include<iostream>
#include<iomanip>
using namespace std;
#include <ctime>
#include <cstdlib>
int main(){
const long rolls=36000;
const int size=13;
//array exepeted contains counts for the expected
//number of times each sum occurs in 36 rolls of the dice
int expected[size]={0,0,1,2,3,4,5,6,5,4,3,2,1};
int x,y,sum[size]={0};
srand(time(0));
for (long i=1;i<=rolls;i++){
x=rand()%6+1;
y=rand()%6+1;
sum[x+y]++;}
cout<<setw(10)<<"sum"<<setw(10)<<"total"<<setw(10)
<<"Expected"<<setw(10)<<"Actual\n"
<<setiosflags(ios::fixed |ios::showpoint );
for(int j=2;j<size;j++){
cout<<setw(10)<<j<<setw(10)<<sum[j]<<setprecision(3)
<<setw(9)<<100.0*expected[j]/36<<"%"<<setprecision(3)
<<setw(9)<<100.0*sum[j]/36000<<"%\n";}
return 0;
}
salam man so@li dastam va javbe on ra hamin alan mikham age lotfkonid bedin mamnon misham....barname benevisid ba estefade az dastore array va string yek reshte hc vorodi bekhanid be entehaye reshte@ ezafe konid
سلام دوستان کمک
برنامه ای بنویسید به عنوان حقوق کارمند اگر بالای 500باشه 10درصدمالیات و7درصد بیمه کم شه اگه حقوق بین 300 تا 500 باشه 7درصد مالیات و 5 درصد بیمه و اگر حقوق زیر 300 باشه 5درصد مالیات و3 درصد بیمه کسر شه خالص دریافتی بهمون بده ممنون میشم
سلام دوستان
میخوام بدونم چرا بورلند به
cin>>a[i][j]
گیر میده میگه Invalid indirection ؟:13:
#include <iostream.h>
int M(int a,int b)
{
int M[100],i,j;
for (i=1;i<=a;i++)
{ for (j=1;j<=b;j++)
cin>>a[i][j];
}
return M[100];
}
آه...:31:نقل قول:
چه اشتباهی...ببخشید.:46:
باید اینو مینوشتم:
#include <iostream.h>
int Mat(int a,int b)
{
int M[100][100];
int i,j;
for (i=1;i<=a;i++)
{ for (j=1;j<=b;j++)
cin>>M[i][j];
}
return M[100][100];}
سلام
من دارم یه برنامه مینویسم یه جاش رو گیر کردم : ضرب ماتریس n*n که باید ماتریس ها تو یه تابع فراخونی بشه.
دوستان راهنمایی کنید من چطور واسه این برنامه مقدار ماتریس رو که تابع گرفته به برنامه اصلی بازگردونم یعنی جلوی return چی بنویسم؟ مینویسم ;[A[n][m مقدار خونه n و m به برنامه اصلی داده میشه ؟!! چیکار کنم کل ماتریس رو به برنامه main برگردونه؟؟
int MAT(int n,int m)
{
int A[100][100],i,j;
for (i=1;i<=n;i++)
{for (j=1;j<=m;j++)
{cout<<"meghdare khane ("<<i<<","<<j<<") = ";
cin>>A[i][j];}
}
return
}
ممنون:11:
سلام دوستان
کلا کسی میدونه این سوالو من باید چیکار کنم ؟
Description
This puzzle consists of a random sequence of m black disks and n white disks on an oval-shaped track, with a turnstile capable of flipping (i.e., reversing) three consecutive disks. In Figure 1, there are 8 black disks and 10 white disks on the track. You may spin the turnstile to flip the three disks in it or shift one position clockwise for each of the disks on the track (Figure 1).
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
The goal of this puzzle is to gather the disks of the same color in adjacent positions using flips and shifts. (Figure 2)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
You are to write a program which decides whether a given sequence can reach a goal or not. If a goal is reachable, then write a message "YES"; otherwise, write a message "NO".
Input
The input consists of T test cases. The number of test cases ) (T is given in the first line of the input file. Each of the next T lines gives a test case. A test case consists of an integer, representing the sum of m and n, and a sequence of m+n 0s and 1s, representing an initial sequence. A 0 denotes a white disk and a 1 denotes a black disk. The sum of m and n is at least 10 and does not exceed 30. There is a space between numbers.
Output
The output should print either "YES" or "NO" for each test case, one per line.
Sample Input
2 18 0 0 1 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1 14 1 1 0 0 1 1 1 0 0 1 1 0 1 0
Sample Output
YESNO
Source
ببینید برای اینگونه کارها بهتر از کانتینرهای پیش فرض مانند vector استفاده کنید، چون در غیر این صورت کار کمی پیچیده میشه، باید با استفاده از pointer ها این array رو بیرون بکشید، در مورد array های یک بعدی کار ساده هست و براحتی میشه این کار رو انجام داد، اما در مورد array های دو بعدی مانند مثال شما در واقع باید بگونه ای این کار رو انجام داد تا هم کامپایلر به شما ایراد نگیره و هم مشکل منطقی نداشته باشید، برای اینکار من مثال زیر رو براتون نوشتم نگاه کنید، امیدوارم کمکتون کنه:نقل قول:
امیدوارم با این مثال بتونید مشکلتون رو حل کنید.کد:#include <iostream>
using namespace std;
int** test(){
int **A=new int*[4];
for (int i=0; i<4; i++)
{
A[i] = new int[4];
for (int j=0; j<4; j++)
A[i][j]=i+j;
}
return A;
}
int main()
{
int **b=test();
cout <<b[2][3];
system("pause");
return 0;
}
ببینید اگر بخواهید واقعا از آنچه که در سوال گفته پیروی کنید به نظر من باید از یک cyclic linked list استفاده کنید، و عملیات مورد نظر رو که مقایسه ی دو عدد در یک سری 3 تایی بکنید، اگر عددی صفر بود، جایش را عوض کنید و این کار را به تعداد کل اعداد تکرار کنید تا تمام اعداد در یک سو جمع شوند.نقل قول:
ولی اگر صرفا هدف بدست آوردن جواب باشد، از یک array استفاده کنید، همانند bubble sort دو به دو مقایسه کنید و جایشان را در صورتی که یکی 0 بود عوض کنید، و اینکار را به تعداد اعداد تکرار کنید، یعنی دو loop در هم، نهایتا کل array را یکبار چک کنید ببینید آیا در بین دو عدد 0 وجود دارد یا نه! اگر وجود نداشت که جواب yes هست و در غیر این صورت جواب no هست.
نظر من بر این شکل است
برای اجرای یه سری برنامه گرافیکی به مشکل خوردم . مثلا ارور میده BGI رو پیدا نمیکنه .باید چی کار کنم ؟
دوستان سوال من خیلی راحت بود یا خیلی سخت که هیچ کسی حاضر نشد بهم جواب بده :41: :19:
نقل قول:
با Visual Studio کار می کنین ؟
دوست خوبم sin2x=2sinxcosx سلام;
من یه برنامه در رابطه با این موضوع گرفتم که به زبان c نوشته شده و برای اجرا شدنش خواستم از turbo c++ استفاده کنم که با این ارور مواجه شدم
و یه سوال دیگه
اگر بخوام دستورات زبان C در ویژوال اجرا شه باید چی کار کنم؟
سلام .
BGI قدیمی و ناسازگار هست .
به هدر graphic تون ایراد نمی گیره ؟
تو ویژوال سی پلاس پلاس کدهای C کامپایل میشه ولی نه دیگه graphic و BGI و اینا .
مثلا این برنامه رو در نظر بگیرید
پیغامکد:
#include<graphics.h>
#include<conio.h>
void main(void){
int gd,gm,r;
gd=DETECT;
initgraph(&gd,&gm,"");
for(r=10;r<=200;r+=10)
circle(320,240,r);
getch();
closegraph();
}
BGI graphic not supported under windows میده.
اگر اشتباه نکنم قبلا یه سری فایل رو از یه جایی به جایی دیگه کپی میکردیم تا مثلا این جور برنامه ها اجرا میشدن حالا چی و کجاش رو اصلا یادم نمیاد!!!!
.
شاید باید از Turbo C داس استفاده کنین .
دوستان این جمله رو بخونید .کامپایلر فرقی بین تابعی که اشاره گر دریافت میکند و تابعی که آرایه ای یک بعدی دریافت می کند قائل نمیشود . البته این بدان معناست که خود تابع باید بداند آیا آرایه ای دریافت کرده است یا اشاره گری به یک متغیر.مثلا وقتی کامپایلر برای آرایه ای یک بعدی به پرامتری به صورت int b[] برخورد کند ، این پارامتر را به نگارش اشاره گری int *b تبدیل میکند. دو شکل فوق برای اعلان آرایه ای یک بعدی به عنوان پارامتر یک تابع با هم معادل میباشند.
حالا سوال : "خود تابع باید بداند آیا آرایه ای دریافت کرده است یا اشاره گری به یک متغیر" . چطوری میتونه بفهمه؟؟؟
اصلا لازم هم نیست بدونه . چون فرقی نمی کنه اصلا .نقل قول:
این جمله رو از دیتل خوندین ؟
مطمئن هستید؟؟؟ پس معنی این جمله یعنی چی؟؟؟
بله از دیتل خوندم.
صد در صد .نقل قول:
ببینین تعریفتون از آرایه چیه ؟
آرایه مجموعه ای از متغیرهاس که در خانه های متوالی از حافظه قرار گرفتن .
متوالی یعنی چی ؟
الان شما یه آرایه int مثلا 5 تایی تعریف کنین با نام a و به ترتیب بیاین a و a + 1 و a + 2 و a + 3 و ... رو چاپ کنین . ببینین نتیجه چی میشه .
اگه برای a عبارت 002CFB84 چاپ شه (که آدرس خونه اول آرایه تو حافظه اس) برای a + 1 همون عبارت به اضافه 4 چاپ میشه(چون int 4 بایت حافظه می گیره) یعنی 002CFB88 و بعدی هم میشه 002CFB8C . اینو هم در نظر داشته باشین که مبنا 16 هست .
یعنی اگه یه نفر آدرس خونه اول یه آرایه رو داشته باشه ، به کل آرایه می تونه توسط عملگر + دسترسی داشته باشه .
یعنی اشاره گر با آدرس خونه اول آرایه فرق نداره . پس اگه یه تابع یه اشاره گر به خونه اول آرایه رو بگیره در واقع کل آرایه رو گرفته .
توسط عملگر * هم میشه به محتوای این آدرس ها دسترسی داشت . چون گفتیم a یک اشاره گر هست در واقع پس میشه با a* به محتویات اون خونه دسترسی داشت . یعنی a* معادل [a[0 هست و (a+1)* معادل [a[1 و الی آخر ....
اشاره گر چیه ؟
اشاره گر یه متغیریه که به یه خونه از حافظه اشاره می کنه .
با سلام
ارام جون ما هم ميتونيم اشكالاتمونو ازتون بپرسيم؟
من خيلي تو اين درس مشكل دارم كلا از اساس چيزي نمي فهمم ولي خب خيلي خيلي علاقمندم برنامه نويسي رو ياد بگيرم ميشه كمكم كنيد؟
دوست گرامی mohandes haleنقل قول:
:11:آرام و sin2x=2sinxcosxاز دوستان بسیار خوب انجمن c هستند:11: که تا الان خودمن هر سوالی که داشتم این دوستان پاسخگو بودند . و مطمئن هستم که پاسخگوی سوالات شما هم خواهند بود . موفق باشید
سوال3:می خواستم برنامه ای بنویسید به زبان ++C که پرتاب یک سکه را شبیه سازی کند و ببیند چند بار باید سکه را پرتاب کرد تا 4 بار پشت سر هم شیر بیاید واین عدد را ذخیره کند واین عمل را تا 4000 بار تکرار کند و بعد میانگین ان ها را به ما بدهد فوری تاشنبهنقل قول:
سلام یه کمک میخوام در رابطه با نوشتن برنامه زیر [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
دوست عزیز2sinxcosx =sin2x وارم خانم من تازه عضو شده ام اما دیدم چقدر برنامه نویسی شما خوب است و چقدر سریع و با تسلط به سوالات جواب میدهید از شما میخواهم به من هم کمک کنید
میخواستم برنامه زیر رابنویسید
صورت کامل برنامه این است که ما تابع (f(x)=(x2 را در برنامه دارین برنامه از کاربر میخواهد که یکaوb را وارد کند وb-a را حساب کند که این همان دامنه تابع است بعد از کاربر میخواهد یک عددی وارد کند به عنوان i که این همان تعداد اعداد تصادفی است که کاربر میخواهد تولید شود مثلا 1000 کامپیوتر دامنه را به i قسمت تقسیم می کند برای راحت تر شدن برنامه یک ورودی از شما می گیرد یعنی یک x و (f(x وبعد اعدادی که انتحاب میکند (f(x هایشان را به ترتیب با مقدار (f(x قبلی مقایسه کند و اگر بزرگ تر از مقدار قبلی ماکزیمم بود ان را به جای مقدار قبلی ذخیره کند و اگر کوچکتر از مقدار قبلی مینیمم بود بود ان را به جای مینیمم قبلی جایگذاری کند اولین مقدار ماکزیمم و مینیمم همان مقدار اولیه ایست که کاربر وارد کرده (هم به عنوان ماکزیمم هم به عنوان مینیمم) و اخر سر (f(xماکزیمم و(f(xمینیمم را به ما میدهد به همراه xی که در ان نقطه این (f(x به دست می اید
{ برای نمونه کاربر وارد میکند a=-2و2=b دامنه ما نیسود از -2 تا2 بعد ما i را 1000 وارد میکنیم ;امپیوتر (b-a)/i )) مه همان 4/1000 را محاسبه میکند یعنی فاصله داده اول تا داده دوم 4/1000 است و بعد مینیمم راکه 0=(f(0 و ماکزیمم که 4=(f(2) = f(-2 است را به ما میدهد
دیگه بهتر از این بلد نیستم شرح بدم راستی نمیخوام زیاد پیشرفته باشد من فقط کمی برنامه نویسی بلدم در حد ایجاد تابع و یه کم هم ارایه ,...
از دوستان دیگر هم تقاضا کمک دارم :sq_7: پیشاپیش ممنون
سلام اگه منظورت ::stdاست؟؟؟؟؟؟؟؟؟؟نقل قول:
اگه بخوای اینو اول دستورهای cinوcout ننویسی باید اول برنامت دستور زیرو اضافه کنی:
;using namespace std