Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольная работа.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
656.9 Кб
Скачать
  1. Постановка задачи

Задана матрица, состоящая из 6 строк и 7 столбцов. Поменять местами элементы первого и последнего столбца. Элементы матрицы – целые числа.

  1. Таблица спецификаций глобальных переменных

Имя

Назначение

Тип

ОДЗ

M

Матрица

Целые числа

От 1 до 30

К

Количество строк матрицы

Целое число

От 1 до 6

N

Количество столбцов матрицы

Целое число

От 1 до 7

С

Вспомогательная переменная

Целое число

От 1 до 4

I,J

Индексные переменные

Целые числа

От 1 до 7

  1. Таблица спецификаций процедур и функций

Имя

Назначение

Параметры

Rus

Функция перекодировки ANSI– строки в ASCII- строку

Mes – параметр значение, преобразуемая строка

menu

Вывод меню

input_validation

Ввод элемента матрицы с проверкой

elem – параметр переменная, вводимый элемент

review

Вывод матрицы

matrix1 - параметр значение, имя матрицы

exchange

Обмен местами двух элементов матрицы

elem_1,elem_2 - параметры переменные, элементы матрицы

  1. Блок-схема алгоритма решения задачи

  1. Тесты

Тест 1

Исходная матрица

1 2 3 4 5

6 7 8 9 1

2 3 4 5 6

Результат

5 2 3 4 1

1 7 8 9 6

6 3 4 5 2

Тест 2

Исходная матрица

1 2 3

6 7 8

2 3 4

5 6 7

Результат

3 2 1

8 7 6

4 3 2

7 6 5

  1. Листинг программы

program Pr1;

{$APPTYPE CONSOLE}

uses

SysUtils;

type

Tmatrix=array[1..6,1..7] of integer;

var

matrix:Tmatrix;

c,i,j:integer;

m,n:integer;

{функция перекодировки ANSI- строки в ASCII- строку,

позволяет выдавать сообщения в консольном приложении на русском языке}

function Rus(mes:string):string;

var h:byte;

begin

for h:=1 to length(mes) do

case mes[h] of

'А'..'п':mes[h]:=Chr(Ord(mes[h])-64);

'р'..'я':mes[h]:=Chr(Ord(mes[h])-16);

end;

rus:=mes;

end;

{----------------Выводим меню на экран -----------}

procedure menu;

begin

writeln(rus('1-Ввод'));

writeln(rus('2-Вывод'));

writeln(rus('3-Решение'));

writeln(rus('0-Выход'));

write(rus('Ваш выбор->'));

end;

{------------- Выводим матрицу на экран ­----------}

procedure review(matrix1: Tmatrix);

begin

for i:=1 to m do

for j:=1 to n do

begin

write(matrix[i,j]:6);

if j=n then writeln;

end;

end;

{------------- Вводим элемент матрицы --------------}

procedure input_validation(var elem:integer);

var st:string[3];

code:integer;

begin

repeat

readln(st);

val(st,elem,code);

until(code=0);

end;

{----------- Меняем местами элементы ---------------}

procedure exchange(var elem_1,elem_2:integer);

var rab:integer;

begin

rab:=elem_1;

elem_1:=elem_2;

elem_2:=rab;

end;

{-----------Основная программа ---------------------}

begin

repeat

menu;

readln(c);

case c of

1:begin

write(rus('количесво строк m='));readln(m);

write(rus('количесво столбцов n='));readln(n);

writeln(Rus('Вводим матрицу'));

for i:=1 to m do

for j:=1 to n do

input_validation(matrix[i,j]);

end;

2:review(matrix);

3:begin

for i:=1 to m do

exchange(matrix[i,1],matrix[i,n]);

end;

end;

until c=0;

end.

Задача 2 Работа с массивами записей