Documente Academic
Documente Profesional
Documente Cultură
1. Scopul.
1.1Obţinerea deprinderii practice de elaborare şi depanare a programelor ciclice.
1.2Studierea şi utilizarea instrucţiunilor de bază ale limbajului pentru prelucrarea
şi modificarea masivelor unidimensionale.
2. Cunoştinţe necesare.
2.1Descrierea masivelor unidimensionale.
2.2Sintaxa şi modul de utilizare a instrucţiunii ciclice FOR.
3. Conţinutul temei.
3.1Studierea definirii masivelor unidimensionale şi folosirii indicelui de ciclu i.
3.2Însuşirea metodelor de introducere şi afişare a masivelor unidimensionale.
3.3Însuşirea tehnicilor şi metodelor de programare la prelucrarea masivelor prin
aranjarea şi înlocuirea elementelor masivului.
3.4Elaborarea algoritmului de soluţionare a problemei.
3.5Alcătuirea şi depanarea programului.
4. Conţinutul raportului.
4.1Tema şi scopul lucrării.
4.2Condiţia problemei.
4.3Schema-bloc a algoritmului.
4.4Listingul programului.
4.5Rezultatul calculelor cu analiza corectitudinii.
4.6Descrierea instrucţiunilor principale folosite în program.
4.7Concluzii.
5. Exemplu de program.
Este dat un masiv unidimensional X cu n elemente. Aranjaţi elementele primei
jumătăţi din masiv în ordine descrescătoare. Afişaţi masivul rezultant ca răspuns.
Schema-bloc a programului:
Listingul programului:
a) în limbajul Pascal
program masiv1;
var x:array [1..20] of integer;
n,k,i,j,max,aux,r:integer;
begin writeln('Culege mărimea masivului <=20');
readln(n);
for i:=1 to n do begin
writeln('culege elementul ',i); readln(x[i]); end;
writeln('Masivul iniţial este:');
for i:=1 to n do write(x[i],' ');
if odd(n)=false then k:=n div 2 else k:=(n div 2)+1;
for j:=1 to k do begin max:=x[j];
for i:=j+1 to k do begin
if x[i]>max then begin max:=x[i]; r:=i;
aux:=x[j]; x[j]:=max; x[r]:=aux; end;
end; end; writeln;
writeln('Masivul final este:');
for i:=1 to n do write(x[i],' ');
readln
end.
b) în limbajul C++
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
void main(void) {
int x[20],n,k,i,j,max,aux,r;
printf("\nCulege mărimea masivului n<=20\n");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("Culege elementul %d\n",i);
scanf("%d",&x[i]);}
printf("Masivul iniţial este:\n");
for(i=0;i<n;i++){
printf("%d ",x[i]);}
if (fmod(n,2)==0) k=floor(n/2); else k=floor(n/2)+1;
for(j=0;j<k;j++){ max=x[j];
for(i=j+1;i<k;i++){
if (x[i]>max) {max=x[i]; r=i; aux=x[j]; x[j]=max; x[r]=aux;}
}}; printf("\nMasivul final este:\n");
for(i=0;i<n;i++){
printf("%d ",x[i]);}
getch();
}
6. Variante.
Este dat un masiv unidimensional cu n elemente: