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