Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРАКТИКА-Отчет по программ.doc
Скачиваний:
3
Добавлен:
09.07.2019
Размер:
159.23 Кб
Скачать

6. Function Rus (mes:string):string

Функция перекодировки ANSI– строки в ASCII- строку, позволяет выдавать сообщения в консольном приложении на русском языке.

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

Наименование

Назначение

Тип

Область допустимых значений

Единицы измерения

mes

Строка для перевода из ANSI кода в ASCII код.

Строка

До 255 букв

-

h

Счетчик букв

Целое число

1..255

-

Словесно-математический метод решения задачи.

h=1;

1 Если h ≤длине строки mes тогда:

2 Если h-ый элемент строки mes лежит между «А» и «п», то

Найти код символа, отнять от кода символа 64, присвоить символу символ с полученным кодом.

Иначе если h-ый элемент строки mes лежит между «р» и «я», то

Найти код символа, отнять от кода символа 16, присвоить символу символ с полученным кодом.

Конец условия 2.

h=h+1;

Проверка условия 1.

Тело основной программы.

Программа осуществляет поиск элемента, равный 10 и присваивание коэффициенту К одно из значений .

Словесно-математический метод решения задачи.

  1. Если R 0, то:

Вывод надписи: «Введите выбранную цифру» с использованием функции rus;

Ввод R;

2. Если R=1, то вызов процедуры Input(mat);

Конец условия 2.

3. Если R=2, то вызов процедур RND(Mat) и Output(Mat);

Конец условия 3.

4. Если R=3, то вызов процедуры Output(Mat);

Конец условия 4.

5. Если R=4, то вызов процедуры Obmen14(Mat);

Конец условия 5.

6. Если R>4, то вывод надписи 'Данной цифры не указано в меню. Введите цифру от 0 до 4' с использованием функции rus;

Конец условия 6.

Проверка условия 1.

Если условие 1 не выполняется, закрыть программу.

Тесты.

Номер теста

Начальная матрица

Результат

1

4

3

3

5

1

5

3

5

7

0

1

2

6

8

3

7

3

4

3

3

8

3

3

4

10

7

6

5

1

6

4

7

5

2

3

0

6

5

3

4

7

3

5

8

9

1

6

4

8

7

К=1

2

1

1

1

1

1

2

2

2

2

2

3

3

3

3

3

4

4

4

4

4

5

5

5

5

5

6

6

6

6

6

7

7

7

7

7

8

8

8

8

8

9

9

9

9

9

0

0

0

0

0

К=0

Блок-схема.

Исходный текст программы.

program Mat_obm_14_with_MENU;

{$APPTYPE CONSOLE}

uses

SysUtils;

const

m=10;

n=5;

Type

TM = Array[1..m,1..n] of Integer;

var

Mat:TM;

R:integer;

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;

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

writeln(rus('1-Ввод от руки'));

writeln(rus('2-Заполнение матрицы случайными числами + вывод'));

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

writeln(rus('4-Поиск элемента'));

writeln;

end;

Procedure Input(var V:TM);

Var I,J:Integer;

Begin

Writeln(rus(Введите элементы матрицы: ));

For I:=1 to m do

begin

For j:=1 to n do

Read(V[i,j]);

Writeln;

end;

End;

Procedure RND(var V:TM);

Var I,J:Integer;

Begin

Randomize;

For I:=1 to m do

begin

For j:=1 to n do

V[i,j]:=Random(10);

end;

End;

Procedure Poisk14(var V:TM);

Var R,j:integer;

Begin

for j:= 1 to n do

begin

R:=V[1,j];

V[1,j]:=V[4,j];

V[4,j]:=R;

end;

End;

Procedure Output(Var V:TM);

var i,j:integer;

Begin

for i:=1 to m do

begin

for j:=1 to n do

Write(V[i,j],' ');

Writeln;

end;

End;

begin

Menu;

Repeat

writeln(rus('Введите выбранную цифру: '));

readln(R);

if R=1 then Input(Mat);

if R=2 then

begin

RND(Mat);

Output(Mat);

end;

if R=3 then Output(Mat);

if R=4 then Obmen14(Mat);

if R>4 then writeln(rus('Данной цифры не указано в меню. Введите цифру от 0 до 4'));

Until R=0;

End.

Результат работы.

2