پاسخ : سورس های نوشته شده به زبان C و ++C این برنامه یه عدد میگیره و میگه اول هست یا نه و بعد تمام مقسوم علیه ها و همچنین مقسوم علیه های اول عدد رو به کاربر میگه کد: #include<iostream.h> #include<conio.h> #include<stdlib.h> int isprime(int); main() { int n=0,div[999],sh=0,pdiv[999],count=0,s=0; error: cout<<"Please insert a number : "<<"\n"; cin>>n; if(n<=0) { clrscr(); cout<<"You are just aloud to enter numbers wich are bigger than 0 (zero) ! Please try again . OK ?"<<"\n"; n=0; goto error; } for(int i=1;i<=n;i++) { if((n%i)==0) { div[sh]=i; sh++; } } if(sh==2) { cout<<"******************************************* *******"<<"\n"; cout<<"This number is prime and has 2 divisors :"<<"\n "<<char(26)<<" {1 , "<<n<<"}"<<"\n"; cout<<"******************************************* *******"<<"\n"; getch(); exit(1); } else if(sh==1) { cout<<"******************************************* *******"<<"\n"; cout<<"This number has ony 1 divisor :"<<"\n "<<char(26)<<" {1}"<<"\n"; cout<<"******************************************* *******"<<"\n"; getch(); exit(1); } else { cout<<"******************************************* *******"<<"\n"; cout<<"This number is not prime and has "<<(sh)<<" divisors :"<<"\n "<<char(26)<<" {"; for(int j=0;j<sh;j++) { if(j==(sh-1)) { cout<<div[j]<<"}"<<"\n"; goto con; } cout<<div[j]<<" , "; } } con: for(int k=0;k<sh;k++) { s=isprime(div[k]); if(s!=0) { pdiv[count]=s; s=0; count++; } else s=0; } cout<<" "<<char(26)<<" Prime divisors : {"; for(int u=0;u<count;u++) { if(u==(count-1)) { cout<<pdiv<<"}"<<"\n"; cout<<"******************************************* *******"<<"\n"; getch(); exit(1); } cout<<pdiv<<" , "; } } //================================================== ============================ int isprime(int a) { int pri=0; for(int r=1;r<=a;r++) { if((a%r)==0) pri++; } if(pri==2) return a; else return 0; }
پاسخ : سورس های نوشته شده به زبان C و ++C تشخیص متقارن بودن پارانتزها (به ازای هر پارانتز باز ، یک پارانتز بسته وجود دارد) با استفاده از پشته ها (STL) کد: #include <iostream> #include <conio> #include <stack> #include <string> #include <vector> using namespace std; int main(){ string str = "(2+3*(5+6/2))+(3/(6+7*3))"; stack<char,vector<char>> s; for(int i=0;i<str.size();i++){ if(str=='(') s.push('('); if(str==')') s.pop();} if(s.empty()) cout<<"True \n"; else cout<<"False \n"; getch(); }
پاسخ : سورس های نوشته شده به زبان C و ++C این برنامه تمام جایگشت های یک لیست عدد رو می دهد کد: #include <iostream> #include <fstream> #include <algorithm> #include <cmath> #include <vector> #include <set> #include <string> #include <sstream> #include <stack> #include <queue> #include <map> #include <numeric> #include <cstdlib> #include <cstring> #include <utility> #include <functional> #include <cstdio> #include <ctime> using namespace std ; int main () { //freopen ("in.in","r",stdin) ; int n ; cin >> n ;// number of inputs vector <int> v (n) ; for(int i = 0 ; i < n;i ++) cin >> v ; sort (v.begin(),v.end()) ; do { for(int i = 0 ; i < n;i ++){ if (i) printf (" ") ; printf ("%d",v ) ; } printf ("\n"); }while (next_permutation (v.begin(),v.end())) ; }
پاسخ : سورس های نوشته شده به زبان C و ++C این برنامه 12 عدد از کاربر میگیره نمودار خطی و میله ای رسم میکنه ترسیم خط بروش dda کد: #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <math.h> #include <string.h> #include <iostream.h> // Algoritm DDA void linedda(int x1,int y1,int x2, int y2,int c) { int dx=x2-x1; int dy=y2-y1; float x=x1; float y=y1; float xi,yi,step,k; if (fabs(dx)>fabs(dy)) step=abs(dx); else step=abs(dy); xi=dx/step; yi=dy/step; for(k=0;k<=step;k++) { putpixel(floor(x),floor(y),c); x+=xi; y+=yi; } } void gui() { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; /* initialize graphics mode */ initgraph(&gdriver, &gmode, ""); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* return with error code */ } } int guie() { getch(); closegraph(); return 0; } void bound(int x,int y,int f,int b) { int cu=getpixel(x,y); if (cu!=b) if(cu!=f) { putpixel(x,y,f); bound(x+1,y,f,b); bound(x,y+1,f,b); bound(x,y-1,f,b); bound(x-1,y,f,b); } } void bar(int b,int c) { linedda(c,440,c,b,5); linedda(c+10,440,c+10,b,5); linedda(c,b,c+10,b,5); linedda(c,440,c+10,440,5); bound(c+1,439,10,5); } int main(void) { const n=12; int v[n],i,j,x,x1; char *s; /* draw a line */ for (i=0;i<n;i++) { printf("Please enter number (%d): ",i+1); cin>>x; if (x<=100) v=x; else v=x%100; } gui(); cleardevice(); outtextxy(250,10,"In The Name of God"); outtextxy(400,470,"(Zalaghi,Bonyadi,Mahdavi)"); // bar diagram for(i=240,j=100;i<=420;i+=20,j-=10) { linedda(100,i,100,i+20,10); linedda(98,i,102,i,15); switch (j) { case 100:s="100"; break; case 90 :s="90"; break; case 80:s="80"; break; case 70 :s="70"; break; case 60:s="60"; break; case 50 :s="50"; break; case 40:s="40"; break; case 30 :s="30"; break; case 20:s="20"; break; case 10 :s="10"; break; } outtextxy(70,i-3,s); } linedda(98,440,102,440,15); outtextxy(70,437,"0"); linedda(100,440,400,440,10); for(i=0,j=130;i<n;i++,j+=20) { x=v/10*20+(v%10)*2; bar(440-x,j); } // Linear Diagram for(i=20,j=100;i<=200;i+=20,j-=10) { linedda(100,i,100,i+20,10); linedda(98,i,102,i,15); switch (j) { case 100:s="100"; break; case 90 :s="90"; break; case 80:s="80"; break; case 70 :s="70"; break; case 60:s="60"; break; case 50 :s="50"; break; case 40:s="40"; break; case 30 :s="30"; break; case 20:s="20"; break; case 10 :s="10"; break; } outtextxy(70,i-3,s); } linedda(98,220,102,220,15); outtextxy(70,217,"0"); linedda(100,220,400,220,10); for(i=0,j=130;i<n-1;i++,j+=20) { x=(v/10)*20+(v%10)*2; x1=(v[i+1]/10)*20+(v[i+1]%10)*2; //putpixel(j,220-x,15); linedda(j,220-x,j+20,220-x1,15); } /* clean up */ guie();
پاسخ : سورس های نوشته شده به زبان C و ++C مرتب کردن عناصر یک Vector کد: #include <iostream> #include <conio> #include <vector> #include <string> #include <algorithm> using namespace std; int main(){ vector<string> v; v.push_back("salar"); v.push_back("ali"); v.push_back("hossain"); v.push_back("reza"); //---------------------- sort(v.begin(),v.end()); //---------------------- for(int i=0;i<v.size();i++) cout<<v<<endl; getch(); }
پاسخ : سورس های نوشته شده به زبان C و ++C برنامه ای که بورد گرافیکی سیستم را تشخیص داده و محدوده ی وجه گرافیکی آن را تعیین میکند کد: #include "graphics.h" #include "stdio.h" int main(void) { int driver,mode; int far *high,*low ; driver=DETECT; initgraph(&driver,&mode,"") ; getmoderange(driver,low,high); printf("\nmode range: %d-%d",low,high); return 0; }
پاسخ : سورس های نوشته شده به زبان C و ++C برنامه ای که تعداد رنگ های قابل استفاده در وجه گرافیکی تایین شده توسط ()initgraph را مشخص میکند. کد: #include "graphics.h" #include "stdio.h" #include "conio.h" int main(void) { int driver,mode; struct palettetype p; driver=DETECT; mode=0; initgraph(&driver,&mode," "); getpalette(&p); printf("\n number of color in ") ; printf(" palette:%d",p.size); getch(); restorecrtmode(); return 0; }
پاسخ : سورس های نوشته شده به زبان C و ++C یک ماشین حساب ساده که دو عدد صحیح و یک کاراکتر را میگیرد و اگر + بود مجموع ، اگر - تفاضل ، اگر * حاصل ضرب ، اگر / حاصل تقسیم و اگر % بود باقیمانده تقسیم را چاپ میکند . ( با استفاده از دستورالعمل switch ) کد: #include<iostream.h> #include<conio.h> int main() { int d,a; float s; char ch; cout<<"please enter two integer numbers and one operator:"; cin>>d>>a>>ch; switch(ch) { case '+': s=d+a; break; case '-': s=d-a; break; case '*': s=d*a; break; case '/': s=d/a; break; case '%': s=d%a; break; } cout<<"\n s="<<s; getch(); clrscr(); return 0 ; }
پاسخ : سورس های نوشته شده به زبان C و ++C برنامه ای که ماتریس مجاورت گراف را می سازد. توضیح: نخست طول آرایه تک بعدی را می دهیم. بعد سطر و ستون ماتریس را می دهیم. اعداد(0 یا 1) بالا مثلثی را وارد و بعد برنامه ماتریس مجاورت را می دهد. کد: #include <iostream.h> #include <conio.h> int main(){ int i,j,k,ar[10],arr[5][5],num,a,b,c; cout<<"please enter columns number for A matrix[]="; cin>>a; cout<<"please enter columns and rows number for B matrix[][]="; cin>>b; c=b; for(i=1;i<=a;i++) { cout<<"enter matA["<<i<<"]="; cin>>num; ar=num; } k=1; for(i=1;i<=b;i++) for(j=1;j<=c;j++) { if (i==j) arr[j]=0; else if(i<j) arr[j]=arr[j]=ar[k++]; } cout<<endl; for(i=1;i<=b;i++) cout<<"\t"<<"matB["<<i<<"]"; for(i=1;i<=b;i++){ cout<<endl<<"matB["<<i<<"]"; for(j=1;j<=c;j++) cout<<"\t"<<arr[j]; } getch(); return 0; }
پاسخ : سورس های نوشته شده به زبان C و ++C عددی از ورودی گرفته و با استفاده از یک حلقه while مجموع مربعات اعداد متوالی تا ان عدد را پیدا کند کد: #include<iostream.h> main() { int s=1,n,sum=0; cout<<"please enter a number:"; cin>>n; while(s<=n) { sum+=s*s; s++; } cout<<"sum="<<sum; return 0; }