Vaši Programi u C-u

poruka: 61
|
čitano: 25.013
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
Vaši Programi u C-u

Evo jedne teme gdje možete "iskrcavati" vaše programe napisane u C-u, nikad se ne zna možda nečije ideje budu nekome drugome korisne, a osim toga ovdje će sigurno biti dosta primjera jednostavnih stvari koje mogu dosta pomoći početnici...

Pravila:

1. piše se cijeli kod programa.

2. mora se napisati što taj program radi

3. ako je program zloćudne prirode autor je to dužan NAGLASITI a ne samo reći radi to i to..

4. držite se pravila...

IRebic
Poruka je uređivana zadnji put pon 7.2.2011 11:55 (IRebic).
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Vaši Programi u C-u

Evo odmah jedan moj, nešš jednostavno korisnik unese godinu a program ispisiva koje je to stoljeće i tisućljeće (radi i za godine P.K.)

 

#include<stdio.h>
#include<conio.h>
int a,b,st,ti;
main()
{
      printf("Upisite godinu i pritisnite ENTER ako je godina prije krista stavite predznak -\n");
      scanf("%d",&a);
      if(a>0)
      {
      st=a/100+1;
      ti=a/1000+1;
      printf("%d. godina je u %d. stoljecu i u %d. tisucljecu!",a,st,ti);
      }
      else
      {
      b=a*-1;
      st=b/100+1;
      ti=b/1000+1;
      printf("%d. godina prije krista je u %d. stoljecu prije krista i u %d. tisucljecu prije krista!",b,st,ti);
      }
      getch();
}

IRebic
Moj PC  
0 0 hvala 0
13 godina
offline
Vaši Programi u C-u

zanimljivo...to bi moglo pomoci recimo osnovcima kojima neide povijest i ne snalaze se bas u stoljecima....ja sam poceo ucit programirat evo ima tjedan dana i imam vec jednu ideju koja bi bila dobra...a poslije sa vizualnim poboljsanjem bi mogao cak i zaradit nesto za to....evo ideja....program za vodit evidanciju u videoteci...znaci da se upise ime prezime koji je broj clana i sto je posudio....zapravo baza podataka...to mi je prvi projekt cim naucim ove neke osnove programskog jezika

Hakiranje je umjetnost a ne zločin.
Moj PC  
0 0 hvala 0
15 godina
offline
RE: Vaši Programi u C-u

Zanimljiva tema :D

 

Ja ću priložiti svoja 2 programa.

 

Prvi program je prva verzija programa za praćenje nogometnih liga. U datoteku se upisuju rezultati, pokrene se program i u drugoj datoteci se dobije tablica.

LINK

 

Drugi program je kompliciraniji, radio sam ga za kolegij Mreže računala na faxu. Radi se 2 koda, jedan koji se vrti na računalu koji je Server, a drugi je za Klijenta. Igra se igra "pogodi broj". Server zamisli neki broj, a klijenti pogađaju. U svakom koraku server javlja da li je pogođeno, da li je broj manji ili veći od tog pokušaja. Igra je organizirana kao mala liga, gdje svaki igrač igra sa svakim. Na kraju svaki igrač dobije tablicu s bodovima.

LINK - pod Mreže računala

 

Na zadnjem linku ima kodova i za neke druge kolegije, možda će nekom biti korisno (pogotovo implementacije struktura podataka)

 

Uploadao sam jošneke programe koje sam davno rješavao. Bili su zadani na nekoj stranici za one koji vole programirat, pa neko interno natjecanje. Neki su jako trivijalni, a neki su nešto teži. Za one koji vole programirati svakako neka probaju. Ovi programi su pisani u C++u.

 

p.s. Isprike za nepridržavanje pravila oko postanja cijelog koda, ali kodovi su poveći pa ne bi baš imalo smisla cijele ih stavljat :D

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
Poruka je uređivana zadnji put pon 7.2.2011 12:47 (Luuka).
15 godina
offline
Vaši Programi u C-u

evo jedan koji sam sklepao u dvadesetak minuta

iz kôda se vidi sta radi

 

planiram ga kasnije "nadograditi" sa naprednijim mogućnostima Smijeh

 

#include <stdio.h>

int main (){

    float t;

    printf ("\tOVO JE PROGRAM KOJI POKAZUJE KOLIKO BI IZNOSILA\n"
          "\t   VASA TEZINA NA TIJELIMA SUNCEVOG SUSTAVA\n");
    printf("\n Unesite vasu tezinu: ");
    scanf("%f", &t);

    printf("\n Vasa tezina na tijelima Suncevog sustava bi izgledala ovako:\n\n");
    printf (" TIJELO    TEZINA u kg\n"
          " ------    -----------");

    printf("\n Sunce:    %7.2f kg", t*27.072);
    printf("\n Merkur:   %7.2f kg", t*0.378);
    printf("\n Venera:   %7.2f kg", t*0.907);
    printf("\n Zemlja:   %7.2f kg", t*1);
    printf("\n Mjesec:   %7.2f kg", t*0.166);
    printf("\n Mars:     %7.2f kg", t*0.377);
    printf("\n Jupiter:  %7.2f kg", t*2.364);
    printf("\n Saturn:   %7.2f kg", t*0.916);
    printf("\n Uran:     %7.2f kg", t*0.889);
    printf("\n Neptun:   %7.2f kg", t*1.125);

    getch();
    return 0;
}

Atomska bubamara
 
2 0 hvala 0
16 godina
neaktivan
offline
Vaši Programi u C-u

Evo jedan za zabavu, program simulira LOTO bubanj i izvlačenje kuglica 7/39

Na osnovu unesene kombinacije izračunava period i broj izvlačenja koji je potreban da bi se ta kombinacija dobila.

Naravno, za predviđanje izvlačenja je beskoristan jer radi na istom računu vjerojatnosti kao pravi bubanj.

Nadam se da ne smeta što je pisan u C++.

 

/* LOTO KOMBINACIJE */
/* NAPOMENA: PROGRAM SLUŽI SAMO U ZABAVNE SVRHE I POTPUNO JE BESKORISAN KOD IGRANJA LOTA - DA JE KORISTAN JA BI BIO BOGATAŠ */

#include<iostream>
#include<ctime>
#include <cstdlib>
using namespace std;

int vjerojatnost(int *loto, int br, int *niz, int brI,  int *m) {
    int  i = 0, j, k, l, s, pom ;
   
    srand((unsigned)time(0));

    for(i=0; i<10400000000000000; i++) {
       *m = (i+1);
       j = 0;
       niz[j] = (rand()%39) + 1;

       while(j<6) {
          j++;
          do {
             l = 0;

             niz[j] = (rand()%39) + 1;

             for(k=j; k>0; k--)
                if(niz[j] == niz[k-1])
                   l++;
          }while(l != 0);

       }
    for(j=0; j<6; j++)
       for(k=0; k<6-j; k++)
          if(niz[k+1]< niz[k]) {
             pom = niz[k];
             niz[k] = niz[k+1];
             niz[k+1] = pom;
          }

   
    s = 0;
    for(j=0; j<=6; j++)
       if(loto[j] == niz[j])
          s++;
   
    if(s == 7)
       return s;
}

return s;
}


void main() {
    int loto[7], niz[7],  i=0, j, pom, m, s;
    cout<< "Unesi 7 brojeva u kombinaciju - raspon brojeva<1-39>: " << endl;
    cout<< "Unesi 1. broj: ";
    cin>> loto[i];
    for(i=1; i<=6; i++) {

       do {
          cout<< "\nUnesi " << (i+1) << ". broj: ";
          cin>> loto[i];
          if(loto[i]<1 || loto[i]>39 )
             cout<< "\nBroj mora biti u rasponu <1-39>!";
          }while(loto[i]<1 || loto[i]>39);
      
       j = i;
       while (j>0) {
          if(loto[i] == loto[j-1]) {
             cout<< "\nBroj mora biti razlicit od prethodnih!";
             cout<< "\nUnesi " << (i+1) << ". broj: ";
             cin>> loto[i];
          }
          j--;
       }

          }

    for(i=0; i<6; i++)
       for(j=0; j<6-i; j++)
          if(loto[j+1] < loto[j]) {
             pom = loto[j];
             loto[j] = loto[j+1];
             loto[j+1] = pom;
          }
    cout<< "\nUnesena kombinacija: ";
    for(i=0; i<=6; i++)
       cout<<  loto[i] << " ";
    cout<< endl;


    s = vjerojatnost(loto, 7, niz, 7,  &m);

   
    if(s == 7) {
       cout<< "Kombinacija je pogodjena!!!";
       cout<< "\nDobitna kombinacija : " << endl;
       for(i=0; i<=6; i++)
          cout<< niz[i] << " ";
       cout<< "\nKombinacija je izvucena nakon: " << ((float)m/104) << " godina." << endl;
       cout<< "\nBroj izvlacenja za dobitnu kombinaciju: " << m << endl;
    }
    else {
       cout<< "Kombinacija nije pogodjena niti nakon: " << ((float)m/104) << " godina." << endl;
       cout<< "\nBroj izvlacenja: " << m << endl;
    }


   


    system("pause");


    }



 

 
0 0 hvala 0
15 godina
offline
RE: Vaši Programi u C-u

@Floki - jedna sugestija za tvoj program... kad već radiš u c++-u, možda je dobra ideja koristiti SET iz STLa. SET je struktura podataka koja automatski sortira elemente i drži po jednu kopiju svakog. Također postoje fje za provjeru da li je neki element unutra itd. Ušparao bi dosta linija koda, a možda bi bilo i brže zbog sortiranosti.

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
16 godina
neaktivan
offline
RE: Vaši Programi u C-u
Luuka kaže...

@Floki - jedna sugestija za tvoj program... kad već radiš u c++-u, možda je dobra ideja koristiti SET iz STLa. SET je struktura podataka koja automatski sortira elemente i drži po jednu kopiju svakog. Također postoje fje za provjeru da li je neki element unutra itd. Ušparao bi dosta linija koda, a možda bi bilo i brže zbog sortiranosti.

Istina, ovo sam napravio na nivou znanja petlji i funkcija, sad bi tako kako kažeš

15 godina
neaktivan
offline
RE: Vaši Programi u C-u
FiCoO kaže...

zanimljivo...to bi moglo pomoci recimo osnovcima kojima neide povijest i ne snalaze se bas u stoljecima....ja sam poceo ucit programirat evo ima tjedan dana i imam vec jednu ideju koja bi bila dobra...a poslije sa vizualnim poboljsanjem bi mogao cak i zaradit nesto za to....evo ideja....program za vodit evidanciju u videoteci...znaci da se upise ime prezime koji je broj clana i sto je posudio....zapravo baza podataka...to mi je prvi projekt cim naucim ove neke osnove programskog jezika

 Ovo što si nabrojao je tipični zadatak na nekim završnim kolokvijima naših veleučilišta informatičkog smjera ali u C#-u i ASP.Net-u i SQL bazom podataka ,naravno i ADO je uključen.Mislim da bi trebao proći malo više od osnova ali svaki trud se nagrađuje :)...inače tema je odlična ako se ne ode u off topic.

 

 

 

Private
Poruka je uređivana zadnji put pon 7.2.2011 15:36 (Private).
13 godina
offline
RE: Vaši Programi u C-u

oke....ali ja sam osmas samo da znas i jako me zanima programiranje....i posudio sam knjigu od frendove sestre C jezik od tatjane stranjak i vesne tomic....dobra knjiga za pocetak?

Hakiranje je umjetnost a ne zločin.
15 godina
neaktivan
offline
RE: Vaši Programi u C-u
FiCoO kaže...

oke....ali ja sam osmas samo da znas i jako me zanima programiranje....i posudio sam knjigu od frendove sestre C jezik od tatjane stranjak i vesne tomic....dobra knjiga za pocetak?

 ....samo naprijed jer ako dobro svladaš bilo koji jezik iz "c porodice" jezika odlično !.....Za početak su sve knjige dobre a kad budeš razumio i naučio dosta primjera i sam češ shvatiti koja ti je knjiga potrebna za nastavak.

 

Private
13 godina
offline
RE: Vaši Programi u C-u

pa zanima me programiranje i racunalna tehnologija i sad me zanima ako znas mozda ili neki prijedlog kaj bi mogao upisat..prolazim sa 5 i neznam sto bi mogao upisat...gimnaziju pa recimo FER ili odmah strukovnu?

n00binator
15 godina
offline
RE: Vaši Programi u C-u
FiCoO kaže...

pa zanima me programiranje i racunalna tehnologija i sad me zanima ako znas mozda ili neki prijedlog kaj bi mogao upisat..prolazim sa 5 i neznam sto bi mogao upisat...gimnaziju pa recimo FER ili odmah strukovnu?

Otišli smo u offtopic, ali ako te toliko zanima onda matematička gimnazija, pa kasnije kako ćeš već htjet. Ima više faxeva sa jakim računarstvom (FER,PMF), sve ovisi o tvojim preferencijama.

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
13 godina
offline
Vaši Programi u C-u

sorry za offtopic....al mi je bilo vazno

n00binator
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
RE: Vaši Programi u C-u
FiCoO kaže...

pa zanima me programiranje i racunalna tehnologija i sad me zanima ako znas mozda ili neki prijedlog kaj bi mogao upisat..prolazim sa 5 i neznam sto bi mogao upisat...gimnaziju pa recimo FER ili odmah strukovnu?

Lakši put: strukovna pa TVZ.

Teži put: gimnazija pa FER.

 

Na kraju je to tvoj život i tvoja odluka.

13 godina
offline
RE: Vaši Programi u C-u

bas kad ti ocu poslat pp tebi su pp iskljucene...evo ovo je zadnja offtopic poruka....jel sa ferom imam vise mogucnosti nego sa TZV ili kako vec?

n00binator
14 godina
neaktivan
offline
filestat.c

/*
 * Program ispisuje ucestalost pojavljivanja odredjenih
 * bajtova u datoteci i sortira rezultat
 *
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


typedef long count_t;
typedef unsigned char byte_t;

#define BYTE_NUM 256




typedef struct {
    byte_t b;
    count_t count;
} Co;

typedef struct {
    Co dat[BYTE_NUM];
    count_t uk;
} Co_Data;



int CompareByCount(const void *lhs, const void *rhs) {
   
    if( ((Co*)lhs)->count < ((Co*)rhs)->count ) return -1;
   
    if( ((Co*)lhs)->count > ((Co*)rhs)->count ) return 1;

    return 0;
}

void Co_Data_init(Co_Data *d) {
    int i;
    d->uk=0;
    for(i=0;i!=BYTE_NUM;++i) {
        d->dat[i].b = i;
        d->dat[i].count = 0;
    }
}

void ProcessFile(FILE *src, Co_Data *d) {
    int c;
    while( (c = getc(src)) != EOF ) {
        ++d->dat[c].count;
        ++d->uk;
    }
}

void help(const char *prg) {
    printf("filestat\n");
    printf("usage:\n");
    printf("\t%s <filename> read from file filename\n",prg);
    printf("\t%s <-> read from stdin\n",prg);
}


int main(int argc, char** argv) {
    const char *filename;
    FILE *file;
    Co_Data data;

    if(argc != 2) {
        help(argv[0]);
        exit(-1);
    }

    if(argc == 2) {
        filename = argv[1];
        if(strcmp(filename,"-")) {
            file = fopen(filename, "r");
            if(!file) {
                printf("Error opening %s\n",filename);
                exit(1);
            }
        }
        else file = stdin;

        Co_Data_init(&data);
        ProcessFile(file,&data);

        qsort(data.dat, BYTE_NUM, sizeof(Co), &CompareByCount);

        printf("Byte\tCount\t\tPercent\n");
       
        int i;
        for(i=0;i!=BYTE_NUM;++i) {
            Co *c = &data.dat[i];
            printf("0x%x\t%ld\t\t%.3f%%\n",c->b, c->count,
                ((float)c->count/data.uk)*100 );
        }

    }

   

    return 0;
}

 

Zanimljivo je da izvršne datoteke npr. imaju najvise nula, tekstualne će imat najvise ASCII znakova, a slike i muzika podjednako svih vrijenosti.

 

@FiCoO uz FER i PMF imaš i odličan FESB u Splitu te ETF u Osijeku

 
1 0 hvala 1
14 godina
neaktivan
offline
Vaši Programi u C-u

Evo jedan moj, možda nekome bude koristan. Radi se o programu koji računa životne bodove u igri Yu-Gi-Oh, zapravo radi sve ono što inače treba pisati po papiru, samo urednije.

 

Kod:

 

#include<iostream>
#include<conio.h>
using namespace std;


int main()
{
      system("Title Yu-Gi-Oh - Racunanje zivotnih bodova");
      int M, T, x,;
      char ime1[20], ime2[20];
      char i;

      cout << "Dobro dosli.\nOvaj program ce vam pomoci u racunanju zivotnih bodova u igri Yu-Gi-Oh.\n\n";
     
      unos: cout << "Unesite ime prvog igraca: ";         //Upis imena igrača, od tu...
      cin >> ime1;
      cout << "\nUnesite ime drugog igraca: ";
      cin >> ime2; cout << endl;                          //...do tu.

      if(ime1[0] == ime2[0])                              //Provjera imena.
      {
      system("CLS");
      cout << "Nazalost, aplikacija ne radi pravilno ako imena igraca pocinju istim slovom.";
      cout << "\nOvaj problem mozete rijesiti tako da jedan od igraca stavi neko drugo ime.\n";
      cout << "Ponoviti cemo unos imena:\n";
      goto unos;
      }
      cout << "Unesite pocetni broj zivotnih bodova: ";   //Unos zivotnih bodova.
      cin >> M; cout << endl;
      T=M;
      system("CLS");                                      //Cisti ekran.

     
      cout << "Za oduzimanje bodova igracima pritisnite '"<<ime1[0]<<"' ili '"<<ime2[0]<<"'. ";           //Upute.
      cout << "\nNpr. naredba '"<<ime2[0]<<" 300' ce oduzeti igracu "<< ime2 << " 300 zivotnih bodova. \n";
      cout << "\nZivotni bodovi:\n" << ime1 << " - " << M << ", " << ime2 << " - " << T << ".\n";
     
     
     
      do                            //Petlja koja se vrti dok broj zivotnih bodova ne iznosi 0 (ili manje).
      {
                cout << "\nDalje? ";     
                cin >> i >> x;
                system("CLS");
                if(i==ime1[0])
                {
                cout << ime1 << " gubi "<< x << " zivotnih bodova.\n\n";
                M=M-x;
                if(M<0) M=0;
                cout << "Zivotni bodovi:\n"<<ime1<<" - " << M << ", "<<ime2<<" - " << T << ".\n";
                }
                else if(i==ime2[0])
                {
                cout << ime2 <<" gubi " << x << " zivotnih bodova.\n\n";
                T=T-x;
                if(T<0) T=0;
                cout << "Zivotni bodovi:\n"<<ime1<<" - " << M << ", "<<ime2<<" - " << T << ".\n";
                }
                else
                cout << "Molimo unesite prvo slovo imena igraca.\n"<<ime1[0]<<" za igraca "<<ime1<<", a "<<ime2[0]<<" za igraca "<<ime2<<".";
      }while((M>0) && (T>0));
     
      if(M<=0)                          //Objava pobjednika.
      {M=0;
      cout << "\n"<<ime1<<" je pao na nula zivotnih bodova!\n\n"<<ime2<<" zasluzeno odnosi pobjedu!";}
      else if (T<=0)
      {T=0;
      cout << "\n"<<ime2<<" je pao na nula zivotnih bodova!\n\n"<<ime1<<" zasluzeno odnosi pobjedu!";}
        
     
     
      getch();
      return 0; 
}

 

Prihvaćam kritike i prijedloge.

Poruka je uređivana zadnji put sub 12.2.2011 16:08 (betmen).
 
0 0 hvala 0
13 godina
offline
Re: Vaši Programi u C-u
betmen kaže...

Evo jedan moj, možda nekome bude koristan. Radi se o programu koji računa životne bodove u igri Yu-Gi-Oh, zapravo radi sve ono što inače treba pisati po papiru, samo urednije.

 

Kod:

 

#include<iostream>
#include<conio.h>
using namespace std;


int main()
{
      system("Title Yu-Gi-Oh - Racunanje zivotnih bodova");
      int M, T, x,;
      char ime1[20], ime2[20];
      char i;

      cout << "Dobro dosli.\nOvaj program ce vam pomoci u racunanju zivotnih bodova u igri Yu-Gi-Oh.\n\n";
     
      unos: cout << "Unesite ime prvog igraca: ";         //Upis imena igrača, od tu...
      cin >> ime1;
      cout << "\nUnesite ime drugog igraca: ";
      cin >> ime2; cout << endl;                          //...do tu.

      if(ime1[0] == ime2[0])                              //Provjera imena.
      {
      system("CLS");
      cout << "Nazalost, aplikacija ne radi pravilno ako imena igraca pocinju istim slovom.";
      cout << "\nOvaj problem mozete rijesiti tako da jedan od igraca stavi neko drugo ime.\n";
      cout << "Ponoviti cemo unos imena:\n";
      goto unos;
      }
      cout << "Unesite pocetni broj zivotnih bodova: ";   //Unos zivotnih bodova.
      cin >> M; cout << endl;
      T=M;
      system("CLS");                                      //Cisti ekran.

     
      cout << "Za oduzimanje bodova igracima pritisnite '"<<ime1[0]<<"' ili '"<<ime2[0]<<"'. ";           //Upute.
      cout << "\nNpr. naredba '"<<ime2[0]<<" 300' ce oduzeti igracu "<< ime2 << " 300 zivotnih bodova. \n";
      cout << "\nZivotni bodovi:\n" << ime1 << " - " << M << ", " << ime2 << " - " << T << ".\n";
     
     
     
      do                            //Petlja koja se vrti dok broj zivotnih bodova ne iznosi 0 (ili manje).
      {
                cout << "\nDalje? ";     
                cin >> i >> x;
                system("CLS");
                if(i==ime1[0])
                {
                cout << ime1 << " gubi "<< x << " zivotnih bodova.\n\n";
                M=M-x;
                if(M<0) M=0;
                cout << "Zivotni bodovi:\n"<<ime1<<" - " << M << ", "<<ime2<<" - " << T << ".\n";
                }
                else if(i==ime2[0])
                {
                cout << ime2 <<" gubi " << x << " zivotnih bodova.\n\n";
                T=T-x;
                if(T<0) T=0;
                cout << "Zivotni bodovi:\n"<<ime1<<" - " << M << ", "<<ime2<<" - " << T << ".\n";
                }
                else
                cout << "Molimo unesite prvo slovo imena igraca.\n"<<ime1[0]<<" za igraca "<<ime1<<", a "<<ime2[0]<<" za igraca "<<ime2<<".";
      }while((M>0) && (T>0));
     
      if(M<=0)                          //Objava pobjednika.
      {M=0;
      cout << "\n"<<ime1<<" je pao na nula zivotnih bodova!\n\n"<<ime2<<" zasluzeno odnosi pobjedu!";}
      else if (T<=0)
      {T=0;
      cout << "\n"<<ime2<<" je pao na nula zivotnih bodova!\n\n"<<ime1<<" zasluzeno odnosi pobjedu!";}
        
     
     
      getch();
      return 0; 
}

 

Prihvaćam kritike i prijedloge.

kolliko imas godina?{#}

n00binator
15 godina
offline
Re: Vaši Programi u C-u
FiCoO kaže...

kolliko imas godina?{#}

nije važno kolko ima godina, važno je da zna programirat Belji se

Atomska bubamara
13 godina
neaktivan
offline
Vaši Programi u C-u

 

Programski jezik: C

Godina: 2006 (taman kad sam naučio for petlju :D)

Opis: Program ispisuje sve petke 13-e u godini koju unesete (iz 21. stoljeća i nadalje)

Način rada: Sjećam se samo da samo jedno pola sata vremena promatrao kalendar i kako se ponašaju dani iz godine u godinu i iz mjeseca u mjesec i tako našao način. :D

 

Kod:

 

 

#include<conio.h>

#include<stdio.h>

 

void main (void)

{

   unsigned int i, god, dan, m;

   int pdan, kor=0;

 

   clrscr();

   printf("Unesi godinu iz 21. stolje†a: ");

   scanf("%u", &god);

   printf("--------------------------------------------------------");

 

   for(i=2001, dan=1; i<god; i++, dan++)

   {

     if(i%4==0 && i%400!=0)

           dan+=1;

   }

   if(dan==7)

        dan=0;

   pdan=dan%7;

   if(pdan==7)

         pdan=0;

 

   for(m=1; m<=12; m++, pdan=(pdan+kor)%7)

   {

     switch(m)

     {

       case 1: if(pdan==0)

              printf("\n\n   13. sijeźnja %u.", god);

           kor=3;

       break;

       case 2: if(pdan==0)

              printf("\n\n   13. veljaźe %u.", god);

           if(god%4==0 && god%400!=0)

               kor=1;

           else

               kor=0;

       break;

       case 3: if(pdan==0)

              printf("\n\n   13. o§ujka %u.", god);

           kor=3;

       break;

       case 4: if(pdan==0)

              printf("\n\n   13. travnja %u.", god);

           kor=2;

       break;

       case 5: if(pdan==0)

              printf("\n\n   13. svibnja %u.", god);

           kor=3;

       break;

       case 6: if(pdan==0)

              printf("\n\n   13. lipnja %u.", god);

           kor=2;

       break;

       case 7: if(pdan==0)

              printf("\n\n   13. srpnja %u.", god);

           kor=3;

       break;

       case 8: if(pdan==0)

              printf("\n\n   13. kolovoza %u.", god);

           kor=3;

       break;

       case 9: if(pdan==0)

              printf("\n\n   13. rujna %u.", god);

           kor=2;

       break;

       case 10: if(pdan==0)

              printf("\n\n   13. listopada %u.", god);

            kor=3;

       break;

       case 11: if(pdan==0)

              printf("\n\n   13. studenog %u.", god);

            kor=2;

       break;

       case 12: if(pdan==0)

              printf("\n\n   13. prosinca %u.", god);

            kor=3;

       break;

 

     }

   }

   getch();

}

 

 
1 0 hvala 0
16 godina
moderator
offline
Re: Vaši Programi u C-u
BolestanUm kaže...

 

   for(m=1; m<=12; m++, pdan=(pdan+kor)%7)

   {

     switch(m)

     {

       case 1: if(pdan==0)

              printf("\n\n   13. sijeźnja %u.", god);

           kor=3;

       break;

       case 2: if(pdan==0)

              printf("\n\n   13. veljaźe %u.", god);

           if(god%4==0 && god%400!=0)

               kor=1;

           else

               kor=0;

       break;

       case 3: if(pdan==0)

              printf("\n\n   13. o§ujka %u.", god);

           kor=3;

       break;

       case 4: if(pdan==0)

              printf("\n\n   13. travnja %u.", god);

           kor=2;

       break;

       case 5: if(pdan==0)

              printf("\n\n   13. svibnja %u.", god);

           kor=3;

       break;

       case 6: if(pdan==0)

              printf("\n\n   13. lipnja %u.", god);

           kor=2;

       break;

       case 7: if(pdan==0)

              printf("\n\n   13. srpnja %u.", god);

           kor=3;

       break;

       case 8: if(pdan==0)

              printf("\n\n   13. kolovoza %u.", god);

           kor=3;

       break;

       case 9: if(pdan==0)

              printf("\n\n   13. rujna %u.", god);

           kor=2;

       break;

       case 10: if(pdan==0)

              printf("\n\n   13. listopada %u.", god);

            kor=3;

       break;

       case 11: if(pdan==0)

              printf("\n\n   13. studenog %u.", god);

            kor=2;

       break;

       case 12: if(pdan==0)

              printf("\n\n   13. prosinca %u.", god);

            kor=3;

       break;

 

     }

   }

   getch();

}

 

 

Jao, kako mene ta zalihost bode u oko... Nije mi jasno zašto se switch tako često tako pogrešno koristi. Naime, iz tvog koda je očito da za svaki slučaj u switchu ispituješ identičan uvjet i ispisuješ naredbu kojoj "parametar" (mjesec) ovisi o vrijednosti koju switchas. Znači, tu postoji jasno vidljiva veza, stoga je taj uvjet i printf trebalo izvaditi van iz switcha. I kad se to napravi, postaje očito da se ova dodijeljivanja vrijednosti varijabli kod mogu grupirati. Dakle, ta for-petlja je trebala izgledati ovako:

 

      char mjeseci [12][10] = { "sijecnja", "veljace", "ozujka", "travnja", "svibnja", "lipnja", "srpnja", "kolovoza", "rujna", "listopada", "studenog", "prosinca" };
 
      if (pdan==0) printf("\n\n   13. %s %u.", mjeseci[m-1], god);

      switch (m) {
         case 2:  kor = (god%4==0 && god%400!=0) ? 1 : 0; break;
         case 4:
           case 6:
           case 9:
           case 11: kor=2; break;
         default: kor=3;
      } 

 

I to je to!

16 godina
moderator
offline
Re: Vaši Programi u C-u
betmen kaže...

      unos: cout << "Unesite ime prvog igraca: ";         //Upis imena igrača, od tu...
      ...
      goto unos;

 

Prihvaćam kritike i prijedloge.

Ti si prvo učio BASIC, zar ne? Korištenje naredbe goto bez nekog posebnog razloga nije preporučljivo. Kad si zadnji put vidio da je netko napisao program uz korištenje naredbe goto? Recimo ovdje na forumu? To se jednostavno ne radi. Napraviš petlju iz koje se izlazi kad su zadovoljeni svi uvjeti, a ne da ručno skačeš prema početku programa kad skužiš da uvjeti nisu zadovoljeni.

13 godina
neaktivan
offline
Re: Vaši Programi u C-u

Hahah, samo sam čeka kad ce neko citirat. je u pravu si potpuno. Al ovo sam napisao nakon nekih 2 mjeseca mojih početaka programiranja još u srednjoj. Znaci praktički nisam bio spreman baratati s matricama itd. zato je takav kod kakav je. Samo sam ga sada copy- paste :D 

Divide et Impera! ( :
13 godina
neaktivan
offline
Vaši Programi u C-u

Sva sve ljubitelje i korisnike naredbe "goto". Poukahttp://xkcd.com/292/ {#}

Divide et Impera! ( :
 
2 0 hvala 0
14 godina
neaktivan
offline
Re: Vaši Programi u C-u
FiCoO kaže...

kolliko imas godina?{#}

18, zašto pitaš?

mbaksa kaže...
betmen kaže...

      unos: cout << "Unesite ime prvog igraca: ";         //Upis imena igrača, od tu...
      ...
      goto unos;

 

Prihvaćam kritike i prijedloge.

Ti si prvo učio BASIC, zar ne? Korištenje naredbe goto bez nekog posebnog razloga nije preporučljivo. Kad si zadnji put vidio da je netko napisao program uz korištenje naredbe goto? Recimo ovdje na forumu? To se jednostavno ne radi. Napraviš petlju iz koje se izlazi kad su zadovoljeni svi uvjeti, a ne da ručno skačeš prema početku programa kad skužiš da uvjeti nisu zadovoljeni.

Ne! :)

 

C++ mi je prvi (i zasad jedini) programski jezik.


A što se tiče goto naredbe - znam da je svi pravi programeri izbjegavaju, to piše i u knjizi iz koje trenutno učim. Ali tamo i piše ovo: "Ako naredba goto može pomoći da program bude čitljiviji, nema razloga da se ona ne upotrijebi." Zato sam je ubacio...

 

A zašto se goto toliko izbjegava? Može neki link ili nešto?

16 godina
moderator
offline
Re: Vaši Programi u C-u
betmen kaže...
A što se tiče goto naredbe - znam da je svi pravi programeri izbjegavaju, to piše i u knjizi iz koje trenutno učim. Ali tamo i piše ovo: "Ako naredba goto može pomoći da program bude čitljiviji, nema razloga da se ona ne upotrijebi." Zato sam je ubacio...

Pogrešno si pokopčao stvari. Zbog goto naredbe tvoj program nije čitljiviji - upravo suprotno - tu se izgubila hijerarhijska struktura i kad dođeš do naredbe goto, onda ideš po kodu tražit gdje si stavio oznaku na koju će program skočiti.

 

betmen kaže...

A zašto se goto toliko izbjegava? Može neki link ili nešto?

Zato jer ruši strukturu programa. Od jedne goto naredbe u funkciji nije nitko poginuo, ali naredba do naredbe i imaš kaos. Zato je bolje uopće je ne koristiti. Osim ako za to zaista imaš opravdan razlog. Ti ga u onom programu nisi imao. Ajde pokušaj sad taj program srediti tako da nema goto naredbu.

 

 

http://www.u.arizona.edu/~rubinson/copyright_violations/Go_To_Considered_Harmful.html

 

Poruka je uređivana zadnji put ned 13.2.2011 17:47 (mbaksa).
15 godina
neaktivan
offline
Re: Vaši Programi u C-u

...goto naredba je čista katastrofa ,najradije bih da je nema ali eto još uvijek ima knjiga i autora koji to potiču...šteta ,naravno ovo je moje mišljenje jer par puta mi je takav nered napravila da je čitav dio koda koji  nije malen trebao biti pisan ispočetka ,tko to ne doživi taj će koristiti goto zmijurinu !

Private
Poruka je uređivana zadnji put ned 13.2.2011 19:02 (Private).
14 godina
neaktivan
offline
Re: Vaši Programi u C-u
betmen kaže...
A zašto se goto toliko izbjegava? Može neki link ili nešto?

Tesko je ovako objasniti dok se ne opeces pa sam vidis :D

 

Ja s vremena na vrijeme radim u assembleru gdje za uvjetno grananje mozes koristiti samo kojekakve jump instrukcije koje funkcioniraju kao goto, i kad se stvari zakompliciraju postaje stvarno tesko pratiti sve te skokove po kôdu.

 

Ako stvarno zelis shvatiti zasto je goto los, probaj napisati neki malo kompliciraniji kôd koji koristi samo goto...

 

tipa:

if (nesto) goto blabla;

else goto lolololo;

Look at you, hacker. A pathetic creature of meat and bone, panting and sweating as you run through my corridors. How can you challenge a perfect, immortal machine?
16 godina
neaktivan
offline
Re: Vaši Programi u C-u
FiCoO kaže...
betmen kaže...

Evo jedan moj, možda nekome bude koristan. Radi se o programu koji računa životne bodove u igri Yu-Gi-Oh, zapravo radi sve ono što inače treba pisati po papiru, samo urednije.

 

Kod:

 

... 

Prihvaćam kritike i prijedloge.

kolliko imas godina?{#}

 Dobar je program, a godine nisu bitne...

svaka čast 

IRebic
Nova poruka
E-mail:
Lozinka:
 
vrh stranice