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

Inc ( g ); { увеличить номер строки на 1 }

READ ( F, NAROD [ G ] ); { ЧИТАТЬ ИЗ ФАЙЛА СТРОКУ ЗАПИСИ № G}

END;

CLOSE ( F );

END;

Кроме ввода данных в файл и чтения из файла в курсовой работе необходимо организовать процедуры обработки запросов. В нашем примере программа должна давать следующую информацию:

  1. По вводимой с клавиатуры фамилии выдавать номер телефона и адрес;

  2. По вводимому с клавиатуры адресу выдавать номер телефона и фамилию.

Одним из требований к работе является организация записи , чтения информации, обработка запросов при помощи меню. Для успешного выполнения этого условия необходимо уметь применять оператор выбора CASE и пользоваться таблицей кодов ASCII. Для облегчения вашей работы в Приложении 5 методических указаний помещена таблица кодов, пример программы «Меню» приведен ниже:

PROGRAM MENU;

USES CRT;

CONST

M : ARRAY [ 1 . . 3] OF STRING = (‘ ПУНКТ 1 ‘, ‘ ПУНКТ 2 ’, ‘ ПУНКТ 3 ’ );

VAR

I, A : INTEGER;

C : CHAR; { КОД НАЖАТОЙ КЛАВИШИ }

BEGIN

A :=1;{ НОМЕР ПУНКТА МЕНЮ НА КОТОРОМ СТОИТ СВЕТОВОЙ КУРСОР }

TEXTBACKGROUND ( 1 );

CLRSCR; { ЦВЕТ СИНИЙ }

GOTOXY ( 20, 5 );

TEXTCOLOR ( 14 );

WRITELN (‘ МЕНЮ ПОЛЬЗОВАТЕЛЯ ‘);

GOTOXY ( 2, 23 );

WRITE (‘ ВЫБОР ПУНКТА МЕНЮ ’ + СHR ( 24 ) + ’ ‘ + CHR ( 25 ) + ’ ‘ );

WRITE ( ‘ ПОДТВЕРЖДЕНИЕ – ENTER. ESC – ВЫХОД. ’ );

TEXTCOLOR ( WHITE ); { ЦВЕТ БУКВ, КОТОРЫМИ НАПИСАНЫ ПУНКТЫ МЕНЮ}

REPEAT

FOR I := 1 TO 3 DO { I – НОМЕР СТРОКИ }

BEGIN

IF A = I THEN

TEXTBACKGROUND ( 3 )

{ ПОЛОСА – КУРСОР НА ПУНКТЕ МЕНЮ БИРЮЗ. ( 3 )}

ELSE

TEXTBACKGROUND ( 4 );

{ КРАСНЫЙ ФОН ПУНКТОВ, НА КОТОРЫХ НЕ СТОИТ КУРСТОР }

{ ПИШЕМ ВСЕ ПУНКТЫ МЕНЮ }

GOTOXY (30, 9 + I );

WRITELN ( M [ I ]);

END;

C := READKEY; { НАЖМИТЕ КЛАВИШУ }

IF C = # 0 THEN C := READKEY;

CASE C OF

# 80 : { СТРЕЛКА ВНИЗ }

BEGIN

INC ( A );

{ НОМЕР СТРОКИ, НА КОТОРУЮ ПЕРЕВЕДЕН КУРСОР, УВЕЛИЧ.}

IF A > 3 THEN A := 1;

END;

# 72 : {СТРЕЛКА ВВЕРХ }

BEGIN

DEC ( A );

IF A < 1 THEN A :=3;

END;

# 13 : { НАЖАТА ENTRE}

BEGIN

CASE A OF

1 : BEGIN

SOUND ( 700 ); DELAY ( 2000 ); NOSOUND;

END;

2 : BEGIN

SOUND ( 400 ); DELAY ( 3000 ); NOSOUND;

END;

3 : HALT;

END;

END;

END;

UNTIL C = # 27;

END.

