IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Массивы процедуры функции
Алекс 94
сообщение 10.05.2015 20:19
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Мужской

Репутация: -  0  +


Пжл, кто может объяснить программу(расписать что означает каждая строчка).

В массиве 10х10 целого типа отсортировать главную диагональ (процедура), вычислить ее сумму (функция), поменять местами строки, номера которых укажет пользователь. Вывод массива (процедура).

Написать эту задачу: 1. все процедуры в одном файле
2. процедуры/файлы в библиотечном файле
3. вывод результатов в текстовый файл


Паскаль абс

var p:array[1..10,1..10] of byte;
i,j,n1,n2,z:byte;

procedure vyvod;
var i,j:byte;
begin
For i:=1 to 10 do
begin
For j:=1 to 10 do
Write(p[i,j],' ');
Writeln;
end;
Writeln;
end;

procedure sort;
var i,z:byte;
b:boolean;
begin
Repeat
b:=true;
For i:=1 to 9 do
If p[i,i]>p[i+1,i+1] then
begin
b:=false;
z:=p[i,i];
p[i,i]:=p[i+1,i+1];
p[i+1,i+1]:=z;
end;
Until b;
end;

function summ:integer;
var i:byte;
begin
Result:=0;
For i:=1 to 10 do
Result:=Result+p[i,i];
end;

begin
Randomize;
For i:=1 to 10 do
For j:=1 to 10 do
p[i,j]:=Random(21);
vyvod;
sort;
vyvod;
Writeln(summ);
Writeln;
Writeln('Nomera strok: ');
Repeat
Write(' n1 = ');
Readln(n1);
Write(' n2 = ');
Readln(n2);
If n1=n2 then
Writeln('n1 = n2 = ',n1);
If n1>10 then
Writeln(n1,' > 10');
If n2>10 then
Writeln(n2,' > 10');
If n1<1 then
Writeln(n1,' < 1');
If n2<1 then
Writeln(n2,' < 1');
Until (n1<>n2) and (n1>=1) and (n1<=10) and (n2>=1) and (n2<=10);
For j:=1 to 10 do
begin
z:=p[n1,j];
p[n1,j]:=p[n2,j];
p[n2,j]:=z;
end;
vyvod;
Readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.09.2019 6:15
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"