صفحه 4 از 7 اولاول ... 23456 ... آخرآخر
نمایش نتایج 121 تا 160 از 320

نام تاپیک: مجموعه برنامه های نوشته شده به زبان C و ++C

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    سلام دوستان منم یه ماشین حساب نوشتم که عبارات ریاضی رو میگیره بدون فاصله و اونا رو بر اساس اولویت عملگر محاسبه و در خروجی مینویسه : (فعلا فقط عملگرهای +و*و/و- و اعداد صحیح میخوام گسترشش بدم تا بتونه sin, cos, log رو هم محاسبه کنه اگه میشه راهنمایی کنید ) توان(^) هم اضافه شد ، پرانتز گذاری رو هم میفهمه :
    ورودی :
    10-9^2*2-81-10
    خروجی :
    -243
    برنامه :
    // stake solution.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"
    #include "iostream"
    #include "conio.h"
    using namespace std;

    struct node
    {
    char info;
    node *left;
    node *right;
    };

    node *getnode()
    {
    node* q;
    q= new struct node;
    return q;
    }

    void push(node * &top,char item)
    {
    node *p;
    p=getnode();
    p->info=item;
    p->left=top;
    top->right=p;
    top=p;
    top->right =NULL;
    }

    int power(int a1,int a2)
    {
    int x=a1;
    for(int i=1;i<a2;i++)
    a1=a1*x;
    return a1;
    }
    char pop(node * &top)
    {
    char x;
    if(top->left!=NULL)
    {
    node *p;
    p=getnode();
    x =top->info;
    p=top;
    top=top->left;
    delete(p);
    return x;
    }
    else
    return '#';
    }

    int _tmain(int argc, _TCHAR* argv[])
    {
    char n1ch[100];
    char n2ch[100];
    char n3ch[100];
    int n3[10];
    for(int u=0;u<10;u++)
    n3[u]=0;
    node *top;
    top=getnode();
    top->left=NULL;
    int i=0,k=0;
    int a1=1,a2=1;
    char ch;
    cout<<"\nplease enter equation : ";
    cin.getline(n1ch,98);
    while(n1ch[i]!=NULL)
    i++;
    int s=0;
    int t=-1;
    int r=-1;
    int y=0;
    int ss=0;
    bool zz=false;
    for(int g=0;g<=i;g++)
    {
    if(n1ch[g]=='(')
    ss++;
    if(n1ch[g]==')')
    ss--;
    if(ss<0)
    {
    zz=true;
    break;
    }
    }
    for(int q=0;q<i;q++)
    {
    if(int(n1ch[q])>=48 && int(n1ch[q])<=57)
    {
    t++;
    r++;
    if(n3[s]!=0)
    n3[s]=n3[s]*10+(int(n1ch[q])-48);
    else
    n3[s]=int(n1ch[q])-48;
    }
    else if(n1ch[q]=='(' || n1ch[q]==')')
    y++;
    else
    {
    if(s>1)
    r=r+s-1;
    n1ch[s+t-r+y]='p';
    t++;
    s++;
    r=0;
    }
    }
    if(s>1)
    r=r+s-1;
    int v=0;
    n1ch[s+t-r+y]='p';

    for(int g=0;g<i;g++)
    if(!(int(n1ch[g])>=48 && int(n1ch[g])<=57))
    {
    n3ch[v]=n1ch[g];
    v++;
    }
    while(true)
    {
    if(s==0)
    {
    cout<<"hade aghal 2 adad va 1 amalgar vared konid!";
    break;
    }
    else if(zz==true||ss!=0)
    {
    cout<<"prantez gozari dorost nist ";
    break;
    }
    else
    {
    for(int j=0;j<i;j++)
    {
    if(n3ch[j]=='(')
    push(top,n3ch[j]);
    else if(n3ch[j]=='p')
    {
    n2ch[k]=n3ch[j];
    k++;
    }
    else if(n3ch[j]=='+' || n3ch[j]=='-' || n3ch[j]=='/' || n3ch[j]=='*'|| n3ch[j]=='^')
    {
    while((n3ch[j]=='*' || n3ch[j]=='/') && (top->info=='*' || top->info=='/' || top->info=='^' ))
    {
    n2ch[k]=pop(top);
    k++;
    }
    while((n3ch[j]=='^') && (top->info=='^'))
    {
    n2ch[k]=pop(top);
    k++;
    }
    while((n3ch[j]=='+' || n3ch[j]=='-') && (top->info=='*' || top->info=='/' || top->info=='^' || top->info=='+' || top->info=='-'))
    {
    n2ch[k]=pop(top);
    k++;
    }
    push(top,n3ch[j]);
    }
    else if(n3ch[j]==')')
    {
    while(top->info!='(')
    {
    n2ch[k]=pop(top);
    k++;
    }
    pop(top);
    }
    }
    while(top->left!=NULL)
    {
    n2ch[k]=pop(top);
    k++;
    }
    //for(int f=0;f<k;f++)
    // cout<<n2ch[f];
    for(int d=0;d<k;d++)
    {
    if(n2ch[d]=='(')
    {
    for(int f=d;f<k-1;f++)
    n2ch[f]=n2ch[f+1];
    k--;
    }
    }
    cout<<"\n";
    //for(int f=0;f<k;f++)
    // cout<<n2ch[f];
    int a=0;
    int h=0;
    while(n2ch[k-1]!='n')
    {
    int z=0;
    int p=0;
    a=0;
    int n4[10];
    while(true)
    {
    if(n2ch[a]=='+' || n2ch[a]=='*' || n2ch[a]=='^' || n2ch[a]=='/' || n2ch[a]=='-')
    break;
    a++;
    }
    for(h=0;h<a;h++)
    {
    if(n2ch[h]=='p')
    {
    p=h;
    z++;
    }
    }
    a1=n3[z-2];
    a2=n3[z-1];
    switch(n2ch[a])
    {
    case '+':n3[z-2]=a1+a2;
    n2ch[p]='0';
    n2ch[a]='n';
    for(int d=z;d<=s;d++)
    n3[d-1]=n3[d];
    s--;
    break;
    case '-':n3[z-2]=a1-a2;
    n2ch[p]='0';
    n2ch[a]='n';
    for(int d=z;d<=s;d++)
    n3[d-1]=n3[d];
    s--;
    break;
    case '*':n3[z-2]=a1*a2;
    n2ch[p]='0';
    n2ch[a]='n';
    for(int d=z;d<=s;d++)
    n3[d-1]=n3[d];
    s--;
    break;
    case '/':n3[z-2]=a1/a2;
    n2ch[p]='0';
    n2ch[a]='n';
    for(int d=z;d<=s;d++)
    n3[d-1]=n3[d];
    s--;
    break;
    case '^':n3[z-2]=power(a1,a2);
    n2ch[p]='0';
    n2ch[a]='n';
    for(int d=z;d<=s;d++)
    n3[d-1]=n3[d];
    s--;
    break;
    }
    }
    }
    cout<<"\nAnswer is : ";
    cout<<n3[0];
    break;
    }
    getch();
    return 0;
    }

    آخرین ویرایش به وسیله Arcsinos : دوشنبه 06 دی 1389 در 22:46 عصر

  2. #2
    کاربر تازه وارد آواتار ali najafi
    تاریخ عضویت
    دی 1389
    محل زندگی
    قم
    پست
    68

    نقل قول: مجموعه برنامه های نوشته شده به زبان 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;
    }



  3. #3
    کاربر تازه وارد آواتار ali najafi
    تاریخ عضویت
    دی 1389
    محل زندگی
    قم
    پست
    68

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    برنامه ای که مفسر کامل بیسیک را پیاده سازی میکند
    کتاب آموزش برنامه نویسی به زبان سی،مهندس عین ا.. جعفر نژاد قمی
    #include <stdlib.h>
    #include <conio.h>
    #include <setjmp.h>
    #include <math.h>
    #include <ctype.h>
    #include <stdio.h>
    #include <string.h>

    #define NUM_LAB 100
    #define LAB_LEN 10
    #define FOR_NEST 25
    #define SUB_NEST 25
    #define PROG_SIZE 10000
    #define DELIMITER 1
    #define VARIABLE 2
    #define NUMBER 3
    #define COMMAND 4
    #define STRING 5
    #define QUOTE 6

    #define PRINT 1
    #define INPUT 2
    #define IF 3
    #define THEN 4
    #define FOR 5
    #define NEXT 6
    #define TO 7
    #define GOTO 8
    #define EOL 9
    #define FINISHED 10
    #define GOSUB 11
    #define RETURN 12
    #define END 13
    int load_program(char *p ,char *fname);
    char get_token();
    void assignment();
    int get_next_label(char *s);
    int iswhite(char c);
    int isdelim(char c);
    char look_up(char *s);
    int find_var(char *s);
    char *gpop();
    char *find_label(char *s);
    struct for_stack fpop() ;
    void print() , scan_labels() , find_eol(),exec_goto() ;
    void exec_if() , exec_for(), next() ,fpush(struct for_stack i) ,input() ;
    void gosub() , greturn() , gpush(char *s) , label_init() ;
    void putback() , serror(int) , get_exp(int *) , primitive(int *result) ;
    void level2(int *), level3(int *), level4(int *), level5(int *), level6(int *);
    void arith(char o , int *r , int *h) , unary(char o , int *r) ;

    char *prog ;
    jmp_buf e_buf ;
    int variable[26] = {0} ;
    struct commands {
    char commands[20] ;
    char tok ;
    } table[] = {
    "print", PRINT, "input", INPUT, "if",IF,
    "then", THEN, "goto", GOTO, "for", FOR ,
    "next", NEXT , "to", TO , "gosub", GOSUB ,
    "return", RETURN , "end", END , "", END } ;
    char token[80], token_type, tok ;
    struct label {
    char name[LAB_LEN] ;
    char *p ;
    } ;
    struct label label_table[NUM_LAB] ;

    struct for_stack {
    int var ;
    int target ;
    char * loc ;
    } fstack[FOR_NEST] ;
    char *gstack[SUB_NEST] ;
    int ftos, gtos ;

    int main(int argc, char *argv[])
    {
    char in[80] ;
    int answer ;
    char *p_buf , *t ;
    clrscr();
    if(argc != 2)
    {
    printf("\n usage : run < filename > ") ;
    getch() ;
    exit(1) ;
    }
    p_buf = (char *) malloc(PROG_SIZE) ;
    if(!p_buf)
    {
    printf("\n allocation failure ") ;
    getch() ;
    exit(1) ;
    }
    if(!load_program(p_buf, argv[1]))
    {
    printf("\n file not loaded ") ;
    getch() ;
    exit(1) ;
    }
    if(setjmp(e_buf))
    exit(1) ;
    prog = p_buf ;
    scan_labels() ;
    ftos = 0 ;
    gtos = 0 ;
    do {
    token_type = get_token() ;
    if(token_type == VARIABLE) {
    putback() ;
    assignment() ;
    }
    else
    switch(tok) {
    case PRINT :
    print() ; break ;
    case GOTO :
    exec_goto() ; break ;
    case IF :
    exec_if() ; break ;
    case FOR :
    exec_for() ; break ;
    case NEXT :
    next() ; break ;
    case INPUT :
    input() ; break ;
    case GOSUB :
    gosub() ; break ;
    case RETURN :
    greturn() ; break ;
    case END :
    exit(0) ;
    }
    } while (tok != FINISHED) ;
    free(p_buf) ;
    return 0;
    }
    //************
    int load_program(char *p , char *fname)
    {
    FILE *fp ;
    int i = 0 ;
    fp = fopen(fname, "rb") ;
    if(!fp)
    return 0 ;
    i = 0 ;
    do {
    *p = getc(fp) ;
    p++ ; i++ ;
    } while(!feof(fp) && i < PROG_SIZE) ;
    *(p - 2) = '\0' ;
    fclose(fp) ;
    return 1 ;
    }
    //****************
    void assignment()
    {
    int var , value ;
    get_token() ;
    if(!isalpha(*token)) {
    serror(4) ;
    return ;
    }
    var = toupper(*token) - 'A';
    get_token() ;
    if(*token != '=') {
    serror(3) ;
    return ;
    }
    get_exp(&value) ;
    variable[var]=value ;
    }
    //****************
    void print()
    {
    int answer , len=0 , spaces ;
    char last_delim ;
    do {
    get_token() ;
    if(tok == EOL || tok == FINISHED)
    break ;
    if(token_type == QUOTE) {
    printf(token) ;
    len += strlen(token) ;
    get_token() ;
    }
    else {
    putback() ;
    get_exp(&answer) ;
    get_token() ;
    len += printf("%d",answer) ;
    }
    last_delim=*token ;
    if(*token == ';') {
    spaces = 8 - (len % 8) ;
    len += spaces ;
    while(spaces) {
    printf(" ") ;
    spaces -- ;
    }
    }
    else if(*token == ',') ;//do nothing
    else if(tok != EOL && tok != FINISHED)
    serror(0) ;
    } while(*token == ';' || *token == ',') ;
    if(tok == EOL || tok == FINISHED) {
    if(last_delim != ';' && last_delim !=',')
    printf("\n") ;
    }
    else serror(0) ;
    }
    //*************************
    void scan_labels()
    {
    int addr ;
    char *temp ;
    label_init() ;
    temp = prog ;
    get_token() ;
    if(token_type == NUMBER) {
    strcpy(label_table[0].name, token) ;
    label_table[0].p = prog ;
    }
    find_eol() ;
    do {
    get_token() ;
    if(token_type == NUMBER) {
    addr = get_next_label(token) ;
    if(addr == -1 || addr == -2) {
    (addr == -1) ? serror(5) : serror(6) ;
    } //end of if
    strcpy(label_table[addr].name , token) ;
    label_table[addr].p = prog ;
    }//end of if
    if(tok !=EOL)
    find_eol() ;
    } while(tok != FINISHED) ;
    prog = temp ;
    }
    //******************
    void find_eol()
    {
    while(*prog != '\n' && *prog != '\0')
    ++prog ;
    if(*prog)
    prog ++ ;
    }
    //******************
    int get_next_label(char *s)
    {
    register int t ;
    for(t = 0 ; t < NUM_LAB ; t++) {
    if(label_table[t].name[0] == 0)
    return t ;
    if(!strcmp(label_table[t].name,s))
    return -2 ;
    } //end of for
    return -1 ;
    }
    //*********************
    char *find_label(char *s)
    {
    register int t ;
    for(t = 0 ; t < NUM_LAB ; t++)
    if(!strcmp(label_table[t].name, s))
    return label_table[t].p ;
    return '\0' ;
    }
    //******************
    void exec_goto()
    {
    char *loc ;
    get_token() ;
    loc = find_label(token) ;
    if(loc == '\0')
    serror(7) ;
    else prog = loc ;
    }
    //*******************
    void label_init()
    {
    register int t ;
    for(t = 0 ; t < NUM_LAB ; t++)
    label_table[t].name[0] = '\0' ;
    }
    //*********************
    void exec_if()
    {
    int x , y , cond ;
    char op ;
    get_exp(&x) ;
    get_token() ;
    if(!strchr("=<>", *token)) {
    serror(0) ;
    return ;
    }
    op = *token ;
    get_exp(&y) ;
    cond = 0 ;
    switch(op) {
    case '<' :
    if(x < y) cond=1 ;
    break ;
    case '>' :
    if(x > y) cond=1 ;
    break ;
    case '=' :
    if(x == y) cond=1 ;
    break ;
    }//end of switch
    if(cond) {
    get_token() ;
    if(tok != THEN) {
    serror(8) ;
    return ;
    }
    }//end of if
    else find_eol() ;
    }
    //********************
    void exec_for()
    {
    struct for_stack i ;
    int value ;
    get_token() ;
    if(!isalpha(*token)) {
    serror(4) ;
    return ;
    }
    i.var = toupper(*token) - 'A' ;
    get_token() ;
    if(*token != '=') {
    serror(3) ;
    return ;
    }
    get_exp(&value) ;
    variable[i.var] = value ;
    get_token() ;
    if(tok != TO) serror(9) ;
    get_exp(&i.target) ;
    if(value >= variable[i.var]) {
    i.loc = prog ;
    fpush(i) ;
    }
    else
    while(tok!=NEXT) get_token() ;
    }
    //***************************
    void next()
    {
    struct for_stack i ;
    i = fpop() ;
    variable[i.var]++ ;
    if(variable[i.var] > i.target) return ;
    fpush(i);
    prog = i.loc ;
    }
    //***********************
    void fpush(struct for_stack i)
    {
    if(ftos > FOR_NEST)
    serror(10) ;
    fstack[ftos] = i ;
    ftos++ ;
    }
    //*********************
    struct for_stack fpop()
    {
    ftos -- ;
    if(ftos < 0) serror(11);
    return(fstack[ftos]);
    }
    //***********************
    void input()
    {
    char str[80], var ;
    int i , ch , digit = 0 ;
    get_token() ;
    if(token_type == QUOTE) {
    printf(token) ;
    get_token() ;
    if(*token != ',') {
    serror(1) ;
    }
    get_token() ;
    }
    else printf("?") ;
    var = toupper(*token) - 'A' ;
    while(1) {
    ch = getche() ;
    if(ch <= 57 && ch >= 48) {
    ch = ch - 48 ;
    digit = (digit * 10) + ch ;
    }
    else if(ch == 13)
    break ;
    else {
    printf("\Redo from start ?\n") ;
    continue ;
    }
    }//end of while
    variable[var]=digit ;
    }
    //**************
    void gosub()
    {
    char *loc ;
    get_token() ;
    loc = find_label(token) ;
    if(loc == '\0')
    serror(7) ;
    else {
    gpush(prog) ;
    prog = loc ;
    }//end of else
    }
    //********************
    void greturn()
    {
    prog = gpop() ;
    }
    //**************
    void gpush(char *s)
    {
    gtos++ ;
    if(gtos == SUB_NEST) {
    serror(12) ;
    return ;
    }
    gstack[gtos] = s ;
    }
    //*******************
    char *gpop()
    {
    if(gtos == 0) {
    serror(13) ;
    return 0 ;
    } //end of return
    return(gstack[gtos --]) ;
    }
    //*****************
    void putback()
    {
    char *t ;
    t = token ;
    for(; *t ; t++)
    prog -- ;
    }
    //*****************
    void serror(int error)
    {
    static char *e[] = {
    "syntax error ",
    "un balanced parantheses",
    "no expressoin present" ,
    "equals sign expexted" ,
    "not a variable" ,
    "label table full" ,
    "dulicate label" ,
    "undifined label" ,
    "THEN expected" ,
    "TO expected" ,
    "too many nested FOR loops" ,
    "NEXT without FOR" ,
    "too many nested GOSUB",
    "RETURN without GOSUB" } ;
    printf("\n %s \n", e[error]) ;
    longjmp(e_buf , 1) ;
    }
    //*****************
    char get_token()
    {
    register char *temp ;
    token_type = 0 ;
    tok = 0 ;
    temp = token ;
    if(*prog == '\0') {
    *token = 0 ;
    tok = FINISHED ;
    return(token_type = DELIMITER) ;
    }//end of if
    while(iswhite(*prog))
    ++ prog ;
    if(*prog == '\r') {
    ++ prog ;
    ++ prog ;
    tok = EOL ;
    *token = '\r' ;
    token[1] = '\n' ;
    token[2] = 0 ;
    return(token_type = DELIMITER) ;
    }
    if(strchr("+-*^/%=;(),><" , *prog)) {
    *temp=*prog ;
    prog ++ ;
    temp ++ ;
    *temp = 0 ;
    return(token_type = DELIMITER) ;
    }
    if(*prog == '"') {
    prog ++ ;
    while(*prog != '"' && *prog != '\r')
    *temp ++ = *prog ++ ;
    if(*prog == '\r')
    serror(1) ;
    prog ++ ;
    *temp = 0 ;
    return(token_type = QUOTE) ;
    } //end of if
    if(isdigit(*prog)) {
    while(!isdelim(*prog))
    *temp ++= *prog ++ ;
    *temp='\0' ;
    return(token_type=NUMBER) ;
    }
    if(isalpha(*prog)) {
    while(!isdelim(*prog))
    *temp ++= *prog ++ ;
    token_type = STRING ;
    }
    *temp='\0' ;
    if(token_type == STRING) {
    tok = look_up(token) ;
    if(!tok)
    token_type = VARIABLE ;
    else
    token_type = COMMAND ;
    }
    return token_type ;
    }
    //******************
    char look_up(char *s)
    {
    register int i , j ;
    char *p ;
    p = s ;
    while(*p) {
    *p = tolower(*p) ;
    p ++ ;
    }
    for( i= 0 ; *table[i].commands ; i++)
    if(!strcmp(table[i].commands , s))
    return table[i].tok ;
    return 0 ;
    }
    //************
    int isdelim(char c)
    {
    if(strchr(" ;,+-<>/*%^=()",c) || c == 9 ||
    c=='\r' || c==0)
    return 1 ;
    return 0 ;
    }
    //**************
    int iswhite(char c)
    {
    if(c == ' ' || c == '\t')
    return 1 ;
    else
    return 0 ;
    }
    //***********************
    void get_exp(int *result)
    {
    get_token() ;
    if(!*token) {
    serror(2) ;
    return ;
    }
    level2(result) ;
    putback() ;
    }
    //**********************
    void level2(int *result)
    {
    register char op ;
    int hold ;
    level3(result) ;
    while((op = *token) == '+' || op == '-') {
    get_token() ;
    level3(&hold) ;
    arith(op , result , &hold) ;
    }//end of while
    }
    //***************************
    void level3(int * result)
    {
    register char op ;
    int hold ;
    level4(result) ;
    while((op = *token) == '*' || op == '/' || op == '%')
    {
    get_token() ;
    level4(&hold) ;
    arith(op , result , &hold) ;
    } //end of while
    }
    //******************
    void level4(int * result)
    {
    int hold ;
    level5(result) ;
    if(*token == '^') {
    get_token() ;
    level4(&hold) ;
    arith('^' , result , &hold) ;
    }
    }
    //********************
    void level5(int *result)
    {
    register char op ;
    op = 0 ;
    if((token_type == DELIMITER) && *token == '+' || *token == '-')
    {
    op = *token ;
    get_token() ;
    }
    level6(result) ;
    if(op)
    unary(op , result) ;
    }
    //*******************************
    void level6(int *result)
    {
    if((*token == '(') &&(token_type == DELIMITER))
    {
    get_token() ;
    level2(result) ;
    if(*token != ')')
    serror(1) ;
    get_token() ;
    }
    else
    primitive(result) ;
    }
    //***********************
    void primitive(int *result)
    {
    switch(token_type) {
    case VARIABLE :
    *result = find_var(token) ;
    get_token() ;
    return ;
    case NUMBER :
    *result = atoi(token) ;
    get_token() ;
    return ;
    default :
    serror(0) ;
    }//end of switch
    }
    //*********************
    void arith(char o , int *r , int *h)
    {
    register int t , ex ;
    switch(o) {
    case '-' :
    *r = *r - *h ;
    break ;
    case '+' :
    *r=*r + *h ;
    break ;
    case '*' :
    *r=*r * *h ;
    break ;
    case '/' :
    *r=(*r) / (*h) ;
    break ;
    case '%' :
    t = (*r) / (*h) ;
    *r = *r - (t * (*h)) ;
    break ;
    case '^' :
    ex = *r ;
    if(*h == 0) {
    *r = 1 ;
    break ;
    }
    for(t = *h - 1 ; t > 0 ; -- t)
    *r=(*r) * ex ;
    break ;
    }//end of switch
    }
    //*************************
    void unary(char o , int *r)
    {
    if(o == '-')
    *r = -(*r) ;
    }
    //***************
    int find_var(char *s)
    {
    if(!isalpha(*s)) {
    serror(4) ;
    return 0 ;
    }
    return variable[toupper(*token)-'A'] ;
    }
    //**********************














  4. #4
    کاربر تازه وارد آواتار ali najafi
    تاریخ عضویت
    دی 1389
    محل زندگی
    قم
    پست
    68

    نقل قول: مجموعه برنامه های نوشته شده به زبان 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;
    }

  5. #5
    کاربر دائمی آواتار V0RTEX
    تاریخ عضویت
    آذر 1389
    محل زندگی
    kernel
    پست
    106

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    اگه x-o نیست این هم x-o که با کامپیوتر هم میشه بازی کنه کامپالر هم VS 2010 می باشد

    #include <iostream>
    #include <time.h>
    #include <stdlib.h>
    #include <string>
    #include <vector>
    using namespace std;

    void DisplayBoard(char BoardArray[]);
    int CheckGameOver(char BoardArray[]);
    void ResetBoard(char* BoardArray[]);
    int could_win(char BoardArray[],char Player);
    int AI_Move(char BoardArray[],char AI,char player);//A.I
    int main()
    {
    int Player1Move = 0;
    int Player2Move = 0;
    char BoardArray[9] = {' ',' ',' ',' ',' ',' ',' ',' ',' '};
    char BoardNumbers[9] = {'0','1','2','3','4','5','6','7','8'};
    system("cls");
    cout << "if you want AI move instead of you press 9"<<endl;
    system("pause");
    while(true)
    {
    system("cls");
    DisplayBoard(BoardNumbers);
    DisplayBoard(BoardArray);

    cout << "X:";
    cin >> Player1Move;
    if(Player1Move ==9)
    Player1Move =AI_Move(BoardArray,'X','O');

    if((Player1Move >= 0 && Player1Move <=8) && BoardArray[Player1Move] == ' ')
    {
    BoardArray[Player1Move] = 'X';
    }
    else
    {
    cout << "Error in move...Press enter\n";
    system("PAUSE > NULL");
    continue;
    }

    system("cls");
    DisplayBoard(BoardNumbers);
    DisplayBoard(BoardArray);

    switch(CheckGameOver(BoardArray))
    {
    case 0:
    break;
    case 1:
    cout << "TIE! Press enter to play again!";
    system("PAUSE > NULL");
    for(int n = 0; n <= 8; n++)
    {
    BoardArray[n] = ' ';
    }
    continue;
    case 2:
    cout << "X wins! Press enter to play again!";
    system("PAUSE > NULL");
    for(int n = 0; n <= 8; n++)
    {
    BoardArray[n] = ' ';
    }
    continue;
    case 3:
    cout << "O wins! Press enter to play again!";
    system("PAUSE > NULL");
    for(int n = 0; n <= 8; n++)
    {
    BoardArray[n] = ' ';
    }
    continue;
    }

    cout << "O:";
    Player2Move=AI_Move(BoardArray,'O','X');
    // cin >> Player2Move;

    if((Player2Move >= 0 && Player2Move <=8) && BoardArray[Player2Move] == ' ')
    {
    BoardArray[Player2Move] = 'O';
    }
    else
    {
    cout << "Error in move...Press enter\n";
    system("PAUSE > NULL");
    continue;
    }

    DisplayBoard(BoardArray);

    switch(CheckGameOver(BoardArray))
    {
    case 0:
    break;
    case 1:
    cout << "TIE! Press enter to play again!";
    system("PAUSE > NULL");
    for(int n = 0; n <= 8; n++)
    {
    BoardArray[n] = ' ';
    }
    continue;
    case 2:
    cout << "X wins! Press enter to play again!";
    system("PAUSE > NULL");
    for(int n = 0; n <= 8; n++)
    {
    BoardArray[n] = ' ';
    }
    continue;
    case 3:
    cout << "O wins! Press enter to play again!";
    system("PAUSE > NULL");
    for(int n = 0; n <= 8; n++)
    {
    BoardArray[n] = ' ';
    }
    continue;
    }

    }
    return 0;
    }
    void DisplayBoard(char BoardArray[])
    {
    cout << " | | \n";
    cout << " " << BoardArray[0] << " | " << BoardArray[1] << " | " << BoardArray[2] << "\n";
    cout << "____|____|____\n";
    cout << " | | \n";
    cout << " " << BoardArray[3] << " | " << BoardArray[4] << " | " << BoardArray[5] << "\n";
    cout << "____|____|____\n";
    cout << " | | \n";
    cout << " " << BoardArray[6] << " | " << BoardArray[7] << " | " << BoardArray[8] << "\n";
    cout << " | | \n\n";
    }
    int CheckGameOver(char BoardArray[])
    {
    bool Tie = false;
    bool Player1Win = false;
    bool Player2Win = false;
    int ErrorCode = 0;

    for(int n = 0; n <= 8; n++)
    {
    if(BoardArray[n] == ' ')
    {
    Tie = false;
    break;
    }
    else
    {
    Tie = true;
    }
    }

    if(BoardArray[0] == 'X' && BoardArray[3] == 'X' && BoardArray[6] == 'X')
    {
    Player1Win = true;
    }
    if(BoardArray[0] == 'X' && BoardArray[1] == 'X' && BoardArray[2] == 'X')
    {
    Player1Win = true;
    }
    if(BoardArray[2] == 'X' && BoardArray[5] == 'X' && BoardArray[8] == 'X')
    {
    Player1Win = true;
    }
    if(BoardArray[6] == 'X' && BoardArray[7] == 'X' && BoardArray[8] == 'X')
    {
    Player1Win = true;
    }
    if(BoardArray[0] == 'X' && BoardArray[4] == 'X' && BoardArray[8] == 'X')
    {
    Player1Win = true;
    }
    if(BoardArray[2] == 'X' && BoardArray[4] == 'X' && BoardArray[6] == 'X')
    {
    Player1Win = true;
    }
    if(BoardArray[1] == 'X' && BoardArray[4] == 'X' && BoardArray[7] == 'X')
    {
    Player1Win = true;
    }
    if(BoardArray[3] == 'X' && BoardArray[4] == 'X' && BoardArray[5] == 'X')
    {
    Player1Win = true;
    }


    if(BoardArray[0] == 'O' && BoardArray[3] == 'O' && BoardArray[6] == 'O')
    {
    Player2Win = true;
    }
    if(BoardArray[0] == 'O' && BoardArray[1] == 'O' && BoardArray[2] == 'O')
    {
    Player2Win = true;
    }
    if(BoardArray[2] == 'O' && BoardArray[5] == 'O' && BoardArray[8] == 'O')
    {
    Player2Win = true;
    }
    if(BoardArray[6] == 'O' && BoardArray[7] == 'O' && BoardArray[8] == 'O')
    {
    Player2Win = true;
    }
    if(BoardArray[0] == 'O' && BoardArray[4] == 'O' && BoardArray[8] == 'O')
    {
    Player2Win = true;
    }
    if(BoardArray[2] == 'O' && BoardArray[4] == 'O' && BoardArray[6] == 'O')
    {
    Player2Win = true;
    }
    if(BoardArray[1] == 'O' && BoardArray[4] == 'O' && BoardArray[7] == 'O')
    {
    Player2Win = true;
    }
    if(BoardArray[3] == 'O' && BoardArray[4] == 'O' && BoardArray[5] == 'O')
    {
    Player2Win = true;
    }

    if(Player1Win == true)
    {
    ErrorCode = 2;
    }
    else
    {
    if(Player2Win == true)
    {
    ErrorCode = 3;
    }
    else
    {
    if(Tie == true)
    {
    ErrorCode = 1;
    }
    else
    {
    ErrorCode = 0;
    }
    }
    }
    return ErrorCode;
    }
    //=========================================Artificia l==intelligence=================================== =====
    int could_win(char BoardArray[],char Player,int StartPoint)
    {
    int p;
    if(Player=='X')
    p=2;
    else if(Player=='O')
    p=3;
    char Board[9];
    for(int i=0;i<9;i++)
    Board[i]=BoardArray[i];

    for(int i=StartPoint;i<9;i++)
    {
    for(int i=0;i<9;i++)
    Board[i]=BoardArray[i];
    if(Board[i]==' ')
    {
    Board[i]=Player;
    if(CheckGameOver(Board)==p)
    return i;

    }
    }

    return 10;
    }
    int AI_Move(char BoardArray[],char AI,char player)
    {
    char Board[9];
    for(int i=0;i<9;i++)
    Board[i]=BoardArray[i];
    //-------------
    srand(time(0));
    //=============
    int Move=abs((rand() % 9)-1);
    Check:
    if(Move==0 || Move==2 || Move==6 || Move==8)
    goto Passed;
    while(Board[Move]==' ')
    if(Move!=0 || Move!=2 || Move!=6 || Move!=8)
    {
    Move=abs((rand() % 9)-1);
    goto Check;
    }
    Passed:
    // AI_score
    int counter=0;
    bool BAQQO=false;
    for(int i=0;i<9;i++)
    if(BoardArray[i]==' ')
    counter++;
    if(BoardArray[4]==' ')
    BAQQO=true;
    else if(counter==8)
    return Move;
    if(counter==8 && BAQQO)
    return 4;
    //------------------------------------------Manual-----------------------------------
    if((BoardArray[0]==player && BoardArray[8]==player && counter==6) || (BoardArray[2]==player && BoardArray[6]==player) && counter==6)
    if(BoardArray[1]==' ')
    return 1;
    else if(BoardArray[7]==' ')
    return 7;
    //========================
    if(BoardArray[4]==player && BoardArray[0]==player && BoardArray[8]==AI && counter==6)
    return 6;
    else if(BoardArray[4]==player && BoardArray[8]==player && BoardArray[0]==AI && counter==6)
    return 2;
    else if(BoardArray[4]==player && BoardArray[2]==player && BoardArray[6]==AI && counter==6)
    return 8;
    else if(BoardArray[4]==player && BoardArray[6]==player && BoardArray[2]==AI && counter==6)
    return 0;
    //------------------------------------------------------------------------------------

    for(int i=0;i<9;i++)
    Board[i]=BoardArray[i];

    int score=-10;
    int ai_p=could_win(BoardArray,AI,0);
    int player_p=could_win(BoardArray,player,0);
    if(ai_p < 9)
    return ai_p;
    else if(player_p < 9)
    return player_p;
    else
    {
    for(int i=0;i<9;i++)
    {
    for(int j=0;j<9;j++)
    Board[j]=BoardArray[j];
    if(Board[i]==' ')
    {
    Board[i]=AI;
    ai_p=could_win(Board,AI,0);
    if(ai_p <9)
    if(score <2 )
    {
    score=2;///========---MAX-SCORE---==========
    Move =i;
    }
    if(score >10)
    score=INT_MAX;
    ai_p=could_win(Board,AI,ai_p+1);
    if(ai_p <9 && score < 5)//------Check-if-it-is-better-move-------
    {
    score=4;
    Move=i;
    }
    Board[i]=player;
    player_p =could_win(Board,player,0);
    if(player_p <9)
    if(score <1)//------Check-if-it-is-better-move-------
    {
    score=1;
    Move =i;
    }
    player_p=could_win(Board,player,player_p+1);
    if(player_p <9 && score <INT_MAX)//------Check-if-it-is-better-move-------
    {
    score+=10;
    score=3;
    if(score <10)
    Move=i;
    }
    }
    }
    }
    return Move;
    }


  6. #6
    کاربر دائمی آواتار V0RTEX
    تاریخ عضویت
    آذر 1389
    محل زندگی
    kernel
    پست
    106

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    نقل قول نوشته شده توسط mahsa1370 مشاهده تاپیک
    برنامه ای که یه رشته ای را به عنوان ورودی بگیرد تعداد تکرار هر یک از کاراکترها را چاپ کند در زبان ++c
    البته این برنامه فقط تعداد کارکترهای حروف english رو حساب می کنه علامت ها رو نمی شماره اگه خواستید اوون ها هم بشماره باید یک خورده تغییرش بدین


    /*
    by V0RTEX :D
    */
    #include <iostream>
    #include <vector>
    using namespace std;
    int main()
    {
    vector<int> char_count(26);
    char s=' ';
    while(s!='\r' && s!='\n' )
    {
    s=cin.get();
    if(s>='A' && s <='z')
    if(s<='Z')
    char_count[(s+32)-97]++;
    else if(s>='a')
    char_count[s-97]++;
    }
    for(int i=0;i<26;i++)
    cout << char(i+65) << " = " << char_count[i]<<"\t";
    cout <<endl;
    system("pause");
    }

  7. #7
    کاربر دائمی آواتار voiceoffox
    تاریخ عضویت
    مهر 1389
    محل زندگی
    مشهد
    پست
    122

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    سلام و درود دوباره بر شما عزیزان پس از یک غیبت طولانی !!!

    این دیگه پروژه نیس ...

    بلکه یه PDF هس که توش 120 تا پروژه ساده رو توضیح داده و گفته ... و صد البت این پروژه ها دانشجویی نیستن ... در من پروژه ها برخی از نکات و دستورات ساده هم توضیح داده شده ...

    تا بعد خداحافظ ...
    فایل های ضمیمه فایل های ضمیمه

  8. #8

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    یه دفتر چه تلفن با قابلیت ( اضافه کردن ، حذف ، مرتب سازی ، جست و جو ، نمایش ، ذخیره سازی در فایل ) :
    // Count.cpp : Defines the entry point for the console application.
    //

    #include "stdafx.h"
    #include "iostream"
    #include "fstream"
    #include "string.h"
    #include "conio.h"
    using namespace std;

    struct PhoneBookObject
    {
    char FirstName[20];
    char LastName[20];
    char PhoneNumber[20];
    };

    void Add(PhoneBookObject PhoneBook[],int &NumObject,bool &Change)
    {
    cout<<"\nFirst Name : ";
    cin.getline(PhoneBook[NumObject].FirstName,19);

    cout<<"\nLast Name : ";
    cin.getline(PhoneBook[NumObject].LastName,19);

    cout<<"\nPhon Number : ";
    cin.getline(PhoneBook[NumObject].PhoneNumber,19);

    NumObject++;

    Change=1;
    }

    void Sort(PhoneBookObject PhoneBook[],int NumObject,bool &Change)
    {
    PhoneBookObject Temp;

    for(int i=0;i<NumObject;i++)
    for(int j=0;j<NumObject-i-1;j++)
    if(strncmp(PhoneBook[j].LastName ,PhoneBook[j+1].LastName,19)>0)
    {
    Temp=PhoneBook[j];
    PhoneBook[j]=PhoneBook[j+1];
    PhoneBook[j+1]=Temp;
    }

    Change=1;
    }

    void Show(PhoneBookObject PhoneBook[],int NumObject)
    {
    for(int i=0;i<NumObject;i++)
    cout<<"\n"<<i<<") "<<PhoneBook[i].FirstName<<" "<<PhoneBook[i].LastName<<"\tTel: "<<PhoneBook[i].PhoneNumber;
    }

    int Search(PhoneBookObject PhoneBook[],int NumObject)
    {
    char Input[20];
    int Index=-1;
    cout<<"\nLast Name : ";
    cin.getline(Input,19);

    for(int i=0;i<NumObject;i++)
    if(strstr(PhoneBook[i].LastName,Input))
    {
    Index=i;
    break;
    }

    if(Index!=-1)
    {
    cout<<"\nFirst Name: "<<PhoneBook[Index].FirstName<<"\tLast Name: "<<PhoneBook[Index].LastName<<"\tTel: "<<PhoneBook[Index].PhoneNumber;
    return Index;
    }
    else
    {
    cout<<"\n\""<<Input<<"\" Not Find!";
    return Index;
    }
    }
    void Save(PhoneBookObject PhoneBook[],int NumObject,bool &Change)
    {
    ofstream ofile;
    ofile.open("c:\\PhoneBook.txt");

    if(Change==1)
    {
    ofile<<NumObject;
    for(int i=0;i<NumObject;i++)
    ofile<<"\n"<<PhoneBook[i].FirstName<<"\n"<<PhoneBook[i].LastName<<"\n"<<PhoneBook[i].PhoneNumber;

    cout<<"\nSaved!";

    Change=0;
    }
    else
    cout<<"\nPhone Number Save befor!";
    }


    void Delete(PhoneBookObject PhoneBook[],int &NumObject,bool &Change)
    {
    int Find;
    char Sure;
    Find=Search(PhoneBook,NumObject);

    if(Find!=-1)
    {
    cout<<"\nAre You Sure to Delete this Number(yes/no)?";
    Sure=getch();
    switch(Sure)
    {
    case 'y':
    {
    for(int i=Find;i<NumObject-1;i++)
    PhoneBook[i]=PhoneBook[i+1];

    NumObject--;
    Change=1;

    break;
    }

    case 'n':
    break;

    default : cout<<"\nWrong Character!";
    }
    }

    }

    void Exit(char &Input,PhoneBookObject PhoneBook[],int NumObject,bool &Change)
    {
    char Sure;
    if(Change==1)
    {
    cout<<"\nDo you want to seva the phone Number before Exit on Program(yes/no)?";
    Sure=getch();
    switch(Sure)
    {
    case 'y':
    {
    Save(PhoneBook,NumObject,Change);
    break;
    }
    case 'n':
    break;
    default : cout<<"\nWrong Character!";
    }
    }

    cout<<"\nAre you sure to exit on program(yes/no)?";
    Sure=getch();
    switch(Sure)
    {
    case 'y':
    break;

    case 'n':
    Input='0';
    break;
    default : cout<<"\nWrong Character!";
    }
    }


    void main()
    {
    PhoneBookObject PhoneBook[20];
    int NumObject=0;
    bool Change=1;
    char Input=0;

    ifstream ifile;
    ifile.open("c:\\PhoneBook.txt");
    ifile>>NumObject;

    for(int i=0;i<NumObject;i++)
    {
    ifile>>PhoneBook[i].FirstName;
    ifile>>PhoneBook[i].LastName;
    ifile>>PhoneBook[i].PhoneNumber;
    }

    cout<<" *---* Welcome to your Phone Book *---*";

    while(Input!='7')
    {
    cout<<"\n1)Add\n2)Delete\n3)Sort\n4)Show\n5)Search \n6)Save\n7)Exit";

    cout<<"\nPlease enter number of your act : ";

    Input=getch();

    switch(Input)
    {
    case '1':Add(PhoneBook,NumObject,Change);
    break;

    case '2':Delete(PhoneBook,NumObject,Change);
    break;

    case '3':Sort(PhoneBook,NumObject,Change);
    break;

    case '4':Show(PhoneBook,NumObject);
    break;

    case '5':Search(PhoneBook,NumObject);
    break;

    case '6':Save(PhoneBook,NumObject,Change);
    break;

    case '7':Exit(Input,PhoneBook,NumObject,Change);
    break;

    default:cout<<"\n *---* The input character is wrong!*---*\n\n";
    }
    }
    }

  9. #9
    کاربر دائمی آواتار voiceoffox
    تاریخ عضویت
    مهر 1389
    محل زندگی
    مشهد
    پست
    122

    Cool نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    سلام
    اینم بازی "سنگ - کاغذ - قیچی" هست ! اما با بازی سنگ و کاغذ و قیچی که چند صفحه قبل یکی نوشته بود فرق هایی داره!

    این بازیتک نفره اس و فقط شمایین با کامپیوتر ! یه جورایی هوشمنده !

    #include<iostream.h>
    #include<conio.h>
    #include<stdlib.h>
    int mantegh(int,int);
    main()
    {
    randomize();
    int pcp=0,hup=0,mon=0,sel=0,pcsel=0,ans=0;
    error1:
    cout<<"Choose your round mode by pressing the number of mode wich you want :"<<"\n";
    cout<<"(This will be the number of rounds wich you play)"<<"\n";
    cout<<"0. <1>Round"<<"\n"<<"1. <3>Rounds"<<"\n"<<"2. <5>Rounds"<<"\n";
    cout<<"3. <10>Rounds"<<"\n"<<"4. <15>Rounds"<<"\n"<<"5. <20>Rounds"<<"\n";
    cout<<"6. <25>Rounds"<<"\n"<<"7. <50>Rounds"<<"\n"<<"8. <75>Rounds"<<"\n";
    cout<<"9. <100>Rounds"<<"\n";
    cout<<"Now ! insert the numbr of your mode :"<<"\n";
    mon=getche();
    if(mon=='0')
    mon=1;
    else if(mon=='1')
    mon=3;
    else if(mon=='2')
    mon=5;
    else if(mon=='3')
    mon=10;
    else if(mon=='4')
    mon=15;
    else if(mon=='5')
    mon=20;
    else if(mon=='6')
    mon=25;
    else if(mon=='7')
    mon=50;
    else if(mon=='8')
    mon=75;
    else if(mon=='9')
    mon=100;
    else
    {
    clrscr();
    cout<<"Just press the number of mode , nothing else ! OK ?"<<"\n";
    goto error1;
    }
    cout<<"\n"<<"Ok !"<<" Remmember that you must reach to htis point !"<<"\n";
    cout<<"press any key to start the game ..."<<"\n";
    getch();
    clrscr();
    for(int i=1;i<=mon;i++)
    {
    error2:
    cout<<"Press the number of the thing that you wantb to use :"<<"\n";
    cout<<"1. Sang"<<"\n"<<"2. Kaghaz"<<"\n"<<"3. Gheychi"<<"\n";
    sel=getch();
    if(sel=='1')
    {
    clrscr();
    cout<<"******************************"<<"\n";
    cout<<"Your selection : <SANG>"<<"\n";
    }
    else if(sel=='2')
    {
    clrscr();
    cout<<"******************************"<<"\n";
    cout<<"Your selection : <KAGHAZ>"<<"\n";
    }
    else if(sel=='3')
    {
    clrscr();
    cout<<"******************************"<<"\n";
    cout<<"Your selection : <GHEYCHI>"<<"\n";
    }
    else
    {
    clrscr();
    cout<<"You are just aloud to enter numbers 1 or 2 or 3 ! OK ?"<<"\n";
    goto error2;
    }
    pcsel=((rand()%3)+1);
    if(pcsel==1)
    cout<<"Computer selection : <GHEYCHI>"<<"\n";
    else if(pcsel==2)
    cout<<"Computer selection : <SANG>"<<"\n";
    else
    cout<<"Computer selection : <KAGHAZ>"<<"\n";
    ans=mantegh(pcsel,sel);
    if(ans==1)
    {
    cout<<"====="<<"\n"<<"No added point !"<<"\n";
    cout<<"Computer points : "<<pcp<<"\n"<<"Human points : "<<hup<<"\n";
    }
    else if(ans==2)
    {
    cout<<"====="<<"\n"<<"Player gained the point !"<<"\n";
    ++hup;
    cout<<"Computer points : "<<pcp<<"\n"<<"Human Points : "<<hup<<"\n";
    }
    else if(ans==3)
    {
    cout<<"====="<<"\n"<<"Computer gained the point !"<<"\n";
    ++pcp;
    cout<<"Computer points : "<<pcp<<"\n"<<"Human Points : "<<hup<<"\n";
    }
    else
    {
    clrscr();
    goto error2;
    }
    cout<<"******************************"<<"\n";
    }
    if(pcp==hup)
    {
    clrscr();
    cout<<"##########################################" <<"\n";
    cout<<"# There wasn't any winner in this game ! #"<<"\n";
    cout<<"##########################################" <<"\n";
    cout<<" *Computer points : "<<pcp<<"\n"<<" *Player points : "<<hup<<"\n";
    }
    else if(pcp>hup)
    {
    clrscr();
    cout<<"##########################################" <<"\n";
    cout<<"# Computer won this game ! #"<<"\n";
    cout<<"##########################################" <<"\n";
    cout<<" *Computer points : "<<pcp<<"\n"<<" *Player points : "<<hup<<"\n";
    }
    else if(hup>pcp)
    {
    clrscr();
    cout<<"##########################################" <<"\n";
    cout<<"# Player won this game ! #"<<"\n";
    cout<<"##########################################" <<"\n";
    cout<<" *Computer points : "<<pcp<<"\n"<<" *Player points : "<<hup<<"\n";
    }
    else
    getch();
    }
    int mantegh(int com,int man)
    {
    if((com==2 && man=='1')||(com==3 && man=='2')||(com==1 && man=='3'))
    return 1;
    //No one didn't take the point !
    else if((com==1 && man=='1')||(com==2 && man=='2')||(com==3 && man=='3'))
    return 2;
    //Human took the point !
    else if((com==1 && man=='2')||(com==2 && man=='3')||(com==3 && man=='1'))
    return 3;
    //Computer took the point !
    else
    return 0;
    }


    کامپایل شده تحت Turbo C++‎ 4.5
    آخرین ویرایش به وسیله voiceoffox : جمعه 24 دی 1389 در 12:07 عصر دلیل: یه نقص فنی کوچولو !

  10. #10
    کاربر دائمی آواتار voiceoffox
    تاریخ عضویت
    مهر 1389
    محل زندگی
    مشهد
    پست
    122

    نقل قول: مجموعه برنامه های نوشته شده به زبان 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[u]<<"}"<<"\n";
    cout<<"******************************************* *******"<<"\n";
    getch();
    exit(1);
    }
    cout<<pdiv[u]<<" , ";
    }
    }
    //================================================== ============================
    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;
    }
    آخرین ویرایش به وسیله voiceoffox : سه شنبه 28 دی 1389 در 20:34 عصر دلیل: نقص محاسباتی در برنامه ...

  11. #11
    کاربر دائمی آواتار voiceoffox
    تاریخ عضویت
    مهر 1389
    محل زندگی
    مشهد
    پست
    122

    Lightbulb نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    حدس گلدباخ

    این برنامه برنامه خوب و جالبیه ... این برنامه درستی حدس گلدباخ رو درباره عددی که شما بهش میدین نشون میده ...
    اما اگه کسی نمیدونه حدس گلدباخ چیه ...

    ==========
    حدس گلدباخ :
    هر عدد زوج بزرگتر از 4 رو میتوان به صورت مجموع 2 عدد اول (2 عدد تکراری و یا غیر تکرارای) نوشت .
    هر عدد فرد بزرگتر از 5 را میتوان به صورت مجموع 3 عدد اول (3 عدد تکراری و با غیر تکراری) نوشت .
    ==========

    حالا برنامه چی کار میکنه ...
    این برنامه یک عدد بزرگتر از 5 از شما میگیره و بعد اون عدد شما رو اگر فرد باشه بصورت حاصلجمع 3 عدد اول ، و اگر زوج باشه به صورت حاصلجمع 2 عدد اول می نویسه و به شما میگه ... (به توضیحات بالا توجه کنن ! )

    #include<iostream.h>
    #include<conio.h>
    #include<stdlib.h>
    main()
    {
    int co=0,w=0,q=0,pn[999],a=0,num=0,e=0;
    error:
    cout<<"Please insert a number (Please attention that it must be bigger than 5) : "<<"\n";
    cin>>num;
    if(num<=5)
    {
    clrscr();
    cout<<"The number you enter must be 6 or bigger to continue ! OK ?"<<"\n";
    num=0;
    goto error;
    }
    for(long int i=2;i<=num;i++)
    {
    for(long int j=1;j<=i;j++)
    {
    if((i%j)==0)
    co++;
    }
    if(co==2)
    {
    pn[a]=i;
    co=0;
    a++;
    }
    else
    co=0;
    }
    if((num%2)==0)
    {
    for(int u=0;u<=a;u++)
    {
    for(int o=0;o<=u;o++)
    {
    w=pn[u];
    q=pn[o];
    if((w+q)==num)
    {
    cout<<"********************"<<"\n"<<w<<" + "<<q<<" = "<<num<<"\n";
    getch();
    exit(1);
    }
    }
    }
    }
    else
    {
    for(int u=0;u<=a;u++)
    {
    for(int o=0;o<=u;o++)
    {
    for(int p=0;p<=o;p++)
    {
    w=pn[u];
    q=pn[o];
    e=pn[p];
    if((w+q+e)==num)
    {
    cout<<"********************"<<"\n"<<w<<" + "<<q<<" + "<<e<<" = "<<num<<"\n";
    getch();
    exit(1);
    }
    }
    }
    }
    }
    }




    در ضمن یادتون نره که این برنامه یکم سنگینه و سعی کنن عدد های خیلی گنده بهش ندن ...

    کامپایل رفته تحت Turbo C++‎ 4.5 !
    آخرین ویرایش به وسیله voiceoffox : سه شنبه 28 دی 1389 در 17:14 عصر دلیل: افزایش توانایی های برنامه ...

  12. #12
    کاربر دائمی آواتار ghasemweb
    تاریخ عضویت
    تیر 1388
    محل زندگی
    تهران
    پست
    608

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    دفترچه تلفن با روش فايلينگ همراه امكاناتي چون درج ويرايش حذف جستجو ليست كردن و ...
    فایل های ضمیمه فایل های ضمیمه

  13. #13
    کاربر دائمی آواتار هم دانشگاهی
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    بیرجند
    پست
    326

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    سلام دوستان !

    برنامه غلط یاب توسط درخت trie :


    برنامه در ابتدا یک فایل source داره و بعد به کمک این source اشکالات فایل statement را مشخص میکند !

    try it NOW
    فایل های ضمیمه فایل های ضمیمه

  14. #14

    نقل قول: مجموعه برنامه های نوشته شده به زبان 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[i]<<endl;
    getch();
    }






  15. #15

    نقل قول: مجموعه برنامه های نوشته شده به زبان 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[i]=='(')
    s.push('(');
    if(str[i]==')')
    s.pop();}
    if(s.empty())
    cout<<"True \n";
    else
    cout<<"False \n";
    getch();
    }






  16. #16
    کاربر تازه وارد آواتار aznaee
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    دیار اشترانکوه
    سن
    36
    پست
    58

    نقل قول: مجموعه برنامه های نوشته شده به زبان 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[i]=x;
    else
    v[i]=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[i]/10*20+(v[i]%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[i]/10)*20+(v[i]%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();
    }

  17. #17
    کاربر جدید
    تاریخ عضویت
    دی 1389
    محل زندگی
    مشهد
    پست
    14

    نقل قول: مجموعه برنامه های نوشته شده به زبان 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 [i] ;
    sort (v.begin(),v.end()) ;
    do {
    for(int i = 0 ; i < n;i ++){
    if (i) printf (" ") ;
    printf ("%d",v [i]) ;
    }
    printf ("\n");
    }while (next_permutation (v.begin(),v.end())) ;
    }

  18. #18
    کاربر دائمی آواتار baran_mehr
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    شهر آفتاب گرمسار
    پست
    1,129

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    تا حالا سعی کرديد توی ويژوال سی رنگ پس زمينه رو عوض کنيد و رنگ دلخواهتون رو براش تعيين کنيد ؟

    اين کار مستقيما توی ويزارد نيست اما با يک خط کد نويسی قابل انجام هستش !

    پوزه شما ۲ تا فايل cpp اصلی داره که عبارتند از projectname.cpp و projectnameDlg.cpp که منظور از projectname نام پروژه ای هستش که انتخاب کرديد.

    توی فايل projectname.cpp قبل ار دستور;() int nResponse = dlg.DoModal کافيه اين يک خط رو بنويسيد :

    ;(( SetDialogBkColor(RGB(255,0,123),RGB(12,56,212


    RGB اول رنگ پس زمينه را مشخص ميکنه و RGB دوم رنگ متن ديالوگ رو تعيين می کنه .

    منبع

  19. #19
    کاربر دائمی آواتار baran_mehr
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    شهر آفتاب گرمسار
    پست
    1,129

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    برنامه ساده که يوزر و پسورد و شماره تلفن بگيره و خودش به اينترنت وصل بشه

    اول که بايد يه پروژه جديد بسازيد و ۳ تا edit box برای اطلاعات يوزر و پسورد و شماره تلفن.
    اولين کاری که بايد کنيد اينه که ۱-۲ کلاس رو به پروژه اضافه کنيد که با ۲خط زير انجام ميديد:

    #include "ras.h"
    #include "raserror.h"

    حالا ۲ تا دکمه بگذاريد برای وصل شدن و قطع ارتباط.
    برای وصل شدن از چند خط ساده زير استفاده کنيد که هر خط رو جداگانه توضيح ميدم:

     RASDIALPARAMS rdParams;// متغييری(شئی) است برای دادن اطلاعات مورد نياز برای کانکت به اينترنت
    rdParams.dwSize = sizeof(RASDIALPARAMS);
    rdParams.szEntryName[0] = '\0';
    lstrcpy( rdParams.szPhoneNumber, m_strPhoneNumber );//در اين قسمت شماره تلفن را مقدار دهی ميکنيم
    rdParams.szCallbackNumber[0] = '\0';
    lstrcpy( rdParams.szUserName, m_strUserName );//در اين قسمت يوزررا مقدار دهی ميکنيم
    lstrcpy( rdParams.szPassword, m_strPassword );//در اين قسمت پسورد را مقدار دهی ميکنيم
    rdParams.szDomain[0] = '\0';

    HRASCONN hRasConn = NULL;//اين متغيير برای نسبت دادن يک هندل به اين کانکشن در صورت موفقيت خوهد بود که بتوان در آينده از آن استفاده کرد مثلا آنرا قطع کرد
    DWORD dwRet = RasDial( NULL, NULL, &rdParams, 0L, NULL, &hRasConn );//در اين قسمت شروع به شماره گيری ميکند و نتيجه شماره گيری بازگردانده می شود که در صورت موفقيت صفر و در غير اين صورت شماره خطلا خواهد بود
    if ( dwRet == 0 ) return true;
    char szBuf[256];
    if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )//اگر منجر به خطا شد با استفاده از شماره خطا متن خطا را بدست آمرده نمايش می دهيم و کانکشن را می بنديم
    wsprintf( (LPSTR)szBuf, "Undefined RAS Dial Error (%ld).", dwRet );
    RasHangUp( hRasConn );
    MessageBox( (LPSTR)szBuf, "Error", MB_OK | MB_ICONSTOP );
    return false;




    تا ايجا نحوه خيلی ساده اتصال رو ديديم. حالا بايد در صورت نياز امکان قطع کردن رو هم فراهم کنيم که اونم به سادگی کد زير هستش:

    RASCONN ras[20];
    DWORD dSize, dNumber;
    char szBuf[256];

    connected=false;
    ras[0].dwSize = sizeof( RASCONN );
    dSize = sizeof( ras ); // Get active RAS - Connection
    DWORD dwRet = RasEnumConnections( ras, &dSize, &dNumber );
    if ( dwRet != 0 )
    {
    if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )
    wsprintf( (LPSTR)szBuf, "Undefined RAS Enum Connections error (%ld).", dwRet );
    MessageBox( (LPSTR)szBuf, "RasHangUp", MB_OK | MB_ICONSTOP );
    return false;
    }
    bool bOK = true;
    for( DWORD dCount = 0; dCount < dNumber; dCount++ )
    { // Hang up that connection
    HRASCONN hRasConn = ras[dCount].hrasconn;
    DWORD dwRet = RasHangUp( hRasConn );
    if ( dwRet != 0 )
    {
    char szBuf[256];
    if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )
    wsprintf( (LPSTR)szBuf, "Undefined RAS HangUp Error (%ld).", dwRet );
    MessageBox( (LPSTR)szBuf, "RasHangUp", MB_OK | MB_ICONSTOP );
    bOK = false;
    }
    }
    return bOK;


    با اين ۲ تابع ساده ميتونيد به اينترنت متصل شيد. اما نکاتی که هست اينه که :
    اولا اصلا کانکشن ويندوزی ساخته نميشه.
    دوماً اينکه ايکون اتصال هم نمايش داده نميشه و دست شمارو باز ميگذاره که هرجور دوست داريد اعمال سليقه کنيد.
    منبع

  20. #20
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    این هم یدونه از طرف من.
    یکی از دوستام گفت که یه برنامه بده ک اعداد اول رو حساب کنه.
    باید یه چیزی مینوشتم که توی sms جا بشه.
    نخندید.
    #include "stdio.h"
    #include "malloc.h"
    #define U unsigned int
    int main(){U S,E,m=1,c=1,V;printf("S? E?");scanf("%u %u",&S,&E);if(S>E)return 1;if((E>1)&&(S<2))printf("%u\n",2);U* L=(U*)malloc(6542*sizeof(U));L[0]=2;bool D=0;for(U n=2;n!=E;n++){for(U t=0;t!=c;t++)if((n%(V=L[t]))==0)goto x;if((V*V<n)&&((n%(V=L[C++‎]))==0))goto x;if(n>S)printf("%u\n",n);if(!D){L[m++]=n;if(n*n>E){D=1;if(n<S){while((V*V)<S)V=L[C++‎];n=S;}}}x:;}free(L);return 0;}

    با gcc روی دبییان x86_64, armel و vC++‎ 6 روی ویندوز x86 کامپایل میشه.
    آخرین ویرایش به وسیله FastCode : سه شنبه 30 فروردین 1390 در 15:37 عصر

  21. #21
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    نقل قول نوشته شده توسط FastCode مشاهده تاپیک
    این هم یدونه از طرف من.
    یکی از دوستام گفت که یه برنامه بده ک اعداد اول رو حساب کنه.
    باید یه چیزی مینوشتم که توی sms جا بشه.
    نخندید.
    #include "stdio.h"
    #include "malloc.h"
    #define U unsigned int
    int main(){U S,E,m=1,c=1,V;printf("S? E?");scanf("%u %u",&S,&E);if(S>E)return 1;if((E>1)&&(S<2))printf("%u\n",2);U* L=(U*)malloc(6542*sizeof(U));L[0]=2;bool D=0;for(U n=2;n!=E;n++){for(U t=0;t!=c;t++)if((n%(V=L[t]))==0)goto x;if((V*V<n)&&((n%(V=L[C++‎‎]))==0))goto x;if(n>S)printf("%u\n",n);if(!D){L[m++]=n;if(n*n>E){D=1;if(n<S){while((V*V)<S)V=L[C++‎‎];n=S;}}}x:;}free(L);return 0;}

    با gcc روی دبییان x86_64, armel و vC++‎‎ 6 روی ویندوز x86 کامپایل میشه.
    #include "stdio.h"
    #include "malloc.h"
    int main(){
    unsigned int Start, End, CurrentMemo = 1, CurrentTest = 1, SquareRoot;
    printf("S? E?");
    scanf("%u %u", &Start, &End);
    if(Start > End)
    return 1;
    if((End > 1) && (Start < 2))
    printf("%u\n", 2);
    unsigned int* List = (unsigned int*)malloc(6542 * sizeof(unsigned int));
    List[0] = 2;//CurrentMemo is Zero, we can use it here and change the initial value instead
    bool DoneWithMemo = 0;
    for(unsigned int Counter = 2;Counter != End;Counter++) {
    for(unsigned int TestCounter = 0;TestCounter != Counter;TestCounter++)
    if((Counter % (SquareRoot = List[TestCounter])) == 0)
    goto Next;
    if((SquareRoot * SquareRoot < Counter) && ((Counter % (SquareRoot = List[CurrentTest++‎])) == 0))
    goto Next;

    if(Counter > Start)//It`s prime
    printf("%u\n", n);

    if(!DoneWithMemo) {
    List[CurrentMemo++] = Counter;//we need this prime
    if(Counter * Counter > End) {
    DoneWithMemo = 1;
    if(Counter < Start) {
    while((SquareRoot * SquareRoot) < Start) //find the least needed SquareRoot
    SquareRoot = List[CurrentTest++‎];
    Counter = Start;
    }
    }
    }
    Next:;
    }
    free(L);
    return 0;
    }

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

  22. #22

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    سلام دوستان
    این هم یه برنامه ساده برای نشان دادن چگونگی کار با لینک لیستها
    #include <stdio.h>
    #include <conio.h>

    struct linklist
    {
    int data;
    struct linklist *next;
    };

    struct linklist *createNode() {
    struct linklist *tmp = new struct linklist;
    return tmp;
    }
    int main() {
    struct linklist *mylist,*T;
    mylist = new struct linklist;
    T = mylist;
    mylist->data = 0;
    mylist->next = createNode();
    mylist = mylist->next;
    mylist->data = 1;
    mylist->next = createNode();
    mylist = mylist->next;
    mylist->data = 2;
    mylist->next = NULL;
    mylist = T;
    while(mylist)
    {
    printf("%d\n",mylist->data);
    mylist = mylist->next;
    }
    getch();
    return 0;
    }

  23. #23

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    برنامه ی مغلوب عدد طبیعی n

    #include<iostream.h>
    Main()
    {
    Int n,d,s=0;
    Cout<<”please inter n”;
    Cin>>n;
    While(n>0){
    D=n%10;
    N=n\10;
    S=s*10+d;
    }cout<<s;
    }
    [[/LTR_INLINE][/LTR_INLINE][/LEFT]
    آخرین ویرایش به وسیله sodabeh : یک شنبه 04 اردیبهشت 1390 در 18:21 عصر دلیل: فرمت نا مناسب

  24. #24

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    برنامه بازی حدس عدد به زبان C#‎ باشه لطفان
    که اول کاربر اول عدد رو وارد میکنه
    سپس کار بر دوم حدس میزنه
    اگه عدد بزرگتر بود پیغام بزرگتر و اگر کوچیکتر بود پیغام کوچیکتر نمایش بده
    تا 10 عدد بیشتر نتونه وارد کنه در ضمن اگر کار بر بجای عدد کاراکتر وارد کرد برنامه پیغام خطا بده و این کار تا زمانی که عدد رو وارد نکرده ادامه داشته باشه
    با do while باشه

    میشه برنامه قبی رو هم به صورتی انجام داد که بعد از اتمام ازش بپرسه میخواد ادامه بده بعد اگر میخوادy وارد کنه اگر نمیخواد n
    میشه اینو چندین مرحلهای کرد ؟ که تو هر مرحله تعدا اعدادی که میتونی حدس بزنه کمتر باشه

    میدونم این برنامه زیادی مشکل داره شما به بزرگواریتون ببخشید و ممنون میشم کمکم کنید
    --------------------------------------------------------------------------------------------------------


    #include<stdio.h>
    include<conio.h>#
    Main()
    {
    int h1,h2.i=1;
    print f ("p1:enter a number:")
    scanf("%d",h1);
    clrscr();
    while(i<=10)
    {
    printf("p2 rountd%dwhat is your guess?');
    if(h2>h1)
    printf("adad bozorgtaras mojadad adad ra vared konid/n);
    else
    if(h2<h1)
    printf('adad kochiktar ast dobare talash konid /n);
    else
    printf("you win";
    breek;
    }
    i++
    }
    if(i==11(;
    printf(you loos"(
    {

  25. #25

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    این هم چند برنامه ی ساده برای درس ساختمان داده ها و الگوریتم ها . فایل زیر حاوی این برنامه هاست :
    array و Binary search و Bubble Sort و پیاده سازی صف Queue و Insertion sort و merge sort و Quick sort و selection sort و پیاده سازی پشته stack و چند برنامه ی دیگر .

    برای دانلود اینجا و برای توضیحات بیشتر به وبلاگم یعنی اینجا کلیک کنید .

  26. #26

    Wink دانلود 2000 کد به زبان سی پلاس پلاس و سی و 2000 کد به زبان ویژوال بیسیک 6

    سلام
    یه فایل 460 مگابایتی رو تو سیستم تورنت قرار دادم که شامل 4000 کد سی و سی پی پی و ویژوال بیسیک هست که در مورد همه ی مباحث برنامه نویسی از الگوریتم گرفته تا برنامه های کاربردی کوچیک و بزرگ .که میتونید اونو به راحتی دانلود کنید . اگه با تورنت آشنایی ندارید اینجا کلیک کنید و بعد از آشنایی با تورنت فایل تورنت که در زیر قرار دادم رو با نرم افزار utorrent باز کنید و فایل 460 مگابایتی rar. رو بعد از دانلود اکسترک کنید و ازش استفاده کنید . نرم افزار تورنت رو هم در زیر قرار دادم .

    موفق باشید .
    فایل های ضمیمه فایل های ضمیمه

  27. #27
    کاربر دائمی آواتار saber187518
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    همین دور و برا
    پست
    311

    نقل قول: دانلود 2000 کد به زبان سی پلاس پلاس و سی و 2000 کد به زبان ویژوال بیسیک 6

    با سلام
    دوستان عزیز برنامه زیر مقدار لاگرانژ رو محاسبه میکنه

    #include <iostream.h>
    #include <conio.h>
    #include <stdlib.h>
    void main()
    {
    float xi[100],fi[100],temp,li[100],x,p;
    int i,n,j;
    cout <<"enter number of sentences:\t";
    cin >>n;
    cout <<"enter value of x:\t";
    cin >>x;
    for (i=0;i<n;i++)
    {
    cout <<"enter xi["<<i<<"] :\t";
    cin >>xi[i];
    cout <<"enter fi["<<i<<"] :\t";
    cin >>fi[i];
    }//end of for
    for (i=0;i<n;i++)
    {
    li[i]=1;
    for (j=0;j<n;j++)
    {
    if(i==j)
    continue;
    li[i]*=(x-xi[j])/(xi[i]-xi[j]);
    }//end of for
    }//end of for
    clrscr();
    for (i=0;i<n;i++)
    li[i]=li[i]*fi[i];
    p=0;
    for (i=0;i<n;i++)
    p+=li[i];
    cout <<"P"<<n-1<<"=\t"<<p;
    getch();
    }//end of program

  28. #28

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    پروِه بازی زیر دریایی
    TAHESH.rar

  29. #29

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    اینم یه برنامه که عدد هارو به شکل زیر چاپ میکنه

    wer.jpg
    فایل های ضمیمه فایل های ضمیمه

  30. #30

    برنامه پر کردن یه شکل با یه کاراکتر

    یه برنامه هست که یه شکل با ضلع های مشخص را با استفاده از کاراکتر مشخص طی زمان مشخص پر می کنه ... خوشگله با ویژوال 2010 ران کردم!

    #include <iostream>
    #include <conio.h>
    #include <stdio.h>
    #include <windows.h>

    using namespace std;
    void gotoxy(int x,int y){

    COORD pos;
    HANDLE hConsole = GetStdHandle ( STD_OUTPUT_HANDLE );
    if (INVALID_HANDLE_VALUE != hConsole)
    {
    pos.X = x;
    pos.Y = y;
    SetConsoleCursorPosition( hConsole, pos );
    }
    }

    int main() {
    // maghadir m , n andazeh zele shekl mored nazar hast, anha ra taghir dahid va natigeh ra bebinid
    //baray aroom tar kardan ya sari tar kardan meghadar 10 ra dar ha tabeh Sleep taghir bedahid
    int n= 50, m=50 ,s=0;
    while ( m && n){
    for (int i=s ; i<= n ; i++){
    gotoxy(i , s );
    cout<<"#";
    Sleep(10);
    }

    for (int i=1 ; i <= m ; i++){
    gotoxy(n , i );
    cout<<"#";
    Sleep(10);
    }

    for (int i=n-1 ; i >= 0 ;i--){
    gotoxy(i , m );
    cout<<"#";
    Sleep(10);
    }

    for (int i=m-1 ; i > 0 ; i--){
    gotoxy(s , i );
    cout<<"#";
    Sleep(10);
    }

    n--;
    m--;
    s++;
    }


    getch();
    return 0 ;
    }

  31. #31

    اعداد یک تا نه به صورت شکل لوزی

    اینم یه نوع تغییر داده شده برنامه ی بالای دوستمون!



    #include <iostream>
    #include <conio.h>
    #include <stdio.h>

    using namespace std;

    int main() {



    for (int i=1 ; i <= 9 ; i++){

    for (int j=i ; j <= 8 ; j++) {
    cout<<" ";
    }

    for (int k=1 ; k<=i ; k++){

    cout<<k<<" ";
    }

    for (int l=i-1 ; l >0 ; l--){
    cout<<l<<" ";
    }

    for (int j=i ; j <= 8 ; j++) {
    cout<<" ";
    }
    cout<<endl;
    }
    for (int i=8 ; i >0 ; i--){

    for (int j=1 ; j <= 9-i ; j++) {
    cout<<" ";
    }

    for (int k=1 ; k<=i ; k++){

    cout<<k<<" ";
    }

    for (int l=i-1 ; l >0 ; l--){
    cout<<l<<" ";
    }

    for (int j=1 ; j <= 9-i ; j++) {
    cout<<" ";
    }
    cout<<endl;
    }
    getch();
    return 0 ;
    }
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg 1.jpg‏ (26.5 کیلوبایت, 1042 دیدار)

  32. #32
    کاربر جدید آواتار ruhollah2009
    تاریخ عضویت
    آبان 1388
    محل زندگی
    ایران
    پست
    7

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    مثلث خیام را در برخی منابع به ندرت «مثلث خیام-پاسکال-نیوتن» نیز می‌گویند. این مثلث در زبان‌های گوناگون نام‌های دیگری نیز دارد در زبان انگلیسی «مثلث پاسکال»، ایتالیایی «مثلث تارتالیا» و در زبان چینی «مثلث یانگ هویی» نام گرفته‌است.
    من امروز مسئله مثلث خیام را با C++‎ و یه آرایه دو بعدی 6*6 حل کردم که شما دوستان میتونید اندازه اون را به دلخواه زیاد کنید
    امیدوارم بتونه در زمینه مسئله خیام به شما کمک کنه

    ==============================
    #include<iostream.h>
    int main()
    {
    int khayam[6][6],i,j;
    for(i=0 ; i<=5 ; i++)
    khayam[0][i]=khayam[i][0]=1;
    for(i=1 ; i<=5 ; i++)
    for(j=1 ; j<=5 ; j++)
    khayam[i][j]=khayam[i][j-1]+khayam[i-1][j];
    for(i=0 ; i<=5 ; i++)
    {
    for(j=0 ; j<=5 ; j++)
    cout<<khayam[i][j]<<"\t";
    cout<<endl;
    }
    }


  33. #33

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    کلاس چند جمله ای ها به زبان C++‎:
    #include<conio.h>
    #include<iostream.h>
    #define Max 20
    class Poly;
    class PolyNode
    {
    friend Poly;
    float Coef;
    int Pow;
    };
    class Poly
    {
    int n;
    PolyNode Data[Max];
    public:
    void equal(Poly a,Poly b);
    void moshtaghpoly(void);
    void search(void);
    void SortPoly(void);
    void ReadPoly(void);
    void WritePoly(void);
    void AddPoly(Poly a,Poly b);
    void SubtractPoly(Poly a,Poly b);
    };
    void Poly::SortPoly(void)
    {
    int i,j;
    PolyNode item;
    for(i=n-1;i>0;i--)
    for(j=0;j<i;j++)
    if(Data[j].Pow<Data[j+1].Pow)
    {
    item=Data[j];
    Data[j]=Data[j+1];
    Data[j+1]=item;
    }
    while(i<n-1)
    if(Data[i].Pow==Data[i+1].Pow)
    {
    Data[i].Coef+=Data[i+1].Coef;
    for(j=i+1;j<n-1;j++)Data[j]=Data[j+1];
    n--;
    }else i++;
    }
    void Poly::ReadPoly(void)
    {
    int i;
    cout<<"\nPlease enter parts of poly : ";
    cin>>n;
    cout<<"\nPlease enter Polynomial : \n\n";
    for(i=0;i<n;i++)
    {
    cin>>Data[i].Coef;
    cout<<" x^";
    cin>>Data[i].Pow;
    cout<<" +"<<endl;
    }
    }
    void Poly::WritePoly(void)
    {
    int i;
    cout<<"\n";
    for(i=0;i<n;i++)cout<<Data[i].Coef<<"X^"<<Data[i].Pow<<" + ";
    }
    void Poly::AddPoly(Poly a,Poly b)
    {
    int i,j,k;
    i=j=k=0;
    while(i<a.n&&j<b.n)
    {
    if(a.Data[i].Pow>b.Data[j].Pow)
    {
    Data[k].Coef=a.Data[i].Coef;
    Data[k++].Pow=a.Data[i++].Pow;
    }
    else if(a.Data[i].Pow<b.Data[j].Pow)
    {
    Data[k].Coef=b.Data[j].Coef;
    Data[k++].Pow=b.Data[j++].Pow;
    }
    else if(a.Data[i].Coef+b.Data[j].Coef)
    {
    Data[k].Coef=a.Data[i].Coef+b.Data[j].Coef;
    Data[k++].Pow=a.Data[i++].Pow;
    j++;
    }
    else
    {
    i++;
    j++;
    }
    }
    while(i<a.n)
    {
    Data[k].Coef=a.Data[i].Coef;
    Data[k++].Pow=a.Data[i++].Pow;
    }
    while(j<b.n)
    {
    Data[k].Coef=b.Data[j].Coef;
    Data[k++].Pow=b.Data[j++].Pow;
    }
    n=k;
    }
    void Poly::SubtractPoly(Poly a,Poly b)
    {
    int i,j,k;
    i=j=k=0;
    while(i<a.n&&j<b.n)
    {
    if(a.Data[i].Pow>b.Data[j].Pow)
    {
    Data[k].Coef=a.Data[i].Coef;
    Data[k++].Pow=a.Data[i++].Pow;
    }
    else if(a.Data[i].Pow<b.Data[j].Pow)
    {
    Data[k].Coef=b.Data[j].Coef;
    Data[k++].Pow=b.Data[j++].Pow;
    }
    else if(a.Data[i].Coef-b.Data[j].Coef)
    {
    Data[k].Coef=a.Data[i].Coef-b.Data[j].Coef;
    Data[k++].Pow=a.Data[i++].Pow;
    j++;
    }
    else
    {
    i++;
    j++;
    }
    }
    while(i<a.n)
    {
    Data[k].Coef=a.Data[i].Coef;
    Data[k++].Pow=a.Data[i++].Pow;
    }
    while(j<b.n)
    {
    Data[k].Coef=b.Data[j].Coef;
    Data[k++].Pow=b.Data[j++].Pow;
    }
    n=k;
    }
    void Poly::moshtaghpoly(void){
    int i;
    for(i=0;i<n;++i){
    Data[i].Coef*=Data[i].Pow;
    Data[i].Pow--;}}
    void Poly::search(void){
    int x;
    cout<<"\nenter a number for search:";
    cin>>x;
    for(int i=0;i<n;++i){
    if(x==Data[i].Coef)
    cout<<"\nThe number founded!";
    break;}
    cout<<"\nThe number not found";
    }
    void Poly::equal(Poly a,Poly b){
    if(a.n!=b.n)
    cout<<"not equal";
    for(int i=0;i<a.n;++i)
    if(a.Data[i].Pow!=b.Data[i].Pow||a.Data[i].Coef!=b.Data[i].Coef)
    cout<<"equql!";
    else
    cout<<"not equal!";}

    void main(void)
    {
    Poly a,b,c;
    char Sign;
    a.ReadPoly();
    a.SortPoly();
    cout<<"\nPlease enter sign(+,-) : ";
    cin>>Sign;
    b.ReadPoly();
    b.SortPoly();
    b=a;
    b.WritePoly();
    switch(Sign)
    {
    case'+':
    c.AddPoly(a,b);
    break;
    case'-':
    c.SubtractPoly(a,b);
    break;}
    c.SortPoly();
    cout<<"\n\nAnswer Is : \n";
    c.WritePoly();
    a.moshtaghpoly();
    cout<<"\nmoshtaghe a is:";
    a.WritePoly();
    cout<<"in a:";
    a.search();
    getche();
    }

  34. #34

    Thumbs up Trie Dictionary

    ديکشنري با ساختار Trie
    [Trie Dictionary]
    هدف: آشنايي دوستان با ساختار Trie
    توضيح مختصر: شما يک سري کلمات رو به ديکشنري تون اضافه ميکنين و بعد يه متن وارد ميکنين. با انتخواب take effect برنامه اون کلماتي رو که با ديکشنري مچ بوده (درست بوده) رو چاپ ميکنه
    اگه خواستين کلماتي که داخل ديکشنري نيست رو چاپ کنه خط 163 رو به
    if(!(t->Search(str)))
    تغيير بدين
    فایل های ضمیمه فایل های ضمیمه

  35. #35
    کاربر جدید
    تاریخ عضویت
    دی 1388
    محل زندگی
    یه گوشه ای از زمین خدا
    پست
    20

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    من خیلی با تاپیک آشنایی ندارم اگر برنامه تکراریه میتونید حذفش کنید

    محاسبه ماتریس معکوس n*n به زبان سی ++
    بسیار مفید برای تمرین با کار کردن با آرایه های داینامیک دو بعدی



    #include <iostream>
    using namespace std;
    double determinant( double** matrix, int size);
    int adjoint(double** matrix, double** temp, int row, int col, int size);
    void inversion(double **matrix, int size, double **inverse);
    int negative = 0 ;

    ///////////////////////////// Main Methode \\\\\\\\\\\\\\\\\\\\\\\\\\\

    int main (){

    int size ;
    cout << "size: " <<endl ;
    cin>>size;
    double ** matrix = new double* [size];
    for (int i=0 ; i<size ; i++ )
    matrix[i] = new double [size];

    for (int i=0 ; i<size ; i ++){
    for (int j=0 ; j<size ; j++){
    cout << "matrix[" <<i << "][" <<j<<"]:" ;
    cin >> matrix [i][j];
    }
    }

    double ** res = new double* [size];
    for (int i=0 ; i<size ; i++ )
    res[i] = new double [size];

    inversion (matrix , size , res) ;

    if (negative == 1 )
    cout << "No Inverse " <<endl;
    else {
    for (int i=0 ; i<size ; i ++){
    for (int j=0 ; j<size ; j++){
    cout << res [i][j] <<" ";
    }
    cout <<endl ;
    }

    }
    for(int i=0;i<size;i++)
    delete [] matrix[i];
    delete [] matrix;

    for(int i=0;i<size;i++)
    delete [] res[i];
    delete [] res;
    return 0 ;
    }

    ///////////////////////////// Inversion Methode \\\\\\\\\\\\\\\\\\\\\\\\\\\

    void inversion(double **matrix, int size, double **inverse)
    {

    if (determinant(matrix,size) ==0 ){
    negative = 1 ;
    return ;
    }

    double det = 1.0 / determinant(matrix,size);
    double *temp = new double[(size-1)*(size-1)];
    double ** temp2 = new double*[size-1];
    for(int i=0;i<size-1;i++)
    temp2[i] = temp+(i*(size-1));

    for(int j=0;j<size;j++)
    {
    for(int i=0;i<size;i++)
    {
    adjoint(matrix,temp2,j,i,size);
    inverse[i][j] = det*determinant(temp2,size-1);
    if( (i+j)%2 == 1)
    inverse[i][j] = -inverse[i][j];
    }
    }
    delete [] temp;
    delete [] temp2;
    }

    ///////////////////////////// Determinant Methode \\\\\\\\\\\\\\\\\\\\\\\\\\\

    double determinant( double** matrix, int size){
    double sum =0 ;
    int k ;

    if( size == 1 )
    return matrix[0][0];

    double ** temp ;
    temp = new double* [size-1];
    for(int i=0; i<size-1;i++)
    temp[i] = new double [size - 1];

    for(int i = 0; i < size; i++ )
    {
    adjoint( matrix, temp, 0, i , size);
    if (i%2 == 1 )
    k = -1 ;
    else
    k = 1;

    sum += k * matrix[0][i] * determinant (temp,size-1);
    }
    for(int i=0;i<size-1;i++)
    delete [] temp[i];
    delete [] temp;
    return sum;
    }

    ///////////////////////////// Adjoint Methode \\\\\\\\\\\\\\\\\\\\\\\\\\\

    int adjoint(double** matrix, double** temp, int row, int col, int size){

    int colCount=0,rowCount=0;
    for(int i = 0; i < size; i++ )
    {
    if( i != row )
    {
    colCount = 0;
    for(int j = 0; j < size; j++ )
    { if( j != col )
    {
    temp [rowCount][colCount] = matrix[i][j];
    colCount++;
    }
    }
    rowCount++;
    }
    }
    return 1;
    }

    منبع

  36. #36
    کاربر دائمی آواتار V0RTEX
    تاریخ عضویت
    آذر 1389
    محل زندگی
    kernel
    پست
    106

    Cool نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    برنامه ی بسط دوجمله‌ای
    نمونه ورودی:
    (3x+2y)^4
    compiler:visual studio 2010
    #include <iostream>
    #include <vector>
    #include <string>
    using namespace std;
    unsigned long long bin(int n,int k);
    int conv(char c);
    int main()
    {
    system("color e0");
    int n(0),x(1),y(1);
    char xx('x'),yy('y');
    bool p(true);
    string str;
    getline(cin,str);
    //( -/'' num/'' char -/+ num/'' char)^num
    //0 1 2 3 4 5 6 7
    int ind=1;
    if(str[ind]=='-')
    {
    x*=-1;
    ind++;
    }
    if(conv(str[ind]) >=0 && conv(str[ind]) <= 9)
    {
    vector<int> ss;
    for(int i=ind;(conv(str[i]) >=0 && conv(str[i]) <= 9);i++)
    ss.push_back(conv(str[i]));
    bool xim=true;
    if(x==-1)
    xim=false;
    x=0;
    for(int k=ss.size()-1,t=0;k>=0;k--,t++)
    x+=ss[k]*powl(10,t);
    if(!xim)
    x=-x;
    ind+=ss.size();
    xx=str[ind];
    }
    else
    xx=str[ind];
    ind++;
    if(str[ind]=='-')
    p=false;
    ind++;
    if(conv(str[ind]) >=0 && conv(str[ind]) <= 9)
    {
    vector<int> ss;
    for(int i=ind;(conv(str[i]) >=0 && conv(str[i]) <= 9);i++)
    ss.push_back(conv(str[i]));
    bool xim=true;
    if(y==-1)
    xim=false;
    y=0;
    for(int k=ss.size()-1,t=0;k>=0;k--,t++)
    y+=ss[k]*powl(10,t);
    if(!xim)
    y=-y;
    ind+=ss.size();
    yy=str[ind];
    }
    else
    yy=str[ind];
    ind+=3;
    int tlo;
    for(tlo=ind;tlo<str.size();tlo++);
    for(int k=tlo-1,t=0;k>=ind;k--,t++)
    n+=conv(str[k])*powl(10,t);
    //--------------------------------------------
    system("cls");
    cout << str << "=";
    long long r=x*y;
    bool qwe=false;
    for(int i=0;i<=n;i++)
    {
    unsigned long long s=bin(n,i);
    r=powf(x,n-i)*powf(y,i);
    long long g=s*r;
    cout << "(";
    if(g!=1 && g!=-1 && i!=n && i!=0)
    cout << g;
    else if(i==n && powf(y,i)!=1)
    cout << powf(y,i);
    else if(i==0 && powf(x,n-i)!=1)
    cout << powf(x,n-i);
    if(g==-1)
    cout << "-";
    if(n-i != 0 && n-i!=1)
    cout << xx <<"^" << n-i;
    else if(n-i ==1)
    cout << xx;
    else
    cout << "";
    if( i != 0 && i!=1)
    cout << yy << "^" << i;
    else if( i ==1)
    cout << yy;
    cout << ")";
    if(i != n && p)
    cout << "+";
    else if(i != n && !p)
    {
    char show=qwe?'+':'-';
    cout << show;
    qwe=!qwe;
    }
    }
    cout << endl;
    system("pause");
    return 0;
    }
    unsigned long long bin(int n,int k)
    {
    vector<vector<unsigned long long> > b;
    vector<unsigned long long> em;
    for(int i=0;i<=n;i++)
    {
    b.push_back(em);
    for(int j=0;j<=min(i,k);j++)
    if(j==0 || j==i)
    if(j >= int(b[i].size()))
    b[i].push_back(1);
    else
    b[i][j]=1;
    else
    if(j >= int(b[i].size()))
    b[i].push_back(b[i-1][j-1]+b[i-1][j]);
    else
    b[i][j]=b[i-1][j-1]+b[i-1][j];
    }
    return b[n][k];
    }
    int conv(char c)
    {
    return c - '0';
    }
    فایل های ضمیمه فایل های ضمیمه

  37. #37

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    بازی دوز!

    خیلی ساده است!
    فقط باید مختصات بدید
    مثلا وقتی مختصات اول ازتون خواسته میشه
    عدد اول وارد کنید بعدش
    Enter
    بزنید بعد خودش کاما می زاره
    بعدش عدد دوم وارد کنید بعد دوباره
    Enter
    بزنید!

    Doooz.rar

  38. #38

    نقل قول: مجموعه برنامه های نوشته شده به زبان C و ++C

    برنامه ای که n عدد اول سری فیبوناچی را تولید کند

    #include <iostream.h>
    #include <conio.h>

    void main ()
    {
    clrscr ();
    unsigned int f1=1,f2=1,fn,n,i;
    cout<<"Please enter n for serie Fibonacci: ";
    cin>>n;
    if(n>0)
    {
    cout<<f1<<" "<<f2;
    for (i=1; i<=n-2; i++)
    {
    fn=f1+f2;
    cout<<" "<<fn;
    f1=f2;
    f2=fn;
    }
    }
    else
    cout<<"Error: Invalid Number. Please try again";
    getch ();
    }
    آخرین ویرایش به وسیله hodong : چهارشنبه 02 آذر 1390 در 15:52 عصر

  39. #39
    کاربر دائمی آواتار shahmohammadi
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    کلیبر
    پست
    475

    رسم یک تابع مثلثاتی در gdi با رنگ های ادغام شده

    سلام.
    این هم یه برنامه که با توابع gdi توی win32 نوشتم. (با dev cpp)
    یه تابعی رو رسم می کنه:

    #include <windows.h>
    #include <math.h>


    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);


    char szClassName[ ] = "WindowsApp";

    int WINAPI WinMain (HINSTANCE hThisInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpszArgument,
    int nFunsterStil)

    {
    HWND hwnd;
    MSG messages;
    WNDCLASSEX wincl;


    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;
    wincl.style = CS_DBLCLKS;
    wincl.cbSize = sizeof (WNDCLASSEX);


    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;
    wincl.cbClsExtra = 0;
    wincl.cbWndExtra = 0;

    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND+1;


    if (!RegisterClassEx (&wincl))
    return 0;


    hwnd = CreateWindowEx (
    0,
    szClassName,
    "Windows App",
    WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    544,
    375,
    HWND_DESKTOP,
    NULL,
    hThisInstance,
    NULL
    );


    ShowWindow (hwnd, nFunsterStil);

    PAINTSTRUCT ps;
    HDC hdc = BeginPaint(hwnd, &ps);
    for(float j=-6.28;j<6.28;j+=0.0001)
    SetPixel(hdc, 40*j+265, -40*sin(10/j)+150, RGB(255-j*30,j*30,j*20));


    while (GetMessage (&messages, NULL, 0, 0))
    {

    TranslateMessage(&messages);

    DispatchMessage(&messages);
    }


    return messages.wParam;
    }




    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    switch (message)
    {
    case WM_DESTROY:
    PostQuitMessage (0);
    break;
    default:
    return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
    }

  40. #40
    کاربر دائمی آواتار shahmohammadi
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    کلیبر
    پست
    475

    رسم یک تابع مثلثاتی در gdi با رنگ های ادغام شده ++C

    این هم یکی دیگه:

    اگه رنگشو نپسندیدید می تونید خودتون هم رنگهای دیگه رو امتحان کنید.

    #include <windows.h>
    #include <math.h>


    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);


    char szClassName[ ] = "WindowsApp";

    int WINAPI WinMain (HINSTANCE hThisInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpszArgument,
    int nFunsterStil)

    {
    HWND hwnd;
    MSG messages;
    WNDCLASSEX wincl;


    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;
    wincl.style = CS_DBLCLKS;
    wincl.cbSize = sizeof (WNDCLASSEX);


    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;
    wincl.cbClsExtra = 0;
    wincl.cbWndExtra = 1000;

    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND+1;


    if (!RegisterClassEx (&wincl))
    return 0;


    hwnd = CreateWindowEx (
    0,
    szClassName,
    "Windows App",
    WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    544,
    375,
    HWND_DESKTOP,
    NULL,
    hThisInstance,
    NULL
    );


    ShowWindow (hwnd, nFunsterStil);



    while (GetMessage (&messages, NULL, 0, 0))
    {

    TranslateMessage(&messages);

    DispatchMessage(&messages);
    }


    return messages.wParam;
    }




    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {

    PAINTSTRUCT ps;
    HDC hdc;
    float fix;
    switch (message)
    {


    case WM_PAINT:
    //for(float j=0.98;j<6.42;j+=0.0001)
    hdc = BeginPaint(hwnd, &ps);
    for(int i=0;i<=544;i++){
    fix=-100*cos((float)i/100)*sin(100/((float)i/100))+150;
    for(int j=0;j<375;j++)
    if((float)j>fix)
    SetPixel(hdc,i,j, RGB(255*j/375,-255*i/544,255));
    else
    SetPixel(hdc,i,j, RGB(-255*i/544,255*i/544,0));
    //SetPixel(hdc, 100*j-100, -100*cos(j)*sin(100/j)+150, RGB(255,0,0));
    }
    break;
    case WM_DESTROY:
    PostQuitMessage (0);
    break;
    default:
    return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
    }
    آخرین ویرایش به وسیله shahmohammadi : شنبه 26 آذر 1390 در 11:08 صبح

صفحه 4 از 7 اولاول ... 23456 ... آخرآخر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •