Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zajednicki projekat u C

[es] :: C/C++ programiranje :: Zajednicki projekat u C

[ Pregleda: 2380 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

hajduk7

Član broj: 132919
Poruke: 435
*.dynamic.sbb.rs.



+3 Profil

icon Zajednicki projekat u C01.06.2009. u 22:48 - pre 146 meseci
Ljudi aj ovako cemo, evo dajem vam prog koji sam ja napravio iz zezanje malo cisto da oprobam svoje znanje u C a vi sve sto vam padne napamet dopisite za ovaj prog.
Code:
#include <stdio.h>
#include <stdlib.h>
main()
{
    char predmet[50];
    float g,p,k,o,l,h;
    int izaberi;
    printf("**DOBRODOSLI U OBICAN PROGRAM ZA IZRACUNAVANJE SKOLSKOG PROSEKAA**\n");
    printf("*\tPROGRAM ZA IZRACUNAVANJE SKOLSKOG PROSEKA              *\n");
    printf("*ZA OSNOVNU I SREDNJU SKOLU. U PROGRAMU JE ZABRANJENO UNOSITI *\n");
    printf("*OCENE MANJE OD 1 ILI VECE OD 5                        *\n");
    printf("*UKOLIKO SE TO DESI PROGRAM CE TRAZITI DA KRENETE OD POCETKA    *\n");
    printf("*SA UNOSOM BROJA PREDMETA I NJIHOVIH OCENA                    *\n");
lab:
    printf("\n");
    printf("UNESI KOLIKO PREDMETA ZELISH DA IZRACUNAS\n");
    scanf("%f",&p);
    g=1;
    l=0;
    while(k<=p) {
        printf("UNESI IME PREDMETA%.0f\n",k);
        scanf("%s",&predmet);
        printf("\n");
        printf("UNESI OCENU IZ %s\n",&predmet);
        scanf("%f",&o);
        printf("\n");
        if (o<1 || o>5) { 
            printf("GRESKA PRI UNOSU OCENA MANJA OD 1 A VECA OD 5 NE POSTOJI\n");
            goto lab;
        }
        l+=o;
        h=l/p;
        k+=g;
    }
    if (h>=1 && h<1.50) {
        printf("NEDOVOLJAN\n");
        }
        if (h>=1.50 && h<2.50) {
        printf("DOVOLJAN\n");
    }
    if (h>=2.50 && h<3.50) {
        printf("DOBAR\n");
    }
    if (h>=3.50 && h<4.50) {
        printf("VRLO DOBAR\n");
    }
    if (h>=4.50 && h==5) {
        printf("BRAVO!!! SVAKA CAST!!! PROGRAMER KOJI JE NAPISAO OVAJ PROGRAM TI CESTITA NA ODLICNOM USPEHU\n");
    }
    printf("PROSEK JE %.2f\n",h);
lab1:
    printf("Izaberi broj 1 il 2 1 ako hoces ponovo da racunas prosek a 2 za kraj programa\n");
        scanf("%d",&izaberi);
        switch(izaberi) {
            case 1: main(); break;
            case 2: goto asd; break;
            default : printf("GRESKA UNESEN JE POGRESAN BROJ\n");
            goto lab1;
        }
asd:
        return 0;
}

Ako te snadje muka pozovi hajduka
Pazi se hajduka ako ga snjadje muka
 
Odgovor na temu

hajduk7

Član broj: 132919
Poruke: 435
*.dynamic.sbb.rs.



+3 Profil

icon Re: Zajednicki projekat u C03.06.2009. u 16:03 - pre 146 meseci
Posto vidim da niko nece da prosiruje ovaj program onda mi makar kazite kako da napravim da mogu da se imenuju predmeti gde ima razmaka i da kad neko pokusa slovo da unese gde treba broj da prijavi gresku i ponovo zatrazi od korisnika da unese broj.
Ako te snadje muka pozovi hajduka
Pazi se hajduka ako ga snjadje muka
 
Odgovor na temu

Struja01
Beograd

Član broj: 166347
Poruke: 190



Profil

icon Re: Zajednicki projekat u C04.06.2009. u 18:15 - pre 146 meseci
Imas par nepravilnosti u programu: float g,p,k,o,l,h; , par njih trebaju da budu na int...
Evo ja sam se dohvatio tvog programa i solidno sam se namucio :)
Postavicu dve vervije. V1 ne detektuje slovo i kad se unese slovo program beskonacno ponavlja nesto sto ne treba da radi! Dakle to je obicni programcic.
Druga verzija detektuje slovo ili bilo koji drugi znak i daje programu do znanja o cemu je rec. Ako bi neko zna laksi nacin za detekciju slova bilo bi lijepo kad bi izneo ovde posto me zanima.
Pozdrav!

