Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Листинг 7.2. Текст присоединенного модуля со статическим массивом записей





UNIT UNIT_LR7;

INTERFACE

CONST N=5; // - количество студентов и записей в массиве

TYPE

ST=ARRAY[1..5] OF STRING[55];

ST1=STRING[12];

STRUC=RECORD // Запись в составе:

NZ:L0NGINT; //•- номер зачетки,

GR:STRING[6]; // - наименование группы,

FIO:ST1; // - фамилия,

RS: REAL; // - размер стипендии.

END;

С:ST=(СВЕДЕНИЯ О СТУДЕНТАХ // Шапка таблицы:

CONST

НОМЕР ЗАЧЕТНОЙ КНИЖКИ ГРУППА I ФАМИЛИЯ, ИНИЦИАЛЫ РАЗМЕР СТИПЕНДИИ

);

VAR Z: ARRAY [1..N] OF STRUC; //-массив записей

FI, FR: TEXTFILE; // -файлы для исходных данных и результатов

TFM: ST1; //- для поиска фамилии

PROCEDURE P(I: Integer); //- вывод I-элемента массива

PROCEDURE VIVOD; //- вывод массива записей

PROCEDURE VVOD; //- ввод массива записей

PROCEDURE SMENA; // смена строк таблицы местами

IMPLEMENTATION

// Вывод данных I-строки массива записей в текстовый файл

PROCEDURE P(I: Integer);

BEGIN

WITH Z[I] DO

WRITELN (FR, 'I', NZ: 10, 'I':8, ' ', GR, 'I':2,

FIO, 'I': 13 - LENGTH(FIO), RS: 9: 2, 'I': 4)

END;

// Удаление пробелов в начале и в конце строки;

FUNCTION FILTR (STR: ST1): ST1;

VAR

I, J, L: INTEGER;

BEGIN

L:= LENGTH (STR); //- определение длины строки

FOR I:= 1 TO L DO // - перебор номеров символов справа

IF STR[I] <> ' ' THEN

FOR J:= L DOWNTO I DO // - перебор номеров символов слева

IF STR[J] <> ' ' THEN BEGIN

FILTR:= COPY (STR, I, J-I+1);// - копирование строки

EXIT // - выход из функции

END;

FILTR:= ' '; // - возврат пустой строки

END;

// --- Вывод шапки таблицы в текстовый файл

PROCEDURE SH;

VAR I: INTEGER;

BEGIN

FOR I:= 1 TO 5 DO

WRITELN (FR, C[I]);

END;

// Вывод массива записей в текстовый файл

PROCEDURE VIVOD;

VAR I: INTEGER;

BEGIN

SH; // - вызов процедуры вывода шапки таблицы

FOR I:= 1 TO N DO

BEGIN

P(I); // - вывод записи

WRITELN (FR, C[5]) // - подчеркивание строки

END;

END;

// -------Ввод массива записей из текстового файла в 0П--------

PROCEDURE VV0D;

Var

I: integer;

В: CHAR; // - для пропуска символа при вводе

BEGIN

ASSIGNFILE (FI, 'LR7.DAT');

RESET (FI);

FOR I:= 1 TO N DO WITH Z[I] DO

BEGIN

READLN(FI, NZ, B, GR, B, FIO, RS); // - ввод очередной строки END;

FIO:= FILTR(FIO); // - фильтрация FI0

END;

CLOSEFILE (FI);

END;

// Смена местами двух строк таблицы

PROCEDURE SMENA;

VAR

STR1: STRUC; // - для перестановки строк

BEGIN

STR1:= Z[1]; Z[1]:= Z[N]; Z[N] := STR1;

WRITELN (FR, #10#13, 'Массив после перестановки строк:');

VIVOD; // - вывод шапки и результатов

END;

END.

Date: 2015-05-22; view: 546; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию