65
Programarea calculatoarelor Universitatea Constatin Brâncuşi” din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Lect.dr. Adrian Runceanu

10.3. Prelucrarea fişierelor la nivel superior

Embed Size (px)

Citation preview

Page 1: 10.3. Prelucrarea fişierelor la nivel superior

Programarea calculatoarelor

Universitatea “Constatin Brâncuşi” din Târgu-Jiu Facultatea de Inginerie

Departamentul de Automatică, Energie şi Mediu

Lect.dr. Adrian Runceanu

Page 2: 10.3. Prelucrarea fişierelor la nivel superior

Curs 14

01.12.2013 Programarea calculatoarelor 2

Page 3: 10.3. Prelucrarea fişierelor la nivel superior

Capitolul 10. Fişiere

10.1. Declarare. Operaţii cu fişiere

10.2. Prelucrarea fişierelor la nivel inferior

10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate - fișiere prelucrate la nivel superior

01.12.2013 Programarea calculatoarelor 3

Page 4: 10.3. Prelucrarea fişierelor la nivel superior

10.1. Declarare. Operaţii cu fişiere.

Fişierul este o colecţie de informaţii ordonată în înregistrări.

01.12.2013 Programarea calculatoarelor 4

Page 5: 10.3. Prelucrarea fişierelor la nivel superior

10.1. Declarare. Operaţii cu fişiere.

Fişierele pot fi de mai multe tipuri, în funcţie de datele ce se memorează în ele:

1. fişier text conţine doar caractere ASCII, iar înregistrările sunt separate prin caracterele speciale CR şi LF

2. fişier standard ( fişierul header ) este un fişier text

3. fişier binar este un fişier ce conţine date în format intern, iar înregistrările nu se mai separă prin caractere speciale

01.12.2013 Programarea calculatoarelor 5

Page 6: 10.3. Prelucrarea fişierelor la nivel superior

10.1. Declarare. Operaţii cu fişiere.

1. Operaţii cu fişiere

Prezentăm în continuare operaţiile ce se pot efectua cu fişiere în limbajul C:

• deschiderea unui fişier

• crearea unui fişier

• actualizarea unui fişier

• consultarea unui fişier

01.12.2013 Programarea calculatoarelor 6

Page 7: 10.3. Prelucrarea fişierelor la nivel superior

10.1. Declarare. Operaţii cu fişiere.

• poziţionarea pe o anumită înregistrare din fişier

• ştergerea unui fişier

• ştergerea de înregistrări din fişier

• redenumirea unui fişier

01.12.2013 Programarea calculatoarelor 7

Page 8: 10.3. Prelucrarea fişierelor la nivel superior

10.1. Declarare. Operaţii cu fişiere.

Se cunosc două nivele de prelucrare a fişierelor şi anume:

1. Nivelul inferior de prelucrare – se face apel la funcţiile sistemului de operare MS-DOS (încorporat în SO Windows).

2. Nivelul superior de prelucrare – se folosesc funcţii specializate în lucrul cu fişierele.

01.12.2013 Programarea calculatoarelor 8

Page 9: 10.3. Prelucrarea fişierelor la nivel superior

10.1. Declarare. Operaţii cu fişiere.

Observaţie:

În limbajul C++, nu există instrucţiuni de intrare/ieşire ci numai funcţii specializate pentru aceste operaţii. (funcții care prelucrează stream-uri)

01.12.2013 Programarea calculatoarelor 9

Page 10: 10.3. Prelucrarea fişierelor la nivel superior

Capitolul 10. Fişiere

10.1. Declarare. Operaţii cu fişiere

10.2. Prelucrarea fişierelor la nivel inferior

10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate - fișiere prelucrate la nivel superior

01.12.2013 Programarea calculatoarelor 10

Page 11: 10.3. Prelucrarea fişierelor la nivel superior

10.2. Prelucrarea fişierelor la nivel inferior

Pentru a putea utiliza prelucrarea fişierelor la nivel inferior, trebuie să includem în program următoarele fişiere standard:

<io.h>

<fcntl.h>

01.12.2013 Programarea calculatoarelor 11

Page 12: 10.3. Prelucrarea fişierelor la nivel superior

10.2. Prelucrarea fişierelor la nivel inferior

a) Deschiderea unui fişier se efectuează pentru ca să se asocieze fişierului de pe suportul fizic, un număr întreg numit descriptor de fişier = [df].

01.12.2013 Programarea calculatoarelor 12

Page 13: 10.3. Prelucrarea fişierelor la nivel superior

10.2. Prelucrarea fişierelor la nivel inferior

Descriptorii pentru fişierele standard sunt:

DENUMIRE FISIER

SEMNIFICATIE VALOARE DESCRIPTOR

stdin tastatura 0

stdout monitor 1

stderr fişier de erori 2

stdprn imprimantă 3

stdaux comunicaţie serială 4

01.12.2013 Programarea calculatoarelor 13

Page 14: 10.3. Prelucrarea fişierelor la nivel superior

10.2. Prelucrarea fişierelor la nivel inferior

Funcţia utilizată este open şi are următoarea sintaxă:

Unde: cale – este un pointer către o zonă de tip

caracter, zonă în care este specificată calea de acces către fişierul ce trebuie deschis;

Dacă descrierea completă a căii de acces lipseşte, atunci fişierul va fi căutat în directorul curent.

01.12.2013 Programarea calculatoarelor 14

int open(const char *cale, int acces);

Page 15: 10.3. Prelucrarea fişierelor la nivel superior

10.2. Prelucrarea fişierelor la nivel inferior

• acces - este o constantă predefinită care poate avea următoarele valori:

Se pot face şi combinaţii între aceste valori: O_RDONLY | O_WRONLY, sau O_RDONLY | O_BINARY.

01.12.2013 Programarea calculatoarelor 15

valoare semnificatie O_RDONLY deschis doar pentru citire O_WRONLY deschis doar pentru scriere O_RDWR deschis pentru citire şi scriere O_APPEND deschis pentru adăugare la sfârşit O_TEXT deschidere fişier text O_BINARY deschiderea fişier binar

Page 16: 10.3. Prelucrarea fişierelor la nivel superior

10.2. Prelucrarea fişierelor la nivel inferior

Exemplu: Următoarea secvenţă de program se poate folosi pentru a

testa existenţa unui fişier cu numele “EXEMPLU.DAT”: int df; if( (df = open("C:\EXEMPLU.DAT", O_RDONLY)) == -1 ) { cout<<"Eroare la deschiderea fisierului \n"; exit(1); }

Valoarea ce o returnează funcţia open() poate fi: > 0, dacă fişierul a fost găsit -1, dacă fişierul nu a fost găsit

01.12.2013 Programarea calculatoarelor 16

Page 17: 10.3. Prelucrarea fişierelor la nivel superior

10.2. Prelucrarea fişierelor la nivel inferior

b) Crearea unui fişier se efectuează cu ajutorul funcţiei creat, care are următoarea sintaxă:

Unde:

cale – este un pointer către o zonă de tip caracter, zonă în care este specificată calea de acces către fişierul ce trebuie deschis

Dacă descrierea completă a căii de acces lipseşte, atunci fişierul va fi căutat în directorul curent.

01.12.2013 Programarea calculatoarelor 17

int creat(const char *cale, int mod);

Page 18: 10.3. Prelucrarea fişierelor la nivel superior

10.2. Prelucrarea fişierelor la nivel inferior

• mod – este modul de acces la fişierul respectiv:

valorile returnate de funcţia creat sunt:

> 0, dacă fişierul poate fi creat

-1, în caz contrar

01.12.2013 Programarea calculatoarelor 18

valoare semnificatie S_IREAD creat pentru citire S_IWRITE creat pentru scriere S_EXEC fişier executabil

