Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Помогите,пожалуйста

Автор: Мария147 7.06.2017 14:58

Даны две вещественные матрицы разной размерности. Используя подпрограммы упорядочить четные строки матриц по невозрастанию,если сумма элементов первого столбца исходной матрицы больше суммы элементов второй строки. Массивы не сортируются
PROGRAM MASSIV;
TYPE MS=ARRAY[1..30,1..30] OF REAL;
VAR A,B:MS;N1,N2,M1,M2:INTEGER;
S1,S,S5,S2:REAL;
PROCEDURE VVOD (VAR N,M:INTEGER;VAR D:MS; Q:STRING);
VAR i,j:INTEGER;
BEGIN
WRITE('ЧИСЛО СТРОК В МАССИВЕ ', Q );READLN(N);
WRITE('ЧИСЛО СТОЛБЦОВ В МАССИВЕ ',Q);READLN(M);
FOR i:=1 TO N DO
FOR j:=1 TO M DO
BEGIN
WRITE (Q,'[',i,',',j,']=');READLN(D[i,j]);
END;
FOR i:=1 TO N DO
BEGIN
FOR j:=1 TO M DO
BEGIN
WRITE(D[i,j]:15);
END;
WRITELN (' ');
END;
END;
PROCEDURE ESLI (D:MS;N,M:INTEGER;VAR S3,S4: REAL;Q:STRING);
VAR i,k,j,F:INTEGER;P:REAL;
BEGIN
S3:=0;S4:=0;
FOR i:=1 TO N DO
BEGIN
j:=1;
S3:=S3+D[i,j];
END;
FOR j:=1 TO M DO
BEGIN
i:=2;
S4:=S4+D[i,j];
END;
IF (S3>S4) THEN
BEGIN
WRITELN('УСЛОВИЕ ВЕРНО ДЛЯ МАССИВА ',Q);
FOR i:=1 TO N DO
BEGIN
IF (i mod 2 = 0) THEN
BEGIN
FOR j:=1 TO M-1 DO
FOR k:=j+1 TO M-2 DO
IF D[i,j]<D[i,k] THEN
BEGIN
P:=D[i,j];
D[i,j]:=D[i,k];
D[i,k]:=P;
END;
END;
END;
END
ELSE
WRITELN('УСЛОВИЕ НЕВЕРНО ДЛЯ МАССИВА ',Q);
END;
PROCEDURE VIVOD( N,M:INTEGER; D:MS;Q:STRING);
VAR i,j:INTEGER;
BEGIN
WRITELN('УПОРЯДОЧЕННЫЙ МАССИВ ',Q);
FOR i:=1 TO N DO
BEGIN
FOR j:=1 TO M DO
WRITE(D[i,j]:15);
WRITELN (' ');
END;
END;
BEGIN
VVOD(N1,M1,A,'A ');
VVOD(N2,M2,B,'B ');
ESLI(A,N1,M1,S1,S2,'A');
ESLI(B,N2,M2,S,S5,'B');
IF (S1>S2)THEN
BEGIN
VIVOD(N1,M1,A,'A');
END;
IF (S>S5)THEN
BEGIN
VIVOD(N2,M2,B,'B');
END;
END.

Автор: Федосеев Павел 8.06.2017 2:37

Не совсем понял, чего не хватает программе?