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

[Zadatak] Konverzija podataka iz datoteke u brojeve

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Konverzija podataka iz datoteke u brojeve

[ Pregleda: 1848 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Miladinovic
Miladinovic

Član broj: 33748
Poruke: 1892



+44 Profil

icon [Zadatak] Konverzija podataka iz datoteke u brojeve27.11.2008. u 11:31 - pre 187 meseci
Trebami ideja kako najoptimalnije rešiti sledeći zadatak: Dobijem u tekstualnom fajlu brojeve

Code:
14 12 111
2 34


Trebam obaviti odredjene operacije nad brojevima, recimo (14+12+111)/(2*34), to jedan od primera i napisati rezultat. Takodje pod pretpostavkom da broj nije veći od trocifrenog.
Jasno mi je da bih dobio broj od chara moram oduzeti '0', i lako je odraditi ovo kad su jednocifreni, medjutim kad su dvocifreni ili trocifreni treba nam 2 odnosno 3 promenjive, gde ćemo drugi množiti sa 10 i sabirati sa prvom a trećom množiti sa 100 i sabirati, ako je u pitanju trocifreni broj... pa sve tako dok c=='\n' i ne promenimo operaciju (u primeru množenje)...
Učitavanje treba odraditi petljom while svakog karaktera posebno (primer while((c=getchar() )!=EOF).....
Pa vas molim ako mi može neko pomoći u realizaciji samog koda, ili postoji neki algoritam ?
 
Odgovor na temu

Miladinovic
Miladinovic

Član broj: 33748
Poruke: 1892



+44 Profil

icon Re: [Zadatak] Konverzija podataka iz datoteke u brojeve27.11.2008. u 22:54 - pre 187 meseci
any?

evo tačno kako glase zadaci

Citat:
1.Za tekstualni file oblika:
12 13 14
1 2 3
izracunati (12+13+14)/(1*2*3). Pretpostaviti da su brojevi maximalno trocifreni.



Citat:
2.Za textualni file oblika

uvod u programiranje
prvi kolokvijum

Izracunati (4+1+13)^sqrt(4+10) gde su brojevi u izrazu duzine reci u textu.
 
Odgovor na temu

emranonline
Emran Bajrami
Tu i tamo

Član broj: 105825
Poruke: 179
77.238.219.*



+1 Profil

icon Re: [Zadatak] Konverzija podataka iz datoteke u brojeve28.11.2008. u 01:17 - pre 187 meseci
evo nesto na brzaka
Code:

#include<stdio.h>
int main () {
    FILE *fp;
    int a,b,c,d,e,f;
    if ((fp=fopen("test.txt", "r"))==NULL) {
        printf("\n Dosno je do greske pri otvaranju datoteke");
        exit(-1);

    }
    while (fscanf(fp,"%d %d %d\n %d %d %d\n", &a,&b,&c,&d,&e,&f)==6) {
        printf("%.2f\n", (float)(a+b+c)/(d*e*f));

    }
}
 
Odgovor na temu

Miladinovic
Miladinovic

Član broj: 33748
Poruke: 1892



+44 Profil

icon Re: [Zadatak] Konverzija podataka iz datoteke u brojeve28.11.2008. u 20:11 - pre 187 meseci
nisam mislio tako, mora karakter po karakter do EndOfFile (tj. preko tastature ^Z), a fajl se učitava redirekcijom preko command promta
Code:
blabla.exe <ulaz.txt >izlaz.txt


drugim rečima može se posmatrati da je stdio i tastatura, nije to važno, bito je kako te učitane karaktere pretvorim u cele brojeve, a brojevi mogu biti bilo koji, ne mora ove kako su navedeni u zadataku, inače ne bi imalo svrhe.

 
Odgovor na temu

Miladinovic
Miladinovic

Član broj: 33748
Poruke: 1892



+44 Profil

icon Re: [Zadatak] Konverzija podataka iz datoteke u brojeve28.11.2008. u 21:43 - pre 187 meseci
Code:
main(){
    char c;
    int broj = 0, suma = 0, nobegin = 0, line = 1, proizvod = 1;
    while((c=getchar())!=EOF){
        if(isdigit(c)){
            if(!nobegin){
                nobegin = 1;
                broj = c-'0';
            }else{
                broj = broj*10+(c-'0');
            }
        }else if(nobegin){
            nobegin=0;
            if(line==1){
                suma += broj;
            }else if(line==2){
                proizvod *= broj;
            }
            broj = 0;
        }
        if(c=='\n'){
            line++;
        }
    }
    printf("%d:%d",suma, proizvod);
}


U svakom slučaju hvala @emranonline

[Ovu poruku je menjao Miladinovic dana 29.11.2008. u 01:47 GMT+1]
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Konverzija podataka iz datoteke u brojeve

[ Pregleda: 1848 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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