of 69 /69
Programarea calculatoarelor Universitatea Constantin Brâncuşi” din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Lector dr. Adrian Runceanu

Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Embed Size (px)

Citation preview

Page 1: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Programarea calculatoarelor

Universitatea “Constantin Brâncuşi” din Târgu-Jiu

Facultatea de Inginerie

Departamentul de Automatică, Energie şi Mediu

Lector dr. Adrian Runceanu

Page 2: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Curs recapitulativ

Structura biletelor de examen

03.01.2014 Programarea calculatoarelor 2

Page 3: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Structura biletelor de examen

03.01.2014 Programarea calculatoarelor 3

Subiect I - Grile cu alegere multiplă. Identificați litera care corespunde răspunsului corect. Subiect II - Algoritm în pseudocod Specializarea INGINERIE ENERGETICA: Subiect III – Enunțul unei probleme având un exemplu specificat. Specializarea INGINERIA SISTEMELOR: Subiect III – Enunțul unei probleme cu vectori sau matrici, având un exemplu specificat. Subiect IV – Enunțul unei probleme cu funcții, având un exemplu specificat.

Page 4: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme recapitulative

Subiect I - Grile cu alegere multiplă. Identificați litera care corespunde răspunsului corect.

03.01.2014 Programarea calculatoarelor 4

Page 5: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Grila 1

Considerăm următoarea secvenţă de program în care v este un vector format din n numere întregi, iar n, i şi aux sunt trei variabile de tip întreg:

for(i=1; i<=n/2; i++) { aux = v[i]; v[i] = v[n/2 + n%2 + i]; v[n/2 + n%2 + i] = aux; }

03.01.2014 Programarea calculatoarelor 5

Page 6: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Grila 1 (continuare)

Dacă n=7 şi v=(10, 20, 30, 40, 50, 60, 70) atunci după executarea secvenţei de mai sus vectorul v va avea următorul conţinut:

a) v=(40, 50, 60, 70, 10, 20, 30) b) v=(40, 50, 60, 10, 20, 30, 70) c) v=(50, 60, 70, 40, 10, 20, 30) d) v=(10, 20, 30, 70, 60, 50, 40)

03.01.2014 Programarea calculatoarelor 6

Solutie: c)

Page 7: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Grila 2

Fie vectorul v=(-1, 2, 3, -2, 4, 6, -3, 4) cu n=8 elemente.

Care din secvenţele următoare transformă vectorul v astfel:

v=(-1, 4, 3, 6, 4, -2, -3, 2), ştiind că primul element din tablou se află pe poziţia 0?

03.01.2014 Programarea calculatoarelor 7

Page 8: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Grila 2 (continuare)

a) for(k=0; k<n/2; k++) { aux=a[k]; a[k]=a[n-1-k]; a[n-1-k]=aux; }

03.01.2014 Programarea calculatoarelor 8

b) for(k=n-1; k>=0; k--) if(k%2==0)

{

aux=a[k]; a[k]=a[n-k];

a[n-k]=aux;

}

Page 9: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Grila 2 (continuare)

c) for(k=n-1; k>=n/2; k--)

if(k%2!=0) { aux=a[k];

a[k]=a[n-k]; a[n-k]=aux; }

03.01.2014 Programarea calculatoarelor 9

d)

for(k=n-1; k>=n/2; k--) if(k%2!=0)

{

aux=a[k]; a[k]=a[n-k-1]; a[n-k-1]=aux;

}

Solutie: c)

Page 10: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Grila 3

Fie v un tablou unidimensional format din n numere întregi (n>=2).

Ştiind că primul element din tablou se află pe poziţia 1, indicaţi care dintre următoarele secvenţe atribuie variabilei întregi max cea mai mare valoare din tabloul v:

03.01.2014 Programarea calculatoarelor 10

Page 11: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Grila 3 (continuare) a) for(i=2;i<=n;i++) if(v[i-1]<=v[i]) v[i-1]=v[i];

max=v[1]; b) for(i=1;i<=n-1;i++) if(v[i+1]>v[i]) v[i]=v[i+1];

max=v[1]; c) for(i=2;i<=n;i++) if(v[i-1]>v[i]) v[i]=v[i-1];

max=v[n]; d) for(i=n;i>=2;i--) if(v[i]>v[i-1]) v[i]=v[i-1];

max=v[n]; 03.01.2014 Programarea calculatoarelor 11

Solutie: c)

Page 12: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Grila 4

Fie următoarea secvenţă de program în care a, b sunt doi vectori formaţi din câte n numere întregi, iar i şi n sunt două variabile de tip întreg:

for(i=1;i<=n;i++) a[i]=i; for(i=1;i<=n;i++) b[i]=i+a[n-i+1]; for(i=1;i<=n;i++) {a[i]=a[i]+b[i]; b[i]=a[i]-b[i];}

03.01.2014 Programarea calculatoarelor 12

Page 13: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Grila 4 (continuare)

După execuţia secvenţei de mai sus, vectorii a şi b vor fi:

a) a=(n+1, n,…,2) si b=(1,2,…,n) b) a=(1,2,…,n) si b=(0,0,…,0) c) a=(n+2, n+3,…, 2n+1) si b=(1,2,…,n) d) a=(1,2,…,n) si b=(1,2,…,n)

03.01.2014 Programarea calculatoarelor 13

Solutie: c)

Page 14: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Grila 5

#include<iostream.h>

int a[20], n,k,aux;

int main(void)

{

cin>>n;

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

cin>>a[k];

03.01.2014 Programarea calculatoarelor 14

for(k=1; k<=n/2; k++)

if( (k%2 == 0) && (a[k]%2 == 0 ))

{

aux=a[k];

a[k]=a[n-k-1];

a[n-k-1]=aux;

}

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

cout<<a[k]<<’ ‘;

}

Fie vectorul a=(10,8,3,9,6,1) cu n=6 elemente. Ce se va afişa în urma executării următorului program?

Page 15: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Grila 5 (continuare)

a) 10 6 9 3 8 1 b) 1 8 9 3 6 10 c) 1 6 9 3 8 10 d) 10 6 3 9 8 1

03.01.2014 Programarea calculatoarelor 15

Solutie: d)

Page 16: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Grila 6

Considerăm următoarea secvenţă de program în care v este un vector format din n numere întregi, iar i, j şi n sunt trei variabile de tip întreg:

v[1]=1; for(i=2; i<=n; i++) for(j=1; j<=i; j++) v[i]=v[i-1]+1;

03.01.2014 Programarea calculatoarelor 16

Page 17: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Grila 6 (continuare)

a) v=(1, 2, 2, 3, 3, 3) b) v=(1, 2, 3, 4, 5, 6) c) v=(5, 5, 5, 5, 5, 6) d) v=(1,1, 1, 1, 1, 2)

03.01.2014 Programarea calculatoarelor 17

Solutie: b)

Page 18: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme recapitulative

Subiect II - Algoritm în pseudocod

03.01.2014 Programarea calculatoarelor 18

Page 19: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Algoritm 1

Se consideră următorul algoritm pseudocod:

citeste n (numar natural cu cel mult 9 cifre) cat timp n>=10 executa | s=0 | cat timp n≠0 executa | | s=s+n%10 | | n=[n/10] | |sfarsit cat timp | n=s |sfarsit cat timp scrie n

03.01.2014 Programarea calculatoarelor 19

Page 20: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Algoritm 1 (continuare)

1. Ce se va afişa dacă valoarea citită pentru n este 989736?

2. Scrieţi programul C++ corespunzător algoritmului

dat. 3. Scrieţi un algoritm echivalent cu algoritmul dat,

dar care să utilizeze un alt tip de structură repetitivă.

03.01.2014 Programarea calculatoarelor 20

Page 21: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Algoritm 1 - solutie

1. 9+8+9+7+3+6=42 4+2 = 6 Rezultat final 6

03.01.2014 Programarea calculatoarelor 21

Page 22: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Algoritm 1 - solutie

2. Programul C++

corespunzător

algoritmului dat este:

#include<iostream.h>

long int n, s;

int main()

{

cout<<"Dati n= ";

cin>>n;

03.01.2014 Programarea calculatoarelor 22

while(n>=10) { s=0; while(n!=0) { s=s+n%10; n=n/10; } n=s; } cout<<n; }

Page 23: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Algoritm 1 - solutie 3. Algoritmul echivalent cu algoritmul dat, dar care să utilizeze un alt tip de

structură repetitivă este:

citeste n (numar natural cu cel mult 9 cifre) repeta | s=0 | repeta | | s=s+n%10 | | n=[n/10] | |pana cand n=0 | n=s |pana cand n<10 scrie n

03.01.2014 Programarea calculatoarelor 23

Page 24: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Algoritm 2

Se consideră următorul algoritm pseudocod: citeste a,b (numere naturale) c=a%10 pentru i=1,b-1 executa | c=c*a | c=c%10 |sfarsit pentru scrie c