Заставка к программе может быть создана как в текстовом, так и в графическом режиме и должна содержать информацию о программе и о создателе, например:

СВЕДЕНИЯ О ПРОГРАММЕ:

ПРОГРАММА ПРЕДУСМАТРИВАЕТ:

ПОИСК НОМЕРА ТЕЛЕФОНА ПО ФАМИЛИИ,

ПО АДРЕСУ.

ПРОГРАММА РАСЧИТАНА НА 50 ТЕЛЕФОНОВ;

ПРОГРАММА СОСТАВЛЕНА СТУДЕНТОМ ГРУППЫ БИС – 101

ЛЕОНОВЫМ ЕВГЕНИЕМ

ДАТА: 20.04.2011 Г.

Рекомендуется использовать различные цвета символов, цвета фона, окон, шрифтов и др.

  1. Методические указания по выполнению второго задания

3.1. Работа с двумерными массивами

Во втором задании курсовой работы необходимо составить блок-схему алгоритма и программу обработки двумерного массива. При решении этих задач используются основные алгоритмы для работы с массивами:

  1. заполнение массива

по строке:

FOR I :=1 TO N DO { ВНЕШНИЙ ЦИКЛ – I ИНДЕКС СТРОКИ }

FOR J := 1 TO M DO

{ ВНУТРЕННИЙ ЦИКЛ – J –ИНДЕКС СТОЛБЦА}

READ ( A [ I, J ] );

по столбцу:

FOR J :=1 TO M DO { ВНЕШНИЙ ЦИКЛ – J ИНДЕКС СТОЛБЦА }

FOR I := 1 TO N DO

{ ВНУТРЕННИЙ ЦИКЛ – I –ИНДЕКС СТРОКИ}

READ ( A [ I, J ] );

  1. вывод на экран содержимого массива в виде таблицы:

FOR I :=1 TO N DO

BEGIN

FOR J := 1 TO M DO

{ ПЕЧАТАЮТСЯ ЭЛЕМЕНТЫ I –Й СТРОКИ }

WRITE ( A [ I, J ], ‘ ‘ );

{ КУРСОР ПЕРЕМЕЩАЕТСЯ НА СЛЕДУЮЩУЮ СТРОКУ }

WRITELN;

END;

  1. вычисление суммы элементов:

массива:

. . .

. . .

S := 0;

FOR I :=1 TO N DO

FOR J := 1 TO M DO

S := S + A [ I,J ];

Строки:

FOR I :=1 TO N DO

BEGIN

S := 0;

FOR J := 1 TO M DO

S := S + A [ I,J ];

{ ВЫВОД СУММЫ И НОМЕРА СТРОКИ }

WRITELN ( S, I );

END;

Столбца:

FOR J :=1 TO N DO

BEGIN

S := 0;

FOR I := 1 TO M DO

S := S + A [ I,J ];

{ ВЫВОД СУММЫ И НОМЕРА СТОЛБЦА }

WRITELN ( S, J );

END;

  1. поиск максимального ( минимального ) элемента:

массива:

MAX := A [ 1, 1 ];

IMAX := 1;

JMAX := 1;

FOR I :=1 TO N DO

FOR J := 1 TO M DO

IF A [ I, J ] > MAX THEN

BEGIN

MAX := A [ I, J ];

IMAX := I;

JMAX := J;

END;

Строки:

FOR I :=1 TO N DO

BEGIN

MAX := A [ I, 1 ];

FOR J := 2 TO M DO

IF A [ I, J ] > MAX THEN MAX := A [ I, J ];

END;

Столбца:

FOR J :=1 TO M DO

BEGIN

MAX := A [ 1, J ];

FOR I := 2 TO N DO

IF A [ I, J ] > MAX THEN MAX := A [ I, J ];

END;

  1. упорядочивание элементов массива.

Эту операцию производят при помощи одного из методов сортировки. Некоторые из них описаны в методических указаниях для самостоятельной работы по Информатике. (8)