Первая задача такова:
Дана произвольной размерности матрица, необходимо вывести номера строк, которые содержат только положительные элементы. Также упорядочить второй столбец по убыванию (это необязательно, и сама сделаю).
А вторая задача: необходимо найти минимальное значение среди элементов, меньших заданного числа b и расположенных до первого элемента, большего заданного числа а. Упорядочить массив по убыванию.
В общем, что у меня получилось:
- Код: выделить все
Program lab2;
Uses crt;
Type {OpucaHue TupoB}
Mas=Array[1..100] of Real;
pmas=^mas;
preal=^real;
m=^real;
r=^real; {MaccuB}
var
a,b:pmas;
n,k:integer;
max,c,d:preal;
const
s=integer;
e=integer;
{$I funclab2.pas}
begin
new(a);
new(b);
clrscr;
inmas(a,n,{c,}d);
dothismas(c,d,a,b,max,k);
domas(n,a);
readkey;
outmas(n,k,a,b,max,c,d);
readkey;
dispose(a);
dispose(b);
end.
funclab2.pas
Procedure inmas(var a:pmas; var n:integer; var c:preal; var d:preal);
Var
i:integer;
r,z:real;
begin
write('vvedite koli4estvo elementov massiva: ');
readln(n);
{write('vvedite 4uclo c, c<d: ');
readln(c); }
write('vvedite 4uclo d, c<d: ');
readln(d);
for i:=1 to n do
begin
write('a[',i,']= ');
readln(a^[i]);
end;
end;
procedure domas(n:integer; var a:pmas); {CopTupoBka MaccuBa po y6bIBaHuI0 MeToDoM MakcuMyMa}
Var
i,j,pos:integer;
max:real;
begin
for i:=1 to n-1 do
begin
max:=a^[i];
pos:=i;
for j:=i+1 to n do
if max<a^[j] then
begin
max:=a^[j];
pos:=j;
end;
a^[pos]:=a^[i];
a^[i]:=max;
end;
readln;
end;
procedure outmas(n,k:integer; a,b:pmas; max:preal; da:preal; d:preal);
var i,j:integer;
begin
for j:=1 to k do
write (b^[j]:3:1,' ');
writeln('maximum raven ',max^:3:1);
for i:=1 to n do
write (a^[i]:3:1,' ');
writeln(c^:3:1,' ',d^:3:1)
end;
procedure dothismas(da,d:preal; a:pmas; var b:pmas; var max:preal; var k:integer);
var
i,j:integer;
begin
i:=1;
j:=0;
while a^[i]<d^ do
begin
if a^[i]<da^
then
begin
j:=j+1;
k:=j;
b^[j]:=a^[i];
i:=i+1;
end;
end;
max^:=b^[1];
for j:=2 to k do
begin
if b^[j]>max^
then
max^:=b^[j];
end;
end;
И все бы ничего, но она в упор не видит второй параметр, т.е. при вводе массива 1 2 3 4 5 при ограничивающих параметрах 3 и 4 она выводит 1 2 3 4, вместо 1 2 3.
Спасибо.