V1

Code:

//BEZ FUNCKCIJE NE DETEKTUJE SLOVO I TADA NASTAVLJA BESKONACAN RAD
#include <stdio.h>
#include <stdlib.h>
#define mrxx 20
main()
{
    char predmet[mrxx][mrxx],p[2+1];
    int ocena[mrxx],suma=0;
    int i; 
    float prosek;

    printf("****************************************************************************\n");
    printf("**** DOBRODOSLI U OBICAN PROGRAM ZA IZRACUNAVANJE SKOLSKOG PROSEKA      ****\n");
    printf("**** ZA OSNOVNU I SREDNJU SKOLU. U PROGRAMU JE ZABRANJENO UNOSITI       ****\n");
    printf("**** AKO UNESETE OCENE MANJE OD 1 ILI 5 MORACETE OSTVARITI PONOVNI UNOS ****\n"); 
    printf("****************************************************************************\n");
    
    while(1)
    {
    do
    {
    printf("\UNESI BROJ PREDMETA IZ KOJIH ZELIH DA RACUNAR PROSEK, AKO UNESES \"0\" IZLAZIS IZ PROGRAMA:\n");
    scanf("%d",&p);
    }
    while ( p<0 || p>17 );

    if(p==0)
        break;
    
    fflush(stdin);
    for ( i=0;i<p;i++ )
    {
        printf("Unesi %d predmet:\n",i+1);
        gets(predmet[i]);
        fflush (stdin);
    }

    printf("\nUNOS OCENA:\n");

    for (i=0;i<p;i++)
    {
        printf("Unesi celobrojnu ocenu od 1 do 5 iz predmeta %s : ", predmet[i]);
        scanf("%d",&ocena[i]);
        printf("\n");
        if(ocena[i]<1 || ocena[i]>5)
        {
            printf("Pogresna ocena\n");
            printf("Unesite ponovo");
            i--;
        }
    }
    
    for (i=0;i<p;i++)
        suma += ocena[i] ;

    prosek = (float)suma / p ;

    printf("\nPredmete i ocena koje ste uneli su:\n");
    for(i=0;i<p;i++)
    {
        printf("%d.  %s\t%d.\n",i+1,predmet[i],ocena[i]);
    }
    printf("\nA prosek je : %.2f\n\n",prosek);
    }
}


V2
Code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define mrxx 17

int broj(char c[3]); //funkcija za ispitivanje prolaza petlje

int ocena_(char c[mrxx]);

main()
{
    char predmet[mrxx][mrxx],m[2+1],t,ocena[mrxx][2];
    char suma='0';
    int k,w;
    int i,p; 
    float prosek,g;

    printf("**********************************************************************************\n");
    printf("**** DOBRODOSLI U OBICAN PROGRAM ZA IZRACUNAVANJE SKOLSKOG PROSEKA            ****\n");
    printf("**** PROGRAM JE ZA OSNOVNU I SREDNJU SKOLU. MAKSIMALNI BR. PREDMETA JE 17     ****\n");
    printf("**** AKO UNESETE OCENE MANJE OD 1 ILI 5 MORACETE OSTVARITI PONOVNI UNOS       ****\n"); 
    printf("**********************************************************************************\n");
    
    while(1)  //neprestano ponavljanje programa
    {
    do
    {
    printf("\nUNESI BROJ PREDMETA IZ KOJIH ZELIH DA RACUNAR PROSEK, AKO UNESES \"0\" IZLAZIS IZ PROGRAMA:\n");
    scanf("%s",&m);
    t=broj(m);//String m ide u funkciju

    }
    while ( m[0]<48 || m[0]>57 || t==0); //Ako "m" nije broj ponavljaj program 
                                         //I ako t==0 ponavljaj program

    if(t==1)
        p=m[0]-48; //Ako ste uneli jednocifren broj
    if(t==2)
        p = ((m[0]-48)*10)+(m[1]-48); //Ako ste uneli dvocifren broj


    if(p==0)
        break;
    
    fflush(stdin);
    for ( i=0;i<p;i++ )
    {
        printf("Unesi %d predmet:\n",i+1);
        gets(predmet[i]);
        fflush (stdin);
    }

    printf("\nUNOS OCENA:\n");

    for (i=0;i<p;i++)
    {
        printf("Unesi celobrojnu ocenu od 1 do 5 iz predmeta %s : ", predmet[i]);
        gets(ocena[i]);
        printf("\n");
        k=ocena_(ocena);
        if(ocena[i][0]<49 || ocena[i][0]>53 || k==0 )
        {
            printf("Pogresna ocena\n");
            printf("Unesite ponovo\n");
            i--;
        }
        fflush(stdin);
    }
        suma = '0';
        suma = suma-48;
    for (i=0;i<p;i++)
     suma = suma + (ocena[i][0]-48) ;


    prosek = (float) suma / p ;
    

    printf("\nPredmete i ocena koje ste uneli su:\n");
    printf("\n PREDMET\t\tOCENA\n\n");
    for(i=0;i<p;i++)
    {
        printf("%d. %s",i+1,predmet[i]);
        printf("\t\t\t%s\n",ocena[i]);
            
    }
    printf("\nA prosek je : %.2f\n\n",prosek);
    }
}

int broj(char c[3]) //funkcija za ispitivanje prolaza iz petlje

{
    int r=0,l;

    l=strlen(c);

    if (l>1 && l<=2) //Ako ste uneli dvocifren broj
    {
        if(c[0]>49 || c[1]>55) //Ako taj dvocifreni nije u opsegu 1-17 r=0, a tamo t=0 
            r=0; 
        else
            r=2; //Ako je u opsegu program nastavlja dalje ali daje r=2 tj. t=2 
                 //da znamo da je rec o dvocifrenom broju
    }
    if (l==1)
    {
        r = 1; //Ovde je r=1 tj. t=1 daje do znanja da je unet jednocifren broj
    }
    if (l>2)
        r=0;

    return r; //Funckija vraca odgovarajucu vrednost
}

int ocena_(char c[mrxx][2])
{
    int i,l,r;

    l=strlen(c);
    if(l>1)
        r=0;
    if(l==1)
        r=1;

    return r;
}
 
Odgovor na temu

hajduk7

Član broj: 132919
Poruke: 435
*.dynamic.sbb.rs.



+3 Profil

icon Re: Zajednicki projekat u C09.06.2009. u 15:04 - pre 146 meseci
Brate ja to nisam ni provalio ali nacicu jednu drugu verziju gde mi je uglavnom sve OK. Evo pokusvao sam da sve prebacim u int sem h izbacuje mi upozorenje. Evo sta sam ja hteo da uradim sa programom. Znaci da unosis imena predmeta ocene da sam odredis kolko predmeta imas i da ti izracuna prosek
Ako te snadje muka pozovi hajduka
Pazi se hajduka ako ga snjadje muka
 
Odgovor na temu

[es] :: C/C++ programiranje :: Zajednicki projekat u C

[ Pregleda: 2380 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.