Задача 6.
Составить программу, с помощью которой необходимо элементы главной диагонали оформить в виде одномерного массива и этот массив вывести на печать.
Program_tub;
Var a:array[1..5, 1..5]_of_integer; b:array[1..5]_of_integer;
Begin
i:=1_to_5_do j:=1_to_5_do_begin
writeln (´введите a[´, i:2, ´, ´, j:2, ´] ´); readln (a[i, j]);
end; for_i:=1_to_5_do for_j:=1_to_5_do
if_i=j then b[i]:=а[i, j]); for_i:=1_to_5_do writeln (b[i]);
End.
Задача 7.
Составить программу на обработку двумерной матрицы 5 5 по следующему алгоритму: вместо отрицательных элементов матрицы вставить нули, результат обработки вывести на экран дисплея в виде квадратной матрицы.
Program_matr;
Var a:array[1..5, 1..5]_of_integer; i, j:integer;
Begin
for_i:=1_to_5_do for_j:=1_to_5_do_begin
written (´введите a[´, i:2, ´, ´, j:2, ´] ´); readln (a[i, j]);
end;
S:=0 for_i:=1_to_5_do for_j:=1_to_5_do
if_а[i, j]<0_then_a[i, j]:=0; for_i:=1_to_5_do_begin for_:=1_to_5_do write (a[i, j]:3); Writeln;
End;
End.
Задача 8.
Составить программу для суммирования всех положительных элементов матрицы 5 5. Pogram_matr;
Var i,j:integer;
a:array[1..5,1..5]_of_integer; Begin
For_i:=1_to_5_do
For_j:=1_to_5_do Read(a[i,j]); For_i:=1_to_5_do For_j:=1_to_5_do If_a[i,j]<0_then_s:=s+a[i,j]; Write(s);
End.
Задача 9.
Составить программу для суммирования всех элементов матрицы, расположенных над главной диагональю матрицы.
Pogram_matr; Var s,i,j:integer;
a:array[1..5,1..5]_of_integer; Begin
For_i:=1_to_5_do
For_j:=1_to_5_do Read(a[i,j]); For_i:=1_to_5_do For_j:=1_to_5_do
If_i > j _then_s:=s+a[i,j]; Write(s);
End.
Задача 10.
Составить программу для обработки двумерного массива на предмет определения максимальной величины элемента массива.
Program_matr;
i, j, max:integer; a:array[1..5, 1..5]_of_integer;
Begin
for_i:=1_to_5_do for_j:=1_to_5_do read a[i, j]; max:=a[1, 1]; for_i:=1_to_5_do
for_j:=1_to_5_do
if_а[i, j]>max_then_max:=a[i, j]; Writeln(max);
End.
Задача 11.
Программная обработка символьных данных.
Выше (4.2.1.) было отмечено, что символьные данные можно сравнивать. Такое сравнение может быть осуществлено с помощью соответствующих операторов, используя в них символы сравнения:
<,<=,>,>=,=.
Для того, чтобы осуществлять сравнения данных типа Char, необходимо знать, что компьютер «знает», что
‗0‘<‘1‘<‘2‘<‘3‘….. <‘9‘
т.е. сравнение такое, как и у обычных цифр.
В то же время следует знать, что компьютер «знает» следующее соотношение:
‗a‘<‘b‘<‘<‘<…… <‘z‘.
т.е. сравнение символов осуществляет в зависимости от порядкового номера соответствующего символа в алфавите.
То же касается и заглавных букв латинского алфавита.
Заметим, что сравнивать, можно и символы из русского алфавита (как заглавных, так и прописных).
Учитывая изложенное можно привести программу, которая выводит на экран дисплея символы латинского алфавита от a до z.
Program alfavit; Var
Simv:Char; Begin
For_simv
:=‘a‘_to_‗z‘_do
Write(simv);
End.
ОПЕРАТОР ЦИКЛА WHILE-DO
Данный оператор называют оператором цикла с предусловием (с предпроверкой условия) и используется тогда, когда количество циклов заранее неизвестно, а задано некоторое условие его окончания (продолжения).
В общем виде такой оператор можно представить:
WHILE (условие) do (оператор)
Здесь:
WHILE (пока); DO (выполнить);
Условие – логическое, выражение (равенство или неравенство: больше, меньше или равно) после слова do должен стоять только один оператор, если по алгоритму их должно быть несколько, то их необходимо заключить в операторные скобки BEGIN - END.
Выполняя данный оператор ЭВМ проверяет условие после WHILE и если условие выполняется, то и выполняется оператор после do (группа операторов), если условие не выполняется, то и не выполняется оператор после слова do и цикл прекращается