|
VECTORI
type v=array [1..100] of integer;
var a,b:v;
ex: var vector:array [1..10] of 0..2;
vector:array ['a'..'z'] of boolean;
Accesarea unui element:
vector[5]:=1;
vector2['e']:=false;
Incarcarea unui vector
program incarcare_vector;
var v:array [1..50] of integer;
i,n:1..50;
begin
write('Dati numarul de elemente <=50');
readln(n);
for i:=1 to n do begin
write('v[',i,']=');
readln(v[i]);
end;
readln
end.
Tiparirea unui vector
Dupa incarcarea unui vector, acesta se poate tipari.
Tiparirea se face element cu element.
for i:=1 to n do writeln('v[',i,']=',v[i]);
v[1]=15
v[2]=3
v[3]=4
.
.
.
.
.
Intr-un tip de data vector,elementele se pot repeta spre deosebire de multimile din matematica in care fiecare element apare o singura data.
Nu se va tipari sau face calcule cu elemente care nu au primit in prealabil valoare.
var a:integer;
begin
write(a);
end.
-este un contraexemplu, deoarece a este o variabila intreaga neinitializata nu se va tipari.
Sortarea unui vector
-a sorta un vector inseamna a aranja elementele vectorului in ordine crescatoare sau descrescatoare (ordonare alfabetica, sau invers alfabetica care se numeste ordonare lexico-grafica).
(1,3,1,2,5)
.
.
sortare
(1,1,2,3,5)
(c,f,a,j)
.
.
sortare
(a,c,f,j)
Ordonarea lexico-grafica este la fel ca ordonarea cuvintelor dintr-un dictionar.
v(3 1 5 7)
. . . .
. . . .
v[1] v[2] v[3] v[4]
aux:=v[1];
v[1]:=v[2];
v[2]:=aux;
Ordonare prin interschimbare
Algoritmul ordonarii prin interschimbare este:
a)Pentru toti i=1, n-1
compar toti v[i] cu v[i+1]
Daca v[i+1]
Se repeta aceasta operatie pana cand parcurgand odata vectorul nu se efectueaza nici o schimbare.
program sortare;
var v:array [1..100] of integer;
n,i:integer;
gasit:boolean;
begin
write('n=');readln(n);
for i:=1 to n do begin
write('v[',i,']=');
readln(v[i]);
end;
repeat
gasit:=false;
for i:=1 to n-1 do
if v[i+1]
aux:=v[i];
v[i]:=v[i+1];
v[i+1]:=aux;
gasit:=true;
end;
until gasit:=false or not gasit
for i:=1 to n do write ('v[',i,']=',v[i]);
readln
end.
Gasirea elementului maxim
program maxim;
type vector=array [1..100] of integer;
var v:vector;
n,i,max:integer;
begin
write('n=');readln(n);
for i:=1 to n do begin
write('v[',i,']=');
readln(v[i]);
end;
max:=v[1];
for i:=2 to n do if v[i]>max then
max:=v[i];
write('max=',max);
end.
program max_min;
var v:array [1..100] of integer;
n,i,min,max:integer;
begin
write('n=');readln(n);
for i:=1 to n do begin
write('v[',i,']=');
readln(v[i]);
end;
max:=v[1];min:=v[1];
for i:=2 to n do begin if v[i]>max then max:=v[i]
if v[i]
end;
writeln('max=',max);
writeln('min=',min);
readln
end.
program eliminare;
type vector=array [1..100] of integer;
var v:vector;
n,i,k:integer;
begin
write('n=');readln(n);
for i:=1 to n do begin
write('v[',i,']=');
readln(v[i]);
end;
write('k=');readln(k);
for i:=k to n-1 do v[i]:=v[i+1];
n:=n-1;
for i:=1 to n do
write(v[i],' ');
end.
Interclasarea
Fie vectorul a si vectorul b:
a=(a1,.......,am)
b=(b1,.......,bn)
Elementele lui a si lui b sunt crescatoare.
Construiti un vector c care va contine elementele vectorului a si b in ordine crescatoare.
Aceasta problema se numeste interclasarea a doi vectori.
program interclasare;
type vector=array [1..100] of integer;
var i,j,k,m,n:integer;
a,b,c:vector;
begin
write('m=');readln(m);
for i:=1 to m do begin;
write('a[',i,']=');
readln(a[i]);
end;
write('n=');readln(n);
for i:=1 to n do begin
write('b[',i,']=');
readln(b[i]);
end;
i:=1;j:=1;k:=1;
while (i<=m)and(j<=n)do begin
if a[i]
c[k]:=a[i];
i:=i+1;
end
else begin
c[k]:=b[j];
j:=j+1;
end;
k:=k+1;
end;
if i<=m then for j :=i to n do begin
c[k]:=b[i];
k:=k+1;
end;
for i:=1 to m+n do
writeln('c[',i,']=',c[i]);
end.
|