03.01.2014 Programarea calculatoarelor 24

Page 25: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Algoritm 2 (continuare)

1. Ce valoare afişează algoritmul pentru a=28 şi b=10?

2. Scrieţi programul C++ corespunzător

algoritmului dat. 3. Scrieţi algoritmul pseudocod care să fie

echivalent cu cel dat şi care să conţină un alt tip de structură repetitivă.

03.01.2014 Programarea calculatoarelor 25

Page 26: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Algoritm 2 - solutie

1. i=1 => c=8*28=224; c=4; i=2 => c=4*28=112; c=2; i=3 => c=2*28=56; c=6; i=4 => c=6*28=168; c=8; i=5 => c=8*28=224; c=4; i=6 => c=4*28=112; c=2; i=7 => c=2*28=56; c=6; i=8 => c=6*28=168; c=8; i=9 => c=8*28=224; c=4; Rezultat: 4

03.01.2014 Programarea calculatoarelor 26

Page 27: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Algoritm 2 - solutie

2. Programul C++

corespunzător

algoritmului dat este:

#include<iostream.h>

int a,b,c,i;

int main()

{

cout<<"a= "; cin>>a;

cout<<"b= "; cin>>b;

03.01.2014 Programarea calculatoarelor 27

c=a%10;

for(i=1;i<=b-1;i++)

{

c=c*a;

c=c%10;

}

cout<<"\nc = "<<c;

}

Page 28: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Algoritm 2 - solutie

3. Algoritmul echivalent cu algoritmul dat, dar care să utilizeze un alt tip de structură repetitivă este:

citeste a,b (numere naturale) c=a%10 i=1 cat timp i<=b-1 executa | c=c*a | c=c%10 | i=i+1 |sfarsit cat timp scrie c

03.01.2014 Programarea calculatoarelor 28

Page 29: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme recapitulative

Subiectul III – Enunțul unei probleme cu vectori sau matrici, având un exemplu specificat.

03.01.2014 Programarea calculatoarelor 29

Page 30: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

Problema 1: Enunţ: Se consideră un vector x cu n numere reale. Să se calculeze produsul elementelor.

03.01.2014 Programarea calculatoarelor 30

Page 31: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

#include<iostream.h> int main(void) { double x[100], p; int n, i; cout<<"Dati numarul elementele ale tabloului n = "; cin>>n; cout<<"Dati elementele tabloului\n";

03.01.2014 Programarea calculatoarelor 31

Page 32: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

for(i = 1; i <= n; i++) { cout<<"x["<<i<<"]="; cin>>x[i]; }

03.01.2014 Programarea calculatoarelor 32

Page 33: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

cout<<"Vectorul initial este \n"; for(i = 1; i <= n; i++) { cout.width(6); cout<<x[i]; }

03.01.2014 Programarea calculatoarelor 33

Page 34: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

p = 1; // produsul elementelor din vector

for(i = 1; i <= n; i++) p = p * x[i]; cout<<"\nProdusul elementelor este = "

<<p<<endl; }

03.01.2014 Programarea calculatoarelor 34

Page 35: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

Problema 2: Enunţ:

Se consideră un vector x cu n numere reale.

Să se calculeze câte elemente sunt pozitive, câte sunt negative şi câte sunt nule.

03.01.2014 Programarea calculatoarelor 35

Page 36: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

#include<iostream.h> int main(void) { double x[100]; int n, i, nr_poz, nr_neg, nr_nul; cout<<"Dati numarul elementele ale tabloului n = "; cin>>n; cout<<"Dati elementele tabloului\n";

03.01.2014 Programarea calculatoarelor 36

Page 37: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

for(i = 1; i <= n; i++) { cout<<"x["<<i<<"]="; cin>>x[i]; }

03.01.2014 Programarea calculatoarelor 37

Page 38: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

cout<<"Vectorul initial este \n"; for(i = 1; i <= n; i++) { cout.width(6); cout<<x[i]; }

03.01.2014 Programarea calculatoarelor 38

Page 39: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

nr_poz = nr_neg = nr_nul = 0; for(i = 1; i <= n; i++) if(x[i] > 0) nr_poz++; else if(x[i] < 0) nr_neg++; else nr_nul++;

03.01.2014 Programarea calculatoarelor 39

Page 40: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

cout<<"Numarul elementelor pozitive este = "<<nr_poz<<endl;

cout<<"Numarul elementelor negative este = "<<nr_neg<<endl;

cout<<"Numarul elementelor nule este = "<<nr_nul<<endl;

}

