Помогите,пожалуйста, Паскаль |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Помогите,пожалуйста, Паскаль |
Мария147 |
Сообщение
#1
|
Группа: Пользователи Сообщений: 1 Пол: Мужской Репутация: 0 |
Даны две вещественные матрицы разной размерности. Используя подпрограммы упорядочить четные строки матриц по невозрастанию,если сумма элементов первого столбца исходной матрицы больше суммы элементов второй строки. Массивы не сортируются
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. |
Федосеев Павел |
Сообщение
#2
|
Знаток Группа: Пользователи Сообщений: 481 Пол: Мужской Реальное имя: Федосеев Павел Репутация: 9 |
Не совсем понял, чего не хватает программе?
|
Текстовая версия | 23.12.2024 20:44 |