Page 19: 10.3. Prelucrarea fişierelor la nivel superior

10.2. Prelucrarea fişierelor la nivel inferior

Exemplu:

Următoarea secvenţă de program se poate folosi pentru testa existenţa unui fişier cu numele “FISIER.DAT”:

int df;

if( (df = creat("C:\FISIER.DAT", S_WRITE)) == -1 )

{

cout<<"Eroare la deschiderea (crearea) fisierului\n";

exit(1);

}

01.12.2013 Programarea calculatoarelor 19

Page 20: 10.3. Prelucrarea fişierelor la nivel superior

10.2. Prelucrarea fişierelor la nivel inferior

c) Citirea datelor dintr-un fişier se efectuează cu ajutorul funcţiei read, care are următoarea sintaxă:

Se citeşte secvenţial din fişierul desemnat de descriptorul de fişier df un număr de octeţi - lung care se depun la adresa desemnată de buf

01.12.2013 Programarea calculatoarelor 20

int read(int df, void *buf, int lung);

Page 21: 10.3. Prelucrarea fişierelor la nivel superior

Capitolul 10. Fişiere

10.1. Declarare. Operaţii cu fişiere

10.2. Prelucrarea fişierelor la nivel inferior

10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate - fișiere prelucrate la nivel superior

01.12.2013 Programarea calculatoarelor 21

Page 22: 10.3. Prelucrarea fişierelor la nivel superior

10.3. Prelucrarea fişierelor la nivel superior

Pentru a putea utiliza prelucrarea fişierelor la nivel superior, trebuie să includem în program următorul fişier standard: <stdio.h>.

a) Declararea unei variabile de tip fisier se efectueaza astfel:

01.12.2013 Programarea calculatoarelor 22

FILE *pointer_fisier;

Page 23: 10.3. Prelucrarea fişierelor la nivel superior

10.3. Prelucrarea fişierelor la nivel superior

b) Deschiderea unui fişier se efectuează cu ajutorul functiei fopen:

Unde: • nume este adresa unui sir de caractere care defineste

numele fisierului care se deschide • mod este adresa unui sir de caractere care defineste modul

de prelucrare a fisierului dupa deschidere Acest sir poate fi:

– "r" - deschidere pentru citire – "w"- deschidere pentru scriere – "a"- deschidere pentru scriere la sfarsitul fisierului

01.12.2013 Programarea calculatoarelor 23

FILE *fopen(const char *nume, const char *mod);

Page 24: 10.3. Prelucrarea fişierelor la nivel superior

10.3. Prelucrarea fişierelor la nivel superior

Exemplu: Următoarea secvenţă de program se poate folosi pentru testa existenţa unui fişier cu numele “EXEMPLU.DAT”:

FILE *f; if( ( f = fopen("C:\EXEMPLU.DAT", "r") ) == -1 ) { cout<<"\nEroare la deschiderea fisierului"; exit(1); } Valoarea ce o returnează funcţia fopen poate fi: • adresa variabilei de tip fisier, dacă fişierul a fost găsit • -1, dacă fişierul nu a fost găsit

01.12.2013 Programarea calculatoarelor 24

Page 25: 10.3. Prelucrarea fişierelor la nivel superior

10.3. Prelucrarea fişierelor la nivel superior

Transferul unui caracter in sau dintr-un fisier text se efectuează cu ajutorul funcţiilor putc() si getc(), care au următoarele sintaxe:

• Functia putc() scrie caracterul cu codul ASCII c in fisierul asociat lui f si returneaza valoarea lui c sau valoarea -1 in caz de eroare.

• Functia getc() returneaza codul ASCII al caracterului citit din fisierul asociat lui f.

01.12.2013 Programarea calculatoarelor 25

int putc(int c, FILE *f); int getc(FILE *f);

Page 26: 10.3. Prelucrarea fişierelor la nivel superior

10.3. Prelucrarea fişierelor la nivel superior

