👤

Sa se alcatuiasca o functie care schimba locurile a doua linii a unei matrici patrate.
Folosind aceasta functie,sa se ordoneze liniile matriciei date cu un numar impar de coloane ,astfel incit elemntele coloanei din mijloc sa fie in ordine cresctoare.(IN PASCAL)


Răspuns :

Program Tema;
Var a:array[1..100,1..100] of integer;
procedure schimba_linii(n,linia1,linia2:integer);
var j,temp:integer;
begin
for j:=1 to n do
begin
temp:=a[linia1][j];
a[linia1][j]:=a[linia2][j];
a[linia2][j]:=temp;
end;
end;

var n,i,j,m,mijloc:integer;
Begin
writeln('Introduceti dimensiunile matricei:');
readln(n);
if n mod 2=0 then
begin
writeln('Nr coloane trebuie sa fie impar pentru ordonarea ceruta');
writeln('In cazul acesta cand nr de coloane e par, o alegem fix pe cea de la jumatate');
end;
writeln('Introduceti matricea');
for i:=1 to n do
begin
for j:=1 to n do
begin
read(a[i][j]);
end;
readln;
end;
if n mod 2=0 then
mijloc:=trunc(n/2)
else
mijloc:=trunc((n+1)/2);

for i:=1 to n do
begin
m:=i;
for j:=i to n do
begin
if a[j][mijloc]<a[m][mijloc] then
m:=j;
end;
schimba_linii(n,i,m);
end;
writeln('Matricea cu coloana dim mijloc sortata este: ');
for i:=1 to n do
begin
for j:=1 to n do
begin
write(a[i][j]);
write(' ');
end;
writeln;
end;
End.

Problema Produs Scalar
Program Tema;
var n,i,j,k,s,min,linia1,linia2:integer;
    a:array[1..100,1..100] of integer;

Begin
min:=maxint;
writeln('Introduceti dimensiunea matricei: ');
readln(n);
writeln('Introduceti matricea: ');
for i:=1 to n do
begin
for j:=1 to n do
begin
read(a[i][j]);
end;
readln;
end;
for i:=1 to n do
begin
for k:=1 to n do
begin
s:=0;
for j:=1 to n do
begin
s:=s+a[i][j]*a[k][j];
end;
if s<min then
begin
min:=s;
linia1:=i;
linia2:=k;
end;
end;
end;
writeln('Minimul produs scalar este: ',min);
writeln('obtinut cu liniile: ',linia1,' ',linia2);
End.