Rezolvare model de subiect practic P2 Programarea Calculatoarelor sesiunea iunie 2017

Documente similare
Limbaje de programare Pointeri. Alocare dinamică (continuare) 26 noiembrie 2012

Microsoft Word - c6.doc

Limbaje de Programare Curs 8 – Fisiere

Fişiere 11 ianuarie 2004 Utilizarea şi programarea calculatoarelor. Curs 13 Marius Minea

Slide 1

Limbaje de Programare Curs 5 – Siruri de caractere

Limbaje de Programare Curs 6 – Functii de intrare-iesire

Tipuri de date abstracte 30 noiembrie 2005 Programarea calculatoarelor 2. Curs 9 Marius Minea

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

Microsoft Word - PCLP2_Curs_4_2019.doc

Object Oriented Programming

Microsoft PowerPoint - ImplementareLimbaj [Read-Only] [Compatibility Mode]

Microsoft PowerPoint - Curs_SDA_10_RO_2019_v1.pptx

Preprocesorul C Funcţii cu numǎr variabil de argumente 6 decembrie 2005 Programarea calculatoarelor 2. Curs 10 Marius Minea

L7

Curs 2 Programare modulară în C - Funcții Test driven development, Code Coverage - Module Programare modulara, TAD - Gestiunea memoriei in C/C++ Curs

Microsoft Word - CarteC.doc

SUBPROGRAME

Programarea şi utilizarea calculatoarelor

Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011

Microsoft PowerPoint - Curs_SDA_4_RO_2019_v2.pptx

7. Alinierea robustă a densităţilor de puncte 3D Măsurarea distanţei dintre diferite forme geometrice 3D Estimarea rotaţiei şi a translaţiei optime în

PRELEGERE XIII PROGRAMAREA CALCULATOARELOR ŞI LIMBAJE DE PROGRAMARE Noţiunea de funcţie - continuare VI. Funcţii recursive O funcţie se poate activa n

4. Detectarea cantelor Calculul gradientului într-o imagine Detectorul de cante Canny Transformata Hough În această lucrare vor fi studiate metode de

Laborator 2 Incompatibilităţi/Diferenţe între C şi C++ Completări C++ Supraîncărcarea (redefinirea) numelui de funcţii În C nu este permisă existenţa

Declararea variabilelor

Microsoft PowerPoint - Curs_SDA_3_RO_2019_v2.pptx

Microsoft Word - Ivan, Boja.doc

Microsoft Word - CarteC.doc

Slide 1

Declaraţii. Instrucţiuni 19 octombrie 2005 Programarea calculatoarelor 2. Curs 3b Marius Minea

LUCRAREA NR

Diapositive 1

Propunator: Morar Florin Colegiul National Silvania Zalau Discipina: Informatica Nivel liceal, cls. XII 1.Să se scrie în limbajul C/C++ definiţia comp

Microsoft Word - CarteC.doc

Microsoft Word - Cuprins_LP.doc

-

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

Facultatea de Automatică și Calculatoare

Microsoft Word - Software pentru ordonarea multirang a componentelor unei colectivitati.doc

Top

Laborator 2 - Încapsularea Programare Orientată pe Obiecte Tema 2.1 Să se analizeze programul EX2.C Indicatii 2.1 A nu se uita de fisierul EX2.H Tema

1

Tablouri unidimensionale Problema 1 Să se determine mulţimea cifrelor unui număr natural n > 0, dat. Exemplu: n= Cifre = {1,2,3,7} Se cere să s

Algoritmi elementari Metode de căutare secvenţială binară Metode de ordonare metoda bulelor metoda inserţiei metoda selecţiei metoda numărării Intercl

Examen de licenţă Informatică Exemple de întrebări - Structuri discrete şi algoritmi In atenţia studenţilor: Proba scrisă a examenului de licen

ALGORITHMICS

Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1

/*

Examen de licenţă Informatică Exemple de întrebări - Structuri discrete şi algoritmi In atenţia studenţilor: Proba scrisă a examenului de licen

Laborator 7 - Stream-uri

Microsoft Word - CarteC.doc

Curs 6 Gestiunea memoriei in C++ Alocare dinamica. Destructor. RAII. Rule of three. Tratarea excepțiilor exception safe code Moștenire Curs 5 Template

PowerPoint Presentation

Algoritmi genetici paraleli. Implementari Java. Continut laborator: 1. Obiectivul lucrarii. 2. Notiuni teoretice: 3. Cerinte laborator. 4. Tema. 1. Ob

Propunator: Morar Florin Colegiul National Silvania Zalau Discipina: Informatica Nivel liceal, cls. XI 1.Fişierul text bac.in conţine cel mult 1000 de

Procesarea Imaginilor - Laborator 1: Introducere în utilizarea bibliotecii OpenCV 1 1. Introducere în utilizarea bibliotecii OpenCV 1.1. Introducere S

Metode de programare Proiectarea algoritmilor

Slide 1

-

PHP (II)

Cursul 13 Mulţimi Julia Fie f : C C o funcţie complexă şi fie f n = f f f iterata de ordin n a lui f. Peste tot în continuare vom presupune că f este

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

PCLPII-C16(9)

PPSD

Facultatea de Matematica si Informatica Universitatea din Bucuresti Structuri liniare Liste. Stive. Cozi - Inserare, cautare, stergere - Lectii de pre

Backtracking_2018

Programarea calculatoarelor. Note de curs Marius Minea 1 Introducere în programarea în C 1.1 Funcţii în limbajul C Calcule şi funcţii La origine, rolu

PROGRAMARE OBIECT-ORIENTATA LABORATOR 1 INTRODUCERE IN CLASE SI OBIECTE Introducere teoretica Prin intermediul unei Clase ne dorim sa construim tipuri

Programarea şi utilizarea calculatoarelor

Laborator 3

Procesarea de imagini folosind programarea paralela. Implementari Java. Continut laborator: 1. Obiectivul lucrarii. 2. Notiuni teoretice: 3. Cerinte l

Microsoft Word - BD4_Curs11.doc

1 Lucrarea nr. 8 - Structuri de date de tip liste sortate O listă sortată reprezintă un aranjament al înregistrărilor din cadrul listei în funcţie de

Calcul Numeric

SIRURI DE CARACTERE in C++ O constanta de tip sir de caractere de declara intre doua caractere. In memoria interna, o constanta de acest tip este reti

Structuri de date pentru partiţii de mulţimi O partiţie finită a unei mulţimi nevide S este o mulţime finită de submulţimi ale lui S: {S 1, S 2,..., S

Microsoft Word - lab4.doc

Microsoft Word - Raspunsul la niste provocari. Partea III..doc

Microsoft Word - lab1_2007.doc

Lucrarea 7 Filtrarea imaginilor BREVIAR TEORETIC Filtrarea imaginilor se înscrie în clasa operaţiilor de îmbunătăţire, principalul scop al acesteia fi

Microsoft Word - Curs 11 - PHP.doc

Cursul 1 1. Introducere Corpul numerelor complexe Dezvoltarea istorică a gândirii matematice a urmărit îndeaproape evoluţia ideii de număr. Această ev

C++ Probleme

BIBLIOGRAFIE

Divide et Impera

Aplicatii pentru MySql si ACCESS Realizati un proiect in MySql si Acces pentru una din problemele urmatoare (la alegere). Proiectul va contine capturi

Calcul Numeric

Laborator 04: Apeluri de funcții

JScm: Compilator Scheme pentru masina virtuala Java Constantin Stanciu Zoran Constantinescu Universitatea "Poli

Elemente de grafică ştiinńifică Introducere Sistemele de calcul moderne pun la dispozińia utilizatorului două categorii de dispozitive grafice: Dispoz

Cursul 14 Mulţimea lui Mandelbrot Mulţimile şi funcţiile cu caracter excepţional (mulţimea lui Cantor, insula lui Koch, funcţiile lui Weierstrass şi T

Cerere de ofertă Din Stimați Domni: A.O. Tinerii pentru Dreptul la Viaţă, fil. Bălți în cadrul proiectului " Împuternicirea adolescenților,

Laboratory for Computer Security Education 1 Vulnerabilitatea datorată concurenței Copyright Wenliang Du, Syracuse University. The developme

Microsoft Word - Laborator 6 - Expresii Regulate IV.doc

Ingineria Sistemelor de Programare

/*

Lucrare de laborator

- 1 - RAPORT PRIVIND FUNCŢIONAREA PIEŢELOR DE ENERGIE ELECTRICĂ ȘI GAZE NATURALE ÎN SĂPTĂMÂNA Preţuri şi volume PIAŢA PENTRU ZIU

Transcriere:

Rezolvare model de subiect practic P2 Programarea Calculatoarelor sesiunea iunie 2017

header.h #ifndef HEADER_H_ #define HEADER_H_ void* xmalloc(size_t nrocteti); int** aloca2d(size_t n, size_t m); void dealoca2d(int** a, size_t n); int** citirematrice(size_t n, size_t m); double* citirevector(size_t n); void afisare1(char* den, int** a, double* p, size_t n, size_t m, FILE* f); double prelucrare_p(int** a, size_t n, size_t m); double prelucrare_t(int** a, double* p, size_t n, size_t m); int prelucrare_r(int** a, double* p, size_t n, size_t m); double valrand(int** a, double* p, size_t r, size_t m); typedef double (*pfp)(int** a, size_t n, size_t m); typedef double (*pft)(int** a, double* p, size_t n, size_t m); typedef int (*pfr)(int** a, double* p, size_t n, size_t m); void afisare2(int** a, double* p, size_t n, size_t m,char flag, FILE* f); #endif /* HEADER_H_ */

functii.c #include <stdio.h> #include <stdlib.h> #include "header.h" void* xmalloc(size_t nrocteti) void* p=0; p=malloc(nrocteti); if(!p) fprintf(stderr,"memorie insuficienta!"); exit(exit_failure); return p; int** aloca2d(size_t n, size_t m) int** a=0, i; a=(int**)xmalloc(n*sizeof(int*)); a[i]=(int*)xmalloc(m*sizeof(int)); return a; void dealoca2d(int** a, size_t n) int i; free(a[i]); a[i]=null; free(a); int** citirematrice(size_t n, size_t m) int** a=0; int i,j; a=aloca2d(n,m); printf("\n Randul %d: ", i+1); scanf("%d",&a[i][j]); return a;

double* citirevector(size_t n) int i; double* v=0; v=(double*)xmalloc(n*sizeof(double)); printf("\n pretul pe randul %d: ", i+1); scanf("%lf",&v[i]); return v; void afisare1(char* den, int** a, double* p, size_t n, size_t m, FILE* f) int i,j; fprintf(f,"la spectacolul \"%s\" ocuparea sălii si preturile au fost:\n", den); fprintf(f," "); fprintf(f,"%d ", a[i][j]); fprintf(f,"- pret/loc: %.2lf lei \n", p[i]); double prelucrare_p(int** a, size_t n, size_t m) double rez=0; int i,j; rez+=a[i][j]; return rez/(n*m)*100; double prelucrare_t(int** a, double* p, size_t n, size_t m) double rez=0; int i, j; double sum; sum = 0; sum+=a[i][j]; rez+=sum*p[i]; return rez;

int prelucrare_r(int** a, double* p, size_t n, size_t m) double max= valrand(a,p,0,m), aux; int i, poz=0; for(i=1;i<n;i++) aux=valrand(a,p,i,m); if(max<aux) max=aux; poz=i; return poz; void afisare2(int** a, double* p, size_t n, size_t m,char flag, FILE* f) pfp pp; pfr pr; pft pt; switch(flag) case 'p': pp = &prelucrare_p; fprintf(f,"\nprocentul de ocupare a salii a fost de %.3lf%%.\n",(*pp)(a,n,m)); case 'r': pr = &prelucrare_r; fprintf(f,"\nrandul cu încasarea cea mai mare este randul %d cu %.2lf lei.\n", (*pr)(a,p,n,m)+1, valrand(a,p,(*pr)(a,p,n,m),m)); case 't': pt = &prelucrare_t; fprintf(f,"\nsuma totala incasata este de %.2lf lei.\n",(*pt)(a,p,n,m)); default: double valrand(int** a, double* p, size_t r, size_t m) double rez=0; int i; for(i=0;i<m;i++) rez+=a[r][i]; return rez*p[r];

Main.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include "header.h" int main(int argc, char* argv[]) char buff[100], *den, *numefis; int** a; double* p; size_t n, m; FILE* f; int iflag = 0; char flag; switch(argc) case 1: case 2: if(argv[1][0]=='-') else flag = 'p'; numefis=(char*)xmalloc((strlen(argv[1])+1)*sizeof(char)); strcpy(numefis, argv[1]); case 3: if(argv[1][0]!='-') else switch(argv[1][1]) case 'p': flag='p'; case 'r': flag='r'; case 't': flag='t'; default: if(!iflag) numefis=(char*)xmalloc((strlen(argv[2])+1)*sizeof(char)); strcpy(numefis, argv[2]);

default: if(iflag) else printf("\n Linie de comanda invalida!\n"); printf("\n denumirea spectacolului: "); fgets(buff, 99, stdin); buff[strlen(buff)-1]='\0'; den =(char*)xmalloc((strlen(buff)+1)*sizeof(char)); strcpy(den, buff); printf("\n n,m ="); scanf("%u %u",&n,&m); a=citirematrice(n,m); p=citirevector(n); f = fopen(numefis,"w"); if(!f) fprintf(stderr,"eroare la deschiderea fisierului"); exit(exit_failure); afisare1(den, a, p, n, m, f); afisare2(a,p,n,m,flag,f); fclose(f); dealoca2d(a,n); a=null; free(p); p=null; return 0;