of 64 /64
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...Probleme recapitulative Subiect I - Grile cu alegere multiplă. Identificați litera care corespunde răspunsului corect. 02.06.2013 Programarea

  • Author
    others

  • View
    3

  • Download
    0

Embed Size (px)

Text of Programarea şi utilizarea calculatoarelor...Probleme recapitulative Subiect I - Grile cu alegere...

  • Programarea calculatoarelor

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

    Facultatea de Inginerie

    Departamentul de Automatică, Energie şi Mediu

    Lector dr. Adrian Runceanu

  • Curs recapitulativ

    Structura biletelor de examen

    02.06.2013 Programarea calculatoarelor 2

  • Structura biletelor de examen

    02.06.2013 Programarea calculatoarelor 3

    Specializarea INGINERIA MEDIULUI:

    Subiect I - Grile cu alegere multiplă. Identificați litera

    care corespunde răspunsului corect.

    Subiect II - Algoritm în pseudocod.

    Subiect III – Enunțul unei probleme cu vectori sau

    matrici, având un exemplu specificat.

  • Probleme recapitulative

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

    02.06.2013 Programarea calculatoarelor 4

  • 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

  • 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)

    02.06.2013 Programarea calculatoarelor 6

    Solutie: c)

  • 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?

    02.06.2013 Programarea calculatoarelor 7

  • Grila 2 (continuare)

    a) for(k=0; k=0; k--) if(k%2==0)

    {

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

    a[n-k]=aux;

    }

  • 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; }

    02.06.2013 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)

  • 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:

    02.06.2013 Programarea calculatoarelor 10

  • Grila 3 (continuare)

    a) for(i=2;iv[i-1]) v[i]=v[i-1];

    max=v[n];

    02.06.2013 Programarea calculatoarelor 11

    Solutie: c)

  • 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

  • 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)

    02.06.2013 Programarea calculatoarelor 13

    Solutie: c)

  • Grila 5

    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?

    #include int a[20], n,k,aux; int main(void) { cin>>n ; for(k=1; k>a[k]; for(k=1; k

  • 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

  • Probleme recapitulative

    Subiect II - Algoritm în pseudocod

    02.06.2013 Programarea calculatoarelor 16

  • 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

    02.06.2013 Programarea calculatoarelor 17

  • 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ă.

    02.06.2013 Programarea calculatoarelor 18

  • Algoritm 1 - solutie

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

    02.06.2013 Programarea calculatoarelor 19

  • Algoritm 1 - solutie

    2. Programul C++

    corespunzător

    algoritmului dat este:

    #include

    long int n, s;

    int main()

    {

    coutn;

    02.06.2013 Programarea calculatoarelor 20

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

  • 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

  • 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

    02.06.2013 Programarea calculatoarelor 22

  • 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ă.

    02.06.2013 Programarea calculatoarelor 23

  • 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

    02.06.2013 Programarea calculatoarelor 24

  • Algoritm 2 - solutie

    2. Programul C++

    corespunzător

    algoritmului dat este:

    #include

    int a,b,c,i;

    int main()

    {

    couta;

    coutb;

    02.06.2013 Programarea calculatoarelor 25

    c=a%10;

    for(i=1;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

  • Probleme recapitulative

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

    02.06.2013 Programarea calculatoarelor 27

  • Probleme rezolvate cu vectori

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

    02.06.2013 Programarea calculatoarelor 28

  • Probleme rezolvate cu vectori

    #include int main(void) { double x[100], p; int n, i; coutn; cout

  • Probleme rezolvate cu vectori

    for(i = 1; i

  • Probleme rezolvate cu vectori

    cout

  • Probleme rezolvate cu vectori

    p = 1; // produsul elementelor din vector for(i = 1; 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.

    02.06.2013 Programarea calculatoarelor 33

  • Probleme rezolvate cu vectori

    #include int main(void) { double x[100]; int n, i, nr_poz, nr_neg, nr_nul; coutn; cout

  • Probleme rezolvate cu vectori

    for(i = 1; i

  • Probleme rezolvate cu vectori

    cout

  • Probleme rezolvate cu vectori

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

    02.06.2013 Programarea calculatoarelor 37

  • Probleme rezolvate cu vectori

    cout

  • 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.

    02.06.2013 Programarea calculatoarelor 39

  • Probleme rezolvate cu vectori

    #include int main(void) { int x[100]; long int n, i, m; coutn;

    02.06.2013 Programarea calculatoarelor 40

  • Probleme rezolvate cu vectori

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

    02.06.2013 Programarea calculatoarelor 41

  • Probleme rezolvate cu vectori

    m = i-1; cout

  • 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.

    02.06.2013 Programarea calculatoarelor 43

  • Probleme rezolvate cu vectori

    Exemplu:

    02.06.2013 Programarea calculatoarelor 44

    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}

  • Probleme rezolvate cu vectori

    #include int main(void) { int a[100], b[100], c[100], n, m, i, j, k, ok; coutn; cout

  • Probleme rezolvate cu vectori

    for(i = 1; i

  • Probleme rezolvate cu vectori

    coutm; cout

  • Probleme rezolvate cu vectori

    // copiem elementele din multimea A in multimea C

    for(i = 1;i

  • Probleme rezolvate cu vectori

    for(j = 1; j

  • Probleme rezolvate cu vectori

    cout

  • Probleme recapitulative

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

    02.06.2013 Programarea calculatoarelor 51

  • 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)

    02.06.2013 Programarea calculatoarelor 52

  • Probleme rezolvate cu matrici

    #include int main() { int i, j, m, n; float a[10][10]; cout

  • Probleme rezolvate cu matrici

    cout

  • Probleme rezolvate cu matrici

    Problema 6:

    Enunţ:

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

    n

  • Probleme rezolvate cu matrici

    #include int main() { double a[10][10], aux; int m, n, i, j; cout

  • Probleme rezolvate cu matrici

    for(i=1; i

  • Probleme rezolvate cu matrici

    cout

  • Probleme rezolvate cu matrici

    //interschimbarea liniilor matricii A:

    for (i=1; i

  • Probleme rezolvate cu matrici

    cout

  • Structura biletelor de examen

    02.06.2013 Programarea calculatoarelor 61

    Specializarea INGINERIA MEDIULUI:

    Subiect I - Grile cu alegere multiplă. Identificați litera

    care corespunde răspunsului corect.

    Subiect II - Algoritm în pseudocod.

    Subiect III – Enunțul unei probleme cu vectori sau

    matrici, având un exemplu specificat.

  • 02.06.2013 Programarea calculatoarelor 62

  • 02.06.2013 Programarea calculatoarelor 63

  • Sfârşit curs!

    Baftă!

    02.06.2013 Programarea calculatoarelor 64