Помогите написать несколько программ в Pascal (подпрограммы, двоичные циклы)

компьютеры паскаль програмирование

Задача 1.
Дана матрица N на M. Упорядочить строки по возрастанию их характеристик.
(Характеристика строки – сумма ее элементов)
Программа 1:
program LAB5_3;
uses CRT;
const N=4;
M=5;
type ctpoka=array[1..M] of integer;
mass=array[1..N] of ctpoka;
var A:mass;
S:array[1..N] of integer;
i,j,z,y,t:integer;
begin
clrscr;
for i:=1 to N do
for j:=1 to M do
begin
write('A[',I,',',J,']=');
readln;
end;
for i:=1 to N do
begin
S[i]:=0;
for j:=1 to M do
begin
S[i]:=S[i]+A[i,j];
end;
end;
for i:=1 to N-1 do
begin
Z:=i;
for j:=i to N do
begin
if S[j]<S[z] then
z:=j;
end;
Y:=S[z];
S[z]:=S[i];
S[i]:=Y;
T:=A[z];
A[z]:=A[i];
A[i]:=T;
end;
for i:=1 to N do
write(S[i],' ');
end.

Задача 2.
Составить программу с использованием подпрограмм функций(вычисляющих один элемент массива), подпрограммы процедуры(преобразовать матрицы А(6,7), В(7,7), С(3,4) таким образом, чтобы нечетные стобцы матриц были упорядочены по возрастанию, а четные по убыванию)
Элементы исходных матриц вычисляются по формулам:
A=1.5sin(3i)+3cos(1.273j)
B=(sqr(i)-4j-16cos(ij))sin(1.5i)
C=i*exp(sin(j))

Программа 2:
program LAB6_3;
uses CRT;
type MATI=function(i,j:integer):real;
{$F+}
function AI(i,j:integer):real;
var A:real;
begin
A:=1.5*sin(3*i)+3*cos(1.273*j);
AI:=A;
end;
function BI(i,j:integer):real;
var B:real;
begin
B:=(sqr(i)-4*j-16*cos(i*j))*sin(1.5*i);
BI:=B;
end;
function CI(i,j:integer):real;
var C:real;
begin
C:=i*exp(sin(j));
CI:=C;
end;
{$F-}
procedure UPMATT(ZI:MATI; M,N:integer);
var Z:array[1..M,1..N] of real;
i,j:integer;
begin
for i:=1 to M do
for j:=1 to N do
Z:=ZI;
end;
begin
UPMATT(AI,6,7);
UPMATT(BI,7,7);
UPMATT(CI,3,4);
readln;
end.

Помогите пожалуйста, не могу понять в чем проблема в 1 задаче, а во второй вообще не понимаю как дальше делать.

Примечание:
"Ну и напиши, на что ругается компилятор)" вот на это и ругается..)) это получается нужно Т поставить тип строки что ли?? или что?)))
Ответы:
Лучше обычный двумерный массив использовать A: array[1..M,1..N] of integer;
во второй программе ты только по одному элементу создал. Создай глобальные переменные для матриц A, B, C и в цикле инициализируй матрицы полностью, а потом делай преобразование, подобное первой программе
Я бы изменила  
type ctpoka=array[1..M] of integer;
     mass=array[1..N] of ctpoka;
var A:mass;


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.