• Transferul unui şir de caractere în sau dintr-un fişier text se realizează folosind funcţiile fgets() şi fputs() care au următoarele sintaxe:

01.12.2013 Programarea calculatoarelor 26

char fgets(char *s, int n, FILE *f); int fputs(const char *s, FILE *f);

Page 27: 10.3. Prelucrarea fişierelor la nivel superior

10.3. Prelucrarea fişierelor la nivel superior

• Citiri/scrieri cu format se realizează cu funcţiile fscanf() şi fprintf() care permit citirea respectiv scrierea în fişier şi care au următoarele sintaxe:

01.12.2013 Programarea calculatoarelor 27

int fscanf(FILE *f, const *format, . . .); int fprintf(FILE *f, const *format, . . .);

Page 28: 10.3. Prelucrarea fişierelor la nivel superior

10.3. Prelucrarea fişierelor la nivel superior

• Închiderea unui fişier se realizează cu ajutorul funcţiei fclose() care are următoarea sintaxă:

01.12.2013 Programarea calculatoarelor 28

int fclose(FILE *f);

Page 29: 10.3. Prelucrarea fişierelor la nivel superior

Capitolul 10. Fişiere

10.1. Declarare. Operaţii cu fişiere.

10.2. Prelucrarea fişierelor la nivel inferior

10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate - fișiere prelucrate la nivel superior

01.12.2013 Programarea calculatoarelor 29

Page 30: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

Problema 1:

Se citeşte un şir de numere întregi din fişierul “NUMERE.TXT”.

Fişierul conţine: – pe primul rând numărul n de elemente ale şirului

– apoi pe al doilea rând elementele şirului separate prin spaţii.

Să se afişeze elementele pare din şir.

01.12.2013 Programarea calculatoarelor 30

Page 31: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

Exemplu:

01.12.2013 Programarea calculatoarelor 31

Date de intrare: NUMERE.TXT 5 6 7 -2 4 11

Date de ieşire: 6 -2 4

Page 32: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

#include<stdio.h>

#include<iostream.h>

FILE *f;

int i, n, x;

int main()

{

f = fopen("NUMERE.TXT", "r");

fscanf(f, "%d", &n);

01.12.2013 Programarea calculatoarelor 32

Primul parametru: variabila de tip fisier Al doilea parametru: formatul valorilor care se citesc Al treilea parametru: adresele variabilelor in care se citesc valorile citite

Page 33: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

for(i=1; i<=n; i++)

{

fscanf(f, "%d", &x);

if(x % 2 == 0)

cout<<x<<" ";

}

fclose(f);

}

01.12.2013 Programarea calculatoarelor 33

Page 34: 10.3. Prelucrarea fişierelor la nivel superior

01.12.2013 Programarea calculatoarelor 34

Page 35: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

Problema 2:

Un program care citeşte un şir de numere de la tastatură şi apoi scrie în fişierul "FISIER.DAT", pe o linie, câte două numere consecutive, inserând între ele suma lor.

01.12.2013 Programarea calculatoarelor 35

Page 36: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

Exemplu:

01.12.2013 Programarea calculatoarelor 36

Date de intrare: 7 0 1 2 3 4 5 6

Date de ieşire: FISIER.DAT 0 1.0 1 1 3.0 2 2 5.0 3 3 7.0 4 4 9.0 5 5 11.0 6

Page 37: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

#include<stdio.h>

#include<iostream.h>

FILE *pf;

int i, n, x[30], nr;

double a;

01.12.2013 Programarea calculatoarelor 37

Page 38: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

int main() { cout<<"\ndati nr. de elemente : "; cin>>nr; for(i = 1; i <= nr; i++) { cout<<"x["<<i<<"] = "; cin>>x[i]; }

01.12.2013 Programarea calculatoarelor 38

Page 39: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

pf = fopen("fisier.dat","w"); for(n=1 ; n<=nr; n++) { a = x[n] + x[n+1]; fprintf(pf, "%d %4.2f %d\n", x[n], a, x[n+1]); } fclose(pf); }

01.12.2013 Programarea calculatoarelor 39

Primul parametru: variabila de tip fisier Al doilea parametru: formatul valorilor care se afiseaza Al treilea parametru: adresele variabilelor din care se afiseaza valorile citite

Page 40: 10.3. Prelucrarea fişierelor la nivel superior

01.12.2013 Programarea calculatoarelor 40

Page 41: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

Problema 3:

Se citeşte un şir de numere întregi din fişierul “NUMERE.TXT”.

Fişierul conţine: – pe primul rând numărul n de elemente ale şirului

– apoi pe al doilea rând elementele şirului separate prin spaţii.

Să se afişeze primul şi ultimul număr din şir.

01.12.2013 Programarea calculatoarelor 41

Page 42: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

Exemplu:

01.12.2013 Programarea calculatoarelor 42

Date de intrare: NUMERE.TXT 7 -3 4 10 90 -9 11 15

Date de ieşire: -3 15

Page 43: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

#include<stdio.h>

#include<iostream.h>

FILE *f;

int i, n, x[100];

int main()

{

f = fopen("NUMERE.TXT", "r");

fscanf(f, "%d", &n);

01.12.2013 Programarea calculatoarelor 43

Page 44: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

for(i=1; i<=n; i++)

fscanf(f, "%d", &x[i]);

cout<<x[1]<<" "<<x[n]<<"\n";

fclose(f);

}

01.12.2013 Programarea calculatoarelor 44

Page 45: 10.3. Prelucrarea fişierelor la nivel superior

01.12.2013 Programarea calculatoarelor 45

Page 46: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

Problema 4:

În fişierul “SIR.TXT” există pe fiecare linie câte un număr din şirul primelor n (n<300) numere naturale nenule.

Excepţie face un singur număr care a fost omis.

Să se determine care număr lipseşte.

01.12.2013 Programarea calculatoarelor 46

Page 47: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

Exemplu:

01.12.2013 Programarea calculatoarelor 47

Date de intrare: SIR.TXT 2 4 5 1

Date de ieşire: 3

Page 48: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

#include<stdio.h>

#include<iostream.h>

FILE *f;

int suma = 0, nr=0, x, numar;

int main()

{

f = fopen("SIR.TXT", "r");

01.12.2013 Programarea calculatoarelor 48

Page 49: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

while( !feof(f) ) { fscanf(f, "%d\n", &x); suma+=x; nr++; } fclose(f); numar=(nr+1)*(nr+2)/2 – suma; cout<<"Numarul lipsa este: "<<numar; }

01.12.2013 Programarea calculatoarelor 49

Page 50: 10.3. Prelucrarea fişierelor la nivel superior

01.12.2013 Programarea calculatoarelor 50

Page 51: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

Problema 5:

Se citesc numere întregi din fişierul “MATRICE.TXT”.

Fişierul conţine: – pe primul rând numerele n şi m, n reprezentând câte linii se

află în fişier începând cu linia a doua, iar m reprezintă câte numere întregi se află pe fiecare linie

– apoi începând de pe al doilea rând elementele unei matrice separate prin câte un spaţiu.

Să se afişeze cea mai mică şi cea mai mare valoare din matricea citită.

01.12.2013 Programarea calculatoarelor 51

Page 52: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

Exemplu:

01.12.2013 Programarea calculatoarelor 52

Date de intrare: MATRICE.TXT 3 3 11 -3 6 0 8 -14 8 15 2

Date de ieşire: -14 15

Page 53: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

#include<stdio.h>

#include<iostream.h>

FILE *f;

int i, j, n, m, a[10][10], min, max;

int main()

