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



Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать неотразимый комплимент Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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: 430; Нарушение авторских прав



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