Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Паскаль.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

Зразок виконання індивідуального завдання

Завдання 1. Увести у файл інформацію про студентів групи (прізвище, домашню адресу, телефон, вік, екзаменаційні оцінки). Вивести інформацію про встигаючих студентів та студентів-відмінників(їх прізвища). Число студентів групи - №.

1) Виконання завдання 1. Складемо алгоритм розв’язання поставленої задачі у вигляді графічної блок-схеми (рис.3.6.2).

Напишемо програму мовою ТР7.0, яка реалізує наведений алгоритм.

Оскільки інформація про студента є сукупністю різних за типом і змістом даних, то для її зберігання зручно використати запис (тип даних RECORD). Тоді програма матиме вигляд:

PROGRAM INFORM GRUP;

USES Crt;

TYPE STUDENT=RECORD {тип даних запис}

PRIZVUSHE:=STRING [25]; {рядковий тип}

ADRESA: STRING [50];

TELEFON: STRANG [10];

VIK: 15..25; {обмежений тип даних}

ECZAMEN: RECORD FIZIKA,MATHEM,PROGR:2..5;

END; {укладений запис}

END;

VAR INFORM STUD: STUDENT;

GRUP: FILE OF STUDENT; {опис файлової змінної}

FILE NAME: STRING [20]; i: INTEGER;

CONCT N=25: {кількість студентів у групі}

BEGIN

CrlScr;

WRITE(‘Уведіть ім’я файла на дискові:’);

READLN (FILE NAME);

ASSIGN (GRUP, FILE NAME); { зв’язування }

REWRITE9GRUP); {створення і відкриття файла}

FOR i:=1 TO N DO {введення інформації про студентів}

BEGIN

WITH INFORM STUD, ECZAMEN DO

BEGIN

WRITE (‘Прізвище, ім’я та по батькові студента:’);

READLN (PRIZVUSHE);

WRITE (‘адреса:’);

READLN (ADRECA);

WRITE (‘телефон’);

READLN (TELEFON);

WRITE (‘вік’);

READLN (VIK);

WRITE (‘екзаменаційні оцінки:’);

READLN (FIZIKA, MATHEM, PROGR);

END;

WRITE (GRUP, INFORM STUD); {запис у файл}

END;

CLOSE (GRUP); {закриття файла}

RESET (GRUP); {повторне відкриття файла}

{указівник файла переміщується на початок}

WHILE NOT EОF (GRUP) DO {кінець файла}

BEGIN

READ (GRUP, INFORM STUD); {зчитування інформації}

WITH INFORM STUD, ECZAMEN DO

BEGIN

IF (FIZIKA>2) AND (MATHEM>2) AND (PROGR>2)

THEN

WRITELN (‘устигаючий’, PRIZVISHE);

IF FIZIKA+MATHEM+PROGR=15

THEN

WRITELN (‘відмінник’, PRIZVUSHE);

END;

END;

CLOSE (GRUP);

END.

так

ні

так

ні

так

ні

так

Рис.3.6.2.Блок-схема введення інформації про студента групи в файл та її обробки

Особливістю наведеної програми є те, що одне поле запису STUDENT в свою чергу також є змінною типу RECORD (поле ECZAMEN). Оскільки поля цього вкладеного запису (назви екзаменаційних дисциплін) мають однаковий тип (обмежений тип 2..5), то їх можна об’єднати, записавши через кому.

Зверніть також увагу на використання в даній програмі оператора під’єднання WITH..DO, який робить її більш компактною.

Після закінчення введення інформації про студентів групи виконується закриття файла (процедура GLOSE), а потім повторне його відкриття (процедура RESET). Цей прийом застосовується для переведення вказівника файла на його початок, щоб потім виконувати зчитування інформації саме з початку файла до його кінця. Хоча для переміщення вказівника можна використовувати й інші засоби (наприклад, процедуру SEEK).

Зчитування інформації з файла організовано за допомогою циклу WHILE..DO. Він використовується до тих пір, поки не буде досягнуто кінця файла (коли умова NOT EОF ( ) стане хибною).

Завдання 2. Виконувати введення слів у файл до тих пір, поки не буде введено слово, що містить N букв (символів). Вивести число введених слів та слова, що містять непарну кількість символів.

Виконання завдання. Складемо алгоритм розв’язку поставленої задачі у вигляді графічної блок-схеми (рис.3.6.3).

Напишемо програму мовою ТР7.0, яка реалізує наведений алгоритм.

PROGRAM FILE SLOVO;

USES Crt;

VAR SLOVO:STRING; I,N: INTEGER;

WESTERN: FILE OF STRING; FILE NAME: STRING[20];

BESIN ClrScr;

WRITE (‘Введіть потрібну довжину слова:’);

READLN(N);

WRITE(‘Введіть ім’я файлу на дискові:’);

READLN(FILE NAME);

ASSIGN(WESTERN,FILE NAME);

REWRITE(WESTERN);

I:=0;

REPEAT

I:=I+1;

WRITE( :);

READLN(SLOVO);

WRITE(WESTERN,SLOVO);

UNTIL Length(SLOVO)=N; {довжина введеного слова }

WRITELN(’Кількість введених слів:’,i);

CLOSE(WESTERN);

RESET(WESTERN);

WHILE NOT EОF(WESTERN)DO

ні

так

ні

ні

т

так

Рис.3.6.3.Блок-схема введення слів у файл та їх обробки

BEGIN

READ(WESTERN,SLOVO);

IF LENGTH(SLOVO)MOD 2<>0 THEN

WRITELN(SLOVO);

END;

READLN;

CLOSE(WESTERN);

END.

Зверніть увагу на те, як визначаються слова, що містять непарну кількість символів. Це робиться за допомогою операції МОD, яка виробляє остачу від ділення на два; якщо остача не дорівнює нулю, то ділене число непарне.

2)Введемо, налагодимо і виконаємо програми за комп’ютером.