Sunteți pe pagina 1din 4

Ministerul Educaiei al Republicii Moldova

Universitatea Tehnic a Moldovei


Facultatea Radioelectronic i Telecomunicaii
Catedra CPAE

Lucrare de laborator Nr.3b


Disciplina: Programare
Prelucrarea masivelor unidimensionale

A efectuat

st.gr.SER-111,
Lasco Marina

A verificat
lect. sup.

Pocotilenco Valentin

Chiinu 2011
CPAE 525.1 020 01 ME

Mod Coala
docum.
Semnat Data
.
1.
Sarcina
lucrarii:
Este dat masivul
Elaborat

Lasco M.
pozitiaV.primului
Verificat
Pocotilencoelement

unidimensional P[n]. Determinati


valoareaColi
si
Lit.
Coala

Prelucrarea
masivelor
pozitiv din
masiv.
unidimensionale

UTM FRT SER-111

Datele initiale precum si rezultatele sa se afiseze la vizualizator, insotindu-se cu


identificarea variabilelor respective si comentariile necesare.
2. Algoritmul programului (schema-bloc):
Start

Valoare pentru:
n

i=1; i<=n;
i++
Valoare pentru:
P[i]

i=1; i<=n;
i++
Afisarea P[i]

i=n; i>=1;
i--

P[i]>0

poz=P[i];
v=i;

Afisarea
P[poz]=v

End

3. Descrierea programului:
Acest program scris reprezinta o utilizare tripla a instructiunii ciclice FOR si o singura utilizare a
instructiunii de ramificare. Primele doua utilizari ale instructiunii ciclice ale programului se
folosesc pentru introducerea si afisarea tabloului unidimensional. A treia se foloseste pentru a
Mod Coal
a

document

Semnat Data

CPAE 525.1 020 01 ME

Coal
a

porni contorul de la n spre 1, adica de la sfirsit spre inceput scazind cite o unitate i
pentru a determina primul element cu valoare pozitiva.

4. Cod sursa:
#include<stdio.h>
/ *biblioteca raspunzatoare de functiile standard de intrare si iesire*/
#include<conio.h>
/*biblioteca raspunzatoare de functiile consolei intrare-iesire*/
#include<math.h>
/*biblioteca raspunzatoare de functiile matematice*/
main()
/*Inceputul functiei*/
{
/*Inceputul corpului functiei*/
int P[100],n,i,poz,v; /*declararea variabilelor de tip intreg si */
clrscr();
/*stergerea rezultatelor ale compilarii anterioare de pe ecran*/
printf("Culegeti marimea masivului n<=100\n"); /*Afisarea unui mesaj utilizatorului pentru
a culege de la tastatura marimea masivului*/
scanf("%d",&n); /* scanf-Functia de intrare care face posibila introducerea informatiei de
la tastatura, in cazul nostru a marimii masivului*/
/*%d indica functiei ca valoarea citita va fi de tip intreg*/
/*&n Adresa de memorie unde va fi inscrisa valoarea lui n*/
printf("Culege masivul P[%d]\n",n);
for (i=1;i<=n;i++) {
/* functia ciclica de tip FOR in care i se pune conditia
compilatorului de a introduce in masivul de marimea a n elemente valori intregi*/
printf("P[%d]=",i); scanf("%d",&P[i]);}
printf("\n Masivul initial:\n\n");
for(i=1;i<=n;i++) printf("%3d",P[i]);
/* functia ciclica de tip FOR in care
compilatorul afiseaza la ecranul monitorului acele valori introduse de utilizator*/
for(i=n;i>=1;i--)
/* functia ciclica de tip FOR porneste de de la n la 1*/
if (P[i]>0) {v=P[i]; poz=i;} /* instructiunea de ramificare IF in care compilatorul selecteaza
elementul a carei valoare este pozitiva*/
printf("\n\nPrimul element pozitiv din masiv este: P[%d]=%d",poz,v); /*Afisarea
informatiei utilizatorului despre primul element al masivului cu valoare pozitiva */
getch();
/*permite afisarea indelungata a informatiei dupa efectuarea calculelor de
catre compilator pina la tastarea de catre utilizator a unei taste anumite*/
}
/*Sfirsitul corpului functiei*/

4. Rezultatele obtinute:

Mod Coal
a

document

Semnat Data

CPAE 525.1 020 01 ME

Coal
a

5. Concluzii: In programul acesta dupa cum am mentionat mai sus este utilizata instructiunea
ciclica FOR de 3 ori nu numai pentru a scurta codul programului ci si pentru al face cit mai rapid
si eficient. Programul se putea la fel de efectuat si cu operatorul SWITCH. Insa cu ajutorul
instructiunilor ciclice se faciliteaza in cazul dat lucrul programatorului. Ca si in cazurile
precedente programele ulterioare scrise de noi capata un caracter din ce in ce mai flexibil.