03.01.2014 Programarea calculatoarelor 40

Page 41: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

Problema 3: Enunţ:

Se consideră un număr natural n. Să cere să se formeze un vector cu

cifrele numărului.

03.01.2014 Programarea calculatoarelor 41

Page 42: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

#include<iostream.h> int main(void) { int x[100]; long int n, i, m; cout<<"Dati numarul natural n = "; cin>>n;

03.01.2014 Programarea calculatoarelor 42

Page 43: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

i = 1; while(n != 0) { x[i] = n % 10; i++; n = n / 10; }

03.01.2014 Programarea calculatoarelor 43

Page 44: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

m = i-1; cout<<"Vectorul cu cifrele numarului este \n"; for(i = 1; i <= m; i++) { cout.width(3); cout<<x[i]; } }

03.01.2014 Programarea calculatoarelor 44

Page 45: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

Problema 4: Enunţ:

Reuniunea a două mulţimi Să se scrie un program care să calculeze

reuniunea a două mulţimi de câte n, respectiv m numere întregi memorate cu ajutorul vectorilor.

03.01.2014 Programarea calculatoarelor 45

Page 46: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

Exemplu:

03.01.2014 Programarea calculatoarelor 46

Date de intrare: n=5, a={1, 2, 5, 7, 12} si m=2, b={2, 4, 8, 12}

Date de iesire: k = 7 z = {1, 2, 3, 4, 5, 7, 8, 12}

Page 47: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

#include<iostream.h> int main(void) { int a[100], b[100], c[100], n, m, i, j, k, ok; cout<<"Dati cardinalul multimii A - n = "; cin>>n; cout<<"Dati elementele multimii A \n";

03.01.2014 Programarea calculatoarelor 47

Page 48: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

for(i = 1; i <= n; i++) { cout<<"a["<<i<<"] = "; cin>>a[i]; }

03.01.2014 Programarea calculatoarelor 48

Page 49: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

cout<<"Dati cardinalul multimii B - m = "; cin>>m; cout<<"Dati elementele multimii B \n"; for(i = 1; i <= m; i++) { cout<<"b["<<i<<"] = "; cin>>b[i]; }

03.01.2014 Programarea calculatoarelor 49

Page 50: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

// copiem elementele din multimea A in multimea C

for(i = 1;i <= n; i++) c[i]=a[i]; k = n;

03.01.2014 Programarea calculatoarelor 50

Page 51: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

for(j = 1; j <= m; j++) { ok = 1; // variabila care verifica daca un element apartine sau nu unei

multimi

for(i = 1; i <=n ;i++) if(b[j] == a[i]) ok = 0; if(ok == 1) { k++; c[k] = b[j]; } } 03.01.2014 Programarea calculatoarelor 51

Page 52: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu vectori

cout<<"Elementele multimii reuniune sunt : \n"; for(i = 1; i <= k; i++) { cout.width(9); cout<<c[i]; } }

03.01.2014 Programarea calculatoarelor 52

Page 53: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme recapitulative

Subiectul III – Enunțul unei probleme cu vectori sau matrici, având un exemplu specificat.

03.01.2014 Programarea calculatoarelor 53

Page 54: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu matrici

Problema 5: Enunţ: Se dau doua numere n si m reprezentand

numarul de linii, respectiv numarul de coloane ale unei matrici An*m (1n,m30) de numere întregi.

Să se scrie un program care construieste o matrice A ale caror elemente se calculează după formula:

A[i][j] = (n-i) * (m-j)

03.01.2014 Programarea calculatoarelor 54

Page 55: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu matrici

#include<iostream.h> int main() { int i, j, m, n; float a[10][10]; cout<<"Dati dimensiunile matricei \n"; cout<<"Dati numarul de linii n = "; cin>>n; cout<<"Dati numarul de coloane m = "; cin>>m; for (i=1;i<=n; i++) for (j=1;j<=m; j++) a[i][j] = (n-i) * (m-j);

03.01.2014 Programarea calculatoarelor 55

Page 56: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu matrici

cout<<"Elementele matricei A sunt: \n"; for(i=1; i<=n; i++) { for(j=1; j<=m; j++) { cout.width(4); cout<<a[i][j]; } cout<<endl; } } 03.01.2014 Programarea calculatoarelor 56

Page 57: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu matrici

Problema 6:

Enunţ:

Să se citească elementele unei matrici An,m, unde

n<=10 şi m<=10, in care se retin numere reale.

Să se interschimbe liniile matricii A în modul

următor:

• prima linie cu ultima linie

• a doua linie cu penultima linie

• etc.

03.01.2014 Programarea calculatoarelor 57

Page 58: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu matrici

#include<iostream.h> int main() { double a[10][10], aux; int m, n, i, j; cout<<"Dati dimensiunile matricei \n"; cout<<"Dati numarul de linii n = "; cin>>n; cout<<"Dati numarul de coloane m = "; cin>>m;

03.01.2014 Programarea calculatoarelor 58

Page 59: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu matrici

for(i=1; i<=n; i++) for(j=1; j<=m; j++) { cout<<"a["<<i<<","<<j<<"]= "; cin>>a[i][j]; }

03.01.2014 Programarea calculatoarelor 59

Page 60: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu matrici

cout<<"Elementele matricei A sunt: \n"; for(i=1; i<=n; i++) { for(j=1; j<=m; j++) { cout.width(4); cout<<a[i][j]; } cout<<endl; }

03.01.2014 Programarea calculatoarelor 60

Page 61: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu matrici

//interschimbarea liniilor matricii A:

for (i=1; i<=n/2; i++) for (j=1; j<=m; j++) { aux = a[i][j]; a[i][j] = a[n+1-i][j]; a[n+1-i][j] = aux; }

03.01.2014 Programarea calculatoarelor 61

Page 62: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Probleme rezolvate cu matrici

cout<<"Matricea A cu liniile interschimbate:\n"; for(i=1; i<=n; i++) { for(j=1; j<=m; j++) { cout.width(4); cout<<a[i][j]; } cout<<endl; } }

03.01.2014 Programarea calculatoarelor 62

Page 63: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Structura biletelor de examen

03.01.2014 Programarea calculatoarelor 63

Subiect I - Grile cu alegere multiplă. Identificați litera care corespunde răspunsului corect. Subiect II - Algoritm în pseudocod Specializarea INGINERIE ENERGETICA: Subiect III – Enunțul unei probleme având un exemplu specificat. Specializarea INGINERIA SISTEMELOR: Subiect III – Enunțul unei probleme cu vectori sau matrici, având un exemplu specificat. Subiect IV – Enunțul unei probleme cu funcții, având un exemplu specificat.

Page 64: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Câteva precizări Bibliografia necesară cursului: 1. Adrian Runceanu, Mihaela Runceanu, Noțiuni de programare în

limbajul C++, Academica Brâncuşi, Târgu-Jiu, 2012, ISBN 978-973-144-550-2, 483 pagini

2. Adrian Runceanu, Programarea şi utilizarea calculatoarelor, Editura Academică Brâncuși Targu-Jiu, 2003

3. Octavian Dogaru, C++ - Teorie şi practică, volumul I, Editura Mirton, Timişoara, 2004

4. O.Catrina, I.Cojocaru, Turbo C+, Editura Teora, Bucureşti, 1993 5. D.Costea, Iniţiere în limbajul C, Editura Teora, Bucureşti, 1996 6. K.Jamsa, C++, Editura Teora,1999 7. K.Jamsa & L.Klander, Totul despre C si C++, Teora, 2004

03.01.2014 Curs - Programarea Calculatoarelor 64

Page 65: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

03.01.2014 Programarea calculatoarelor 65

Page 66: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Câteva precizări

Referinţele bibliografice nr. 1, 2 şi 3 se pot împrumuta de la Biblioteca Facultăţii de Inginerie, Str. Geneva nr.3, Etaj I – lângă Decanat. 1. Suport curs - varianta electronică disponibilă pe site-ul:

www.runceanu.ro/adrian 2. Îndrumar de laborator - varianta electronică disponibilă pe site pentru fiecare lucrare de laborator.

03.01.2014 Curs - Programarea Calculatoarelor 66

Page 67: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Câteva precizări

Forme de examinare: Examen final = 60%

Evaluare pe parcursul

semestrului a activităţii de laborator = 30%

Verificare finală lucrări de laborator = 10%

03.01.2014 Curs - Programarea Calculatoarelor 67

30

10 60

Procentaje evaluare

Evaluare pe parcursul semestruluiPrezenta curs si laboratorExamen final

Page 68: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

03.01.2014 Programarea calculatoarelor 68

Page 69: Programarea şi utilizarea calculatoarelor - · PDF fileStructura biletelor de examen 03.01.2014 Programarea calculatoarelor 3 Subiect I - Grile cu alegere multiplă. Identificați

Sfârşit curs!

Baftă!

03.01.2014 Programarea calculatoarelor 69