1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

سورس های نوشته شده به زبان C و ++C

شروع موضوع توسط hector2141 ‏28/9/12 در انجمن C #C++

  1. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : سورس های نوشته شده به زبان 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;
    }
     
  2. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : سورس های نوشته شده به زبان 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();
    }
     
  3. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : سورس های نوشته شده به زبان 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())) ;
    }
     
  4. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : سورس های نوشته شده به زبان 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();
     
  5. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : سورس های نوشته شده به زبان 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();
    }
     
  6. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : سورس های نوشته شده به زبان 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;
    }
     
  7. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : سورس های نوشته شده به زبان 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;
    }
     
  8. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : سورس های نوشته شده به زبان 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 ;
    }
     
  9. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : سورس های نوشته شده به زبان 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;
    }
     
  10. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : سورس های نوشته شده به زبان 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;
    }