5
7
Ввод:
Vvodstroki (n);
Ввод:
Vvodstolbwa(m);
очистка экрана
4
5
6
4
6
Очистка экрана
8
Ввод:
VvodElementowMassiva(a);
7
Вывод:
Vivodmassiva(a);
Вывод:
zamenanylia(a);
9
10
11
k:=1
12
10
i:=1,n
j:=1,m
13
B[k]:=a[i,j];
k:=k+1;
да
11
14
6
12
(f<1) or (f>2)
5
11
Ввод:
f
15
16
Неверно ввели цифру!!! Повторите ввод.
да
18
нет
17
(f=1)
да
Вывод:
sumvoLbIHaBepxy(b,c)
20
нет
19
(f=2)
да
21
Вывод:
sumvoLbIHaBepxy(b,c)
22
конец
Листинг программы
Program r; {название программы}
uses crt; {модуль для работы с программой в текстовом режиме}
var a:array[1..100,1..100] of real; {массив, переменные вещественного типа}
Error: integer; {переменная для хранения кода ошибки операции ввода/вывода}
n: integer; {количество элементов в массиве}
i: integer; {индекс (номер) элемента строки массива}
j: integer; {индекс (номер) элемента столбца массива}
IOResult: integer; {переменная целого типа}
sm,sp: real; {переменные вещественного типа}
ch:char; {переменная для хранения кода символа нажатой клавиши}
Label L1,L2; {описание меток}
begin {начало программы}
clrscr; {очистка экрана}
Textattr:=green; {цвет символов}
Gotoxy (20,3); {вывод текста в указанном месте экрана}
WriteLn('‚ Вашему вниманию предоставляется программа ,');
Gotoxy (20,4);
WriteLn(которая вычисляет сумму элементов матрицы,');
Gotoxy (20,5);
WriteLn(расположенных над и под главной диагональю.');
Gotoxy (40,12);
Textattr:=yellow;
WriteLn(Программу составил студент');
Gotoxy(40,13);
WriteLn('МИИТа группы ЭБИ-112');
Gotoxy(49,14);
WriteLn('Романова Р.А.');
gotoxy(40,15);
WriteLn('г.Москва ,2013 г.');
Gotoxy(20,24);
Textattr:=white;
WriteLn('Нажмите любую клавишу для продолжения');
Ch:=readkey; {считывание символа с клавиатуры}
{---------------------------Ввод количества элементов массива-----------------}
L1:=clrscr;
repeat {начало цикла с постусловием}
Gotoxy(20,2);
Textattr:=red;
WriteLn('Внимание!!');
Gotoxy(15,3);
Textattr:=yellow;
WriteLn('Размерность данного массива должна быть');
Gotoxy(15,4);
WriteLn('в интервале от 2 до 100!');
Gotoxy(1,6);
Textattr:=white;
write('Введите размер матрицы:');
{$i-} {отключение проверки ошибок ввода данных}
readln(n); {ввод с клавиатуры значение переменной}
Error:=IOResult; {возвращение результатов последней операции ввода\вывода}
{$i+} {включение проверки ввода данных}
if (n<2) or (n>100) or (Error<>0) then
begin
Clrscr;
Textattr:=red;
Gotoxy(5,7);
WriteLn('Неверно задано количество элементов матрицы! Повторите ввод.');
end;
Until (n>=2) and (n<=100) and (Error=0); {конец цикла с постусловием}
{------------------------------ввод значений элементов массива-------------------}
Clrscr;
Gotoxy (36,2);
textattr:=green;
writeln ('Внимание!!');
gotoxy (15,3);
writeln ('значение элемента должно быть в пределе от -10000 до 10000');
textattr:=white;
gotoxy(2,5);
writeln('Введите элементы матрицы:');
textattr:=yellow;
for i :=1 to n do
for j:=1 to n do
begin
repeat
wite('a[',i,',',j,']=');
{$i-};
readln(a[i,j]);
Error:=IOResult;
{$+};
if (a[i,j]>=10000) or (a[i,j]<= -10000) or (error<>0) then
begin
Textattr:=red:
writeln ('Ошибка в значении элемента массива! Повторите ввод!');
end;
Textattr:=yellow;
until (a[i,j]<=10000) and (a[i,j]>= -10000) and (error=0);
end;
{------------------------------Вывод результатов программы---------------------}
Clrscr;
Gotoxy (3,3);
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to n do
begin
write(a[i,j]:4:0);
end;
writeLn;
end;
writeLn;
textattr:=white;
sm:=0;
for i:=1 to n do
for j:=i+1 to n do
sm:=sm+a[i,j];
writeln('Сумма над главной диагональю',sm:3:0);
sp:=0;
for i:=2 to n do
for j:=1 to i-1 do
sp:=sp+a[i,j];
writeLn('Сумма под главной диагональю',sp:3:0);
gotoxy (20,24);
textattr:=green;
writeln ('Хотите отсортировать еще один массив? (Y-да, N-нет)');
L2: Case readkey of {конструкция выбора, проверяющая вводимые данные и выполняющая действие в зависимости от ввода данных}
#89:goto L1;
#121:goto L1;
#78:exit;
#110:exit;
end;
Goto L2;
end. {конец программы}