{

f = fopen("MATRICE.TXT", "r");

fscanf(f, "%d %d", &n, &m);

01.12.2013 Programarea calculatoarelor 53

Page 54: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

for(i=1; i<=n; i++)

for(j=1; j<=m; j++)

fscanf(f, "%d", &a[i][j]);

fclose(f);

01.12.2013 Programarea calculatoarelor 54

Page 55: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

min=10000; max=-10000; for(i=1; i<=n; i++) for(j=1; j<=m; j++) { if(a[i][j] < min) min = a[i][j]; if(a[i][j] > max) max = a[i][j]; } cout<<min<<" "<<max; }

01.12.2013 Programarea calculatoarelor 55

Page 56: 10.3. Prelucrarea fişierelor la nivel superior

01.12.2013 Programarea calculatoarelor 56

Page 57: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

Problema 6:

Se citeşte un şir de numere întregi din fişierul “NUMERE.TXT”.

Fişierul conţine: – pe primul rând numărul n de elemente ale şirului

– apoi pe fiecare din următoarele n rânduri câte un element al şirului.

Să se afişeze suma elementelor pozitive din şir.

01.12.2013 Programarea calculatoarelor 57

Page 58: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

Exemplu:

01.12.2013 Programarea calculatoarelor 58

Date de intrare: NUMERE.TXT 6 -5 6 7 -2 4 -10

Date de ieşire: 17

Page 59: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

#include<stdio.h>

#include<iostream.h>

FILE *f;

int i, n, x[100], suma=0;

int main()

{

f = fopen("NUMERE.TXT", "r");

fscanf(f, "%d", &n);

01.12.2013 Programarea calculatoarelor 59

Page 60: 10.3. Prelucrarea fişierelor la nivel superior

10.4. Probleme rezolvate – fișiere prelucrate la nivel superior

for(i=1; i<=n; i++) { fscanf(f, "%d\n", &x[i]); if(x[i] > 0) suma = suma + x[i]; } fclose(f); cout<<suma; }

01.12.2013 Programarea calculatoarelor 60

Page 61: 10.3. Prelucrarea fişierelor la nivel superior

01.12.2013 Programarea calculatoarelor 61

Page 62: 10.3. Prelucrarea fişierelor la nivel superior

Probleme propuse spre rezolvate – fișiere prelucrate la nivel superior

1. Să dă un număr natural n(1<=n<=1000). Să se creeze un fișier text cu primele n numere prime. Pe câte un rând se vor scrie 10 numere separate prin câte un spațiu. Exemplu:

01.12.2013 Programarea calculatoarelor 62

Date de intrare: 13

Date de ieșire: PRIME.TXT 2 3 5 7 11 13 19 23 29 31 37 41

Page 63: 10.3. Prelucrarea fişierelor la nivel superior

Probleme propuse spre rezolvate – fișiere prelucrate la nivel superior

2. Să dă fișierul NUMERE.IN, care conține pe fiecare rând numere de tip întreg separate prin câte un spațiu. Să se construiască fisierul NUMERE.OUT, care să conțină numărul cel mai mare corespunzător fișierului NUMERE.IN. Exemplu:

01.12.2013 Programarea calculatoarelor 63

Date de intrare: NUMERE.IN 23 89 76 -90 100 34 78 34 89 35 234 56 67 80 78

Date de ieșire: NUMERE.OUT 100 234 80

Page 64: 10.3. Prelucrarea fişierelor la nivel superior

Probleme propuse spre rezolvate – fișiere prelucrate la nivel superior

3. Să dă un fișier text cu numere naturale mai mici sau egale cu 10000000, separate prin câte un spațiu. Să se afișeze pe monitor numărul de pătrate perfecte care se găsesc în fișier. Exemplu:

01.12.2013 Programarea calculatoarelor 64

Date de intrare: PATRATE.TXT 12 23 36 90 81 88 771 45 1 990 23 12

Date de ieșire: 3

Page 65: 10.3. Prelucrarea fişierelor la nivel superior

Întrebări?

01.12.2013 Programarea calculatoarelor 65