Контрольные работы / 2- 6_Информационные технологии данных
.doc
Контрольная работа №2
Задана целочисленная матрица А(1520). Получить массив В(15) типа boolean, пpисвоив k-му элементу значение true, если k-я стpока массива симметpична и значение false в противном случае. Значения элементов матрицы ввести с клавиатуры.
Листинг программы
program massiv; {Заголовок программы}
uses crt; {Используемые модули}
const n=15; m=20; v=10; {Кол-во строк, столбцов и 1/2 столбца для
симметричности}
type mas=array[1..n,1..m]of integer;
mas1=array[1..n]of boolean; {Используемые переменные}
mas2=array[1..v] of integer; mas3=array[1..v] of integer;
var a:mas; b:mas1; z:mas2; x:mas3;i,j,l,k:integer;
begin
clrscr; {Очистить экран}
writeln('Vvedite elementy matricy: '); {Вывод сообщения}
for i:=1 to n do
for j:= 1 to m do
readln(a[i,j]); {Ввод элементов матрицы}
for i:=1 to n do
b[i]:=false; {Заполнение логического массива
значениями FALSE}
writeln('Vvedite nomer stroki dla proverki: '); {Вывод сообщения}
readln(k); {Ввод номера строки}
if k>m then {Если номер строки введен неверно}
begin
writeln('Takogo nomera stroki ne suchestvuet!!!'); {Вывод сообщения}
writeln('Najmite Enter dla vyhoda!'); {Вывод сообщения}
readln; {Ожидание ввода}
halt(1); {Выход из программы}
end;
for i:=1 to v do
z[i]:=a[k,i]; {Заполнение массива 1/2 строки}
l:=0; {Счетчик}
for i:=v+1 to m do {Цикл}
begin
x[i-v]:=a[k,m-i+v+1]; {Заполнение массива второй половиной
строки в обратном порядке}
end;
for i:=1 to v do
if z[i]=x[i] then l:=l+1; {Проверка количества симметричных
символов}
if l=v then {Если строка симметрична}
b[k]:=true; {То соответствующему элементу
присваивается значение TRUE}
if l<>v then {Если нессиметрична}
writeln('Stroka ',k,' nesimmetrichna'); {То вывод сообщения}
writeln;
writeln('Logicheskiy massiv: '); {Вывод сообщения}
for i:=1 to n do
writeln(b[i]); {Вывод логического массива}
readln; {Ожидание ввода}
end. {КОНЕЦ}
Окно программы выглядит следующим образом:
От пользователя требуется ввести элементы матрицы размером 15х20 (300 элементов). Если мы ввели матрицу, строка, номер которой мы ввели, то окно результатов выполнения программы выглядит так:
Если строка матрицы, номер которой был введен, симметрична, то результат будет следующим:
Результаты выполнения программы:
Если введенная матрица следующего вида:
1 2 3 4 5 5 4 3 2 1 1 1 1 1 1 1 1 1 1 1
1 2 3 4 5 5 4 3 2 1 1 1 1 1 1 1 1 1 1 1
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
И номер строки, который мы ввели, 2, то результат будет следующим:
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
Если матрица, которую мы ввели, имеет следующий вид:
1 2 3 4 5 6 7 8 9 0 0 9 8 7 6 5 4 3 2 1
1 2 3 4 5 5 4 3 2 1 1 1 1 1 1 1 1 1 1 1
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
И номер строки, который мы ввели, 1, то результат будет следующим:
TRUE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE
FALSE