Informatică, întrebare adresată de AAAsayds, 9 ani în urmă

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ăspunsuri la întrebare

Răspuns de blindseeker90
0
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.

Alte întrebări interesante