Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Контрольные работы / 2- 6_Информационные технологии данных

.doc
Скачиваний:
72
Добавлен:
23.06.2014
Размер:
311.81 Кб
Скачать

Контрольная работа №2

Задана целочисленная матрица А(1520). Получить массив В(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