C/C++

Дискусија во форумот 'Програмирање и програмски јазици' започната од Драган, 12 мај 2006.

  1. Dim40

    Dim40

    Член од:
    18 јули 2017
    Мислења:
    37
    Допаѓања:
    7
    Еве од мене Нула Икс Нула игра у C++
    За саат време ја направив,функционална е, ама може да се подобри и тоа како.

    Код:
    #include <iostream>
    #include <windows.h>
    
    using namespace std;
    
    //GLOBAL
    
    char grid[3][3]={
    {'1','2','3'},
    {'4','5','6'},
    {'7','8','9'}
    };
    int width,height;
    bool gameover=true;             //koga e true, programata raboti
    char player;
    unsigned int turn=1;
    int trap=1;
    char rez;
    
    void setup();
    void draw();
    void input();
    void math();
    
    int main()
    {
    start:
    
    setup();
    while (gameover==true){
        draw();
        (turn%2==1)?player='X':player='O';
        input();
        system("cls");
        math();
        turn++;
    }
    
    cout<<"\nRestart(y/n)?";
                cin>>rez;
                if(rez=='y' || rez=='1' || rez=='Y'){
                system ("cls");
                goto start;
                }
    
        return 0;
    }
    
    void setup(){                           //Pocetni vrednosti(SAMO EDNAS)
    char number='1';
    for (int i=0;i<=2;i++){
    for (int j=0;j<=2;j++){
        grid[i][j]=number;
        number++;
        }
    }
    gameover=true;
    turn=1;
    trap=1;
    }
    
    void draw(){                       //Crtanje
    int incrsr1=0,incrsr2=0;       //Ne se potrebni, treba kako vo setup da go napravam ovoj del
    
    cout<<"Tic Tac Toe! \n";
    
    for (width=1;width<=7;width++){
            cout<<"#";
        }
    
        for (height=1;height<=6;height++){
            cout<<"\n";
            if(height==2 || height==4){
                incrsr1=0;
                incrsr2++;
            }
            if(height%2==1){
            for (width=1;width<8;width++){
    
                if(width==2 ||width==4 ||width==6){
                    cout<<grid[incrsr2][incrsr1];
                    incrsr1++;
                }
                else
                    cout<<"#";
    
            }
            }
            else{
    
            for (width=1;width<8;width++){
                    cout<<"#";
    
            }
            }
    }
    
    cout<<"\n";
    (turn%2==1)?cout<<"Player 1's turn (X) \n" : cout<<"Player 2's turn (O)\n";
    
    }
    
    void input(){             //Vnesuvanje
        cout<<"\n";
        char inp;
        cin>>inp;
        switch (inp){
    case '1':
        if(grid[0][0]!='X' && grid[0][0]!='O')
        grid[0][0]=player;
        else
        turn++;
            break;
    case '2':if(grid[0][1]!='X' && grid[0][1]!='O')
        grid[0][1]=player;
        else
        turn++;
        break;
    case '3':if(grid[0][2]!='X' && grid[0][2]!='O')
        grid[0][2]=player;
        else
        turn++;
            break;
    case '4':if(grid[1][0]!='X' && grid[1][0]!='O')
        grid[1][0]=player;
        else
        turn++;
        break;
    case '5':if(grid[1][1]!='X' && grid[1][1]!='O')
        grid[1][1]=player;
        else
        turn++;
            break;
    case '6':if(grid[1][2]!='X' && grid[1][2]!='O')
        grid[1][2]=player;
        else
        turn++;
        break;
    case '7':if(grid[2][0]!='X' && grid[2][0]!='O')
        grid[2][0]=player;
        else
        turn++;
            break;
    case '8':if(grid[2][1]!='X' && grid[2][1]!='O')
        grid[2][1]=player;
        else
        turn++;
        break;
    case '9':if(grid[2][2]!='X' && grid[2][2]!='O')
        grid[2][2]=player;
        else
        turn++;
        break;
        }
    }
    
    void math(){                   //Gleda dali nekoj pobedil ili ima uste potezi
    
    if((grid[0][0]=='X'&&grid[0][1]=='X' &&grid[0][2]=='X') ||
       (grid[1][0]=='X'&&grid[1][1]=='X' &&grid[1][2]=='X') ||
       (grid[2][0]=='X'&&grid[2][1]=='X' &&grid[2][2]=='X') ||
       (grid[0][0]=='X'&&grid[1][0]=='X' &&grid[2][0]=='X') ||
       (grid[0][1]=='X'&&grid[1][1]=='X' &&grid[2][1]=='X') ||
       (grid[0][2]=='X'&&grid[1][2]=='X' &&grid[2][2]=='X') ||
       (grid[0][0]=='X'&&grid[1][1]=='X' &&grid[2][2]=='X') ||
       (grid[0][2]=='X'&&grid[1][1]=='X' &&grid[2][0]=='X')
    ){
        gameover=false;
        draw();
        cout<<"\nPlayer 1 Win!\n";
    
    }
    
    if((grid[0][0]=='O'&&grid[0][1]=='O' &&grid[0][2]=='O') ||
       (grid[1][0]=='O'&&grid[1][1]=='O' &&grid[1][2]=='O') ||
       (grid[2][0]=='O'&&grid[2][1]=='O' &&grid[2][2]=='O') ||
       (grid[0][0]=='O'&&grid[1][0]=='O' &&grid[2][0]=='O') ||
       (grid[0][1]=='O'&&grid[1][1]=='O' &&grid[2][1]=='O') ||
       (grid[0][2]=='O'&&grid[1][2]=='O' &&grid[2][2]=='O') ||
       (grid[0][0]=='O'&&grid[1][1]=='O' &&grid[2][2]=='O') ||
       (grid[0][2]=='O'&&grid[1][1]=='O' &&grid[2][0]=='O')
    ){
        gameover=false;
        draw();
        cout<<"\nPlayer 2 Win!\n";
    }
    
    //proverka dali e TIE
    int trap=0;
    for (int i=0;i<=2;i++){
        for (int j=0;j<=2;j++){
            if (grid[j][i]=='O' || grid[j][i]=='X'){
                trap++;
                }
                }
                }
    if (trap==9){
                gameover=false;
                draw();
                cout<<"\nTIE!\n";
                }
    }
    
     
    Последно уредено: 13 ноември 2017
  2. Oleksandr

    Oleksandr

    Член од:
    10 март 2014
    Мислења:
    730
    Допаѓања:
    618
    Брат пробувам се и сешто едноставно така испадна овде.
     
  3. SOFIJA12345

    SOFIJA12345

    Член од:
    11 јуни 2012
    Мислења:
    67
    Допаѓања:
    9
    prasanje za delce od zadaca ne mi e jasno sto pravi forot so k , znaci 3ot for vo matricata ... i-odi po redici,j-po koloni aaa k? eve primer:
    /*Да се состави програма која ќе изврши замена на секој елемент на дадената матрица со сумата на
    елементите од редот и колоната на кои им припаѓа. Притоа вредноста на елементот кој го заменуваме не влегува во сумита.
    Почетната матрица се внесува преку тастатура. Резултатот се сместува во нова матрица која притоа се печати.
    Максималните димензии на матриците се 10x10.
    Пример:
    1 2 4 5 14 19 20 16
    2 3 4 6 --> 15 20 23 17
    1 6 8 3 20 16 18 26 */
    #include <stdio.h>
    #define MAX 100
    int main ()
    {
    int mat[MAX][MAX],new_mat[MAX][MAX],i,j,m,n,suma_red=0,suma_kol=0,suma_kraj=0,k,p;
    printf("Vnesi broj na redici:\n");
    scanf("%d",&n);
    printf("Vnesi broj na koloni:\n");
    scanf("%d",&m);
    printf("POLNI:\n");
    for(i=0;i<n;i++)
    for(j=0;j<m;j++)
    scanf("%d",&mat[j]);
    printf("CITANJE:\n");
    for(i=0;i<n;i++)
    {
    for(j=0;j<m;j++)
    printf("%d ",mat[j]);
    printf("\n");
    }
    for(i=0;i<n;i++)
    {
    for(j=0;j<m;j++)
    {
    new_mat[j]=mat[j];
    }
    }
    printf("CITANJE-NEW_MAT:\n");
    for(i=0;i<n;i++)
    {
    for(j=0;j<m;j++)
    printf("%d ",new_mat[j]);
    printf("\n");
    }


    for(i=0;i<n;i++)
    {
    for(j=0;j<m;j++)
    {
    suma_kol=suma_red=0;
    for(k=0;k<m;k++)
    {
    if(k==j)
    {

    }
    else
    suma_red+=mat[k];
    }
    for(p=0;p<n;p++)
    {
    if(p==i)
    {

    }
    else
    suma_kol+=mat[p][j];
    }
    suma_kraj=suma_kol+suma_red;
    new_mat[j]=suma_kraj;

    }
    }

    printf("CITANJE NEW_MAT-KRAJ:\n");
    for(i=0;i<n;i++)
    {
    for(j=0;j<m;j++)
    printf("%d ",new_mat[j]);
    printf("\n");
    }









    }
     
  4. Vassiriki

    Vassiriki

    Член од:
    17 септември 2012
    Мислења:
    767
    Допаѓања:
    398
    Помош како би си решила задачава со рекурзија?
    [​IMG]
     
    На Derp му/ѝ се допаѓа ова.
  5. Derp

    Derp

    Член од:
    20 септември 2017
    Мислења:
    173
    Допаѓања:
    228
    #include <algorithm>
    #include <iostream>
    #include <math.h>
    #include <vector>

    int poramnet(int);

    int main() {

    std::vector<int> vecPoramnetiBroevi;

    std::cout << "Vnesi broj na broevi za vnes: ";
    int n;
    std::cin >> n;

    for (int i = 0; i < n; i++) {
    std::cout << "Vnesi broj: ";
    int broj;
    std::cin >> broj;

    int poramnetBroj = poramnet(broj);
    vecPoramnetiBroevi.push_back(poramnetBroj);
    }

    std::sort(std::begin(vecPoramnetiBroevi), std::end(vecPoramnetiBroevi));

    std::cout << "Broevite poramneti:\n";
    if (vecPoramnetiBroevi.size() >= 5) {
    for (std::vector<int>::size_type i = 0; i < 5; i++)
    std::cout << vecPoramnetiBroevi << " ";
    }
    else {
    for (std::vector<int>::size_type i = 0; i < vecPoramnetiBroevi.size(); i++)
    std::cout << vecPoramnetiBroevi << " ";
    }
    std::cout << '\n';

    return 0;
    }

    int poramnet(int a) {
    int poramnetBroj = 0;
    int vkupnoCifri = 0;

    while (a > 0) {
    int cifra = a % 10;
    if (cifra == 9)
    cifra = 7;

    poramnetBroj += cifra * pow(10, vkupnoCifri);

    vkupnoCifri++;
    a /= 10;
    }

    return poramnetBroj;
    }

    А задачиве од кај ги најдуваш ако не е тања? :icon_mrgr:
    Ако можиш и ако смееш пушти ми линк.
    Се надевам че го разбериш кодот. Ако не, слободно прашај.
     
  6. Vassiriki

    Vassiriki

    Член од:
    17 септември 2012
    Мислења:
    767
    Допаѓања:
    398
    Од финки ми се, по структурно програмирање, иначе рекурзивно треба, не со обична функција. Сепак фала.
     
  7. Бавареец

    Бавареец

    Член од:
    14 октомври 2017
    Мислења:
    52
    Допаѓања:
    13
    Дечки ми трба помош за утре: Напиши програма со која че се внесат 10 члена со cout наместо CIN. Тој шо се разбира нека помага. Знам да дојдам само до int main () и од тука надолу дибидус.
     
  8. staycalm

    staycalm Lets explore some shit

    Член од:
    12 јануари 2013
    Мислења:
    1.813
    Допаѓања:
    1.197
    Ми треба мало појаснување за еден краток код со for циклус, т.е. за излезот од кодот. Ако може некој да помогне ПП.
     
  9. VOLK2234

    VOLK2234 еврофоб и хомоскептик

    Член од:
    16 септември 2008
    Мислења:
    5.505
    Допаѓања:
    4.367
    Што ќе се деси?

    Код:
    void isOne(int i) {
        if (i == 1) printf("One\n");
        else printf("Launching nuclear missles! \n");
    }
    
    int main() {
        struct { int a:1; }s;
        s.a = 1;
        isOne(s.a);
        return 0;
    }
    
     
  10. Imperatorot

    Imperatorot

    Член од:
    9 февруари 2016
    Мислења:
    33
    Допаѓања:
    16
    Launching nuclear missles!
     
  11. Mr Animator

    Mr Animator

    Член од:
    1 ноември 2017
    Мислења:
    17
    Допаѓања:
    3
    Ај ве молам помош

    · Напиши програма за наоѓање на најголем заеднички делител на два цели броја.

    · Напиши програма за наоѓање на сите делители на природниот број n, n се внесува преку тастатура.

    · Испитај дали даден природен број n е прост или сложен.

    · Напиши програма за наоѓање на збирот на сите негативни броеви од n произволни броеви кои се внесуваат во циклусот , n се внесува преку тастатура .
     
  12. Forza Milan!!!

    Forza Milan!!!

    Член од:
    1 јуни 2011
    Мислења:
    19.456
    Допаѓања:
    29.158
    Не знам дали се за тебе ама ова се почетнички вежби и не треба друг ти пишува код. Пробај сам прво.
     
    На Dimitar171 му/ѝ се допаѓа ова.
  13. Mr Animator

    Mr Animator

    Член од:
    1 ноември 2017
    Мислења:
    17
    Допаѓања:
    3
    Ова ми треба за тест. Прв пат почнувам со програмирање па ми треба помош.

    Знам дека прост е оној кој се дели сам со себе и со еден. А сложен кој има најмалку еден делител. Знам се од ова фактички, но како во код?
     
  14. Forza Milan!!!

    Forza Milan!!!

    Член од:
    1 јуни 2011
    Мислења:
    19.456
    Допаѓања:
    29.158
    Ти ги пишав кодовите во порака и линкови од вакви почетнички програми за вежбање.
     
  15. Surte_Jr

    Surte_Jr

    Член од:
    4 септември 2018
    Мислења:
    1
    Допаѓања:
    0
    Здраво на сите!
    Нов сум на форумов, гледам дека има доста теми кои би ми помогнале околу школо со програмирањево.
    Да предложите некој сајтови или нешто слично што би ми помогнало?
     

Сподели преку: