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

Структури (записи), як цілісні об’єкти, можна

  • присвоювати (але не можна порівнювати),

  • передавати в якості параметра у підпрограму,

  • повертати як результат із підпрограми.

У С++ передача структури в якості параметра функції можлива як за іменем, так і за покажчиком. Наприклад,

void f1(TStudent stud_new);

void f2(TStudent *ps)

Щоб мати змогу змінити структуру, у функцiю пеpедається покажчик на неї. Повернення структури як результата з функції також здійснюється тільки за покажчиком. Наприклад,

TStudent f1(TStudent stud_new).

Всі інші дії виконуються тільки з полями, відповідно до їх типу.

    1. Приклад програми

Приклад 1. Створити масив записів, кожен з яких складається з наступних елементів: прізвище студента, його екзаменаційні оцінки. Визначити кількість студентів, прізвища яких починаються із заданої літери, і середній бал яких не менше за заданий з клавіатури.

program Lab_rec;

uses crt;

const n = 25;

type disciplines = (OP,KDM,Рhysics);

student = record

FIO : string [40];

marks : array[disciplines] of 1..5;

end;

var group : array[1..n] of student; { масив студентів }

i,j,k,bal : integer; { параметр циклу }

ch : char; { кількість слів }

s_bal : real;

{================ введення масиву записів ====================}

procedure Input_group;

begin

for i:=1 to n do

begin

with group[i] do

begin

Write('FIO: '); ReadLn(FIO);

Write('marks OP: '); ReadLn(marks[OP]);

Write('marks KDM: '); ReadLn(marks[KDM]);

Write('marks рhysics: '); ReadLn(marks[рhysics]);

end;

end;

end;

{============== виведення масиву записів на екран ==============}

procedure Output_group;

begin

for i:=1 to n do

begin

with group[i] do

begin

Write(FIO : 7);

Write(marks[OP] : 3);

Write(marks[KDM] : 3);

Write(marks[рhysics] : 3);

WriteLn

end;

end;

end;

{== визначення кількості студентів, дані про яких відповідають запиту ==}

procedure amount;

begin

k:=0;

for i:=1 to n do

with group[i] do

begin

s_bal:=(marks[OP]+marks[KDM]+marks[рhysics])/3;

if (Copy(FIO,1,1)=ch) and (s_bal>bal) then k:=k+1;

end;

{=================== основна програма ======================}

begin

TextBackGround(7);

TextColor(0);

ClrScr;

Input_group; { введення масиву записів }

Output_group; { виведення масиву записів }

Write('input char: '); ReadLn(ch);

Write('input bal: '); ReadLn(bal);

Amount; { визначення кількості студентів }

Write(‘kol = ‘); WriteLn(k);

end.

Відеокопія результату

    1. Варіанти завдань

  1. Створити масив записів, що містить інформацію про книги особистої бібліотеки: прізвище автора, назва книги, рік видання. З'ясувати, скільки і яких книг вказаного автора є в бібліотеці.

  2. Створити масив записів, що містить інформацію про вчителів школи: їх прізвища та ініціали, дату народження, педагогічний стаж, домашній телефон. Видати список вчителів-пенсіонерів педагогічний стаж яких більше 20 років, вказавши їх домашній телефон.

  3. Створити масив записів, що містить інформацію про квартиронаймачів: їх прізвища та ініціали, домашню адресу, величину квартплати, позначку про оплату за останній місяць, суму боргу (при її наявності). Видати список квартиронаймачів-боржників, їхню адресу і загальну суму боргу.

  4. Ввести масив записів, кожен з яких складається з наступних елементів: напрямок руху, номер авіарейса, тип літака, кількість вільних місць, вартість квитка, дні виконання рейсу. Визначити сумарну кількість вільних місць на літаки, що відлітають у заданому напрямку у заданий день тижня.

  5. Ввести масив записів, кожен з яких складається з наступних елементів: прізвище абонента, номер телефону, адреса, заборгованості по оплаті. Визначити прізвища абонентів, що мають заборгованість по оплаті більше заданої.

  6. Ввести масив записів, кожен з яких складається з наступних елементів: номер авіарейса, тип літака, дата вильоту, кількість вільних місць, вартість квитка. Визначити номера авіарейсів, на які у зазначений день є вільні місця.

  7. Ввести масив записів, кожен з яких складається з наступних елементів: назва фірми, товар (комп'ютери і програмне забезпечення), його вартість, регіон збуту, термін поставки. Визначити вартість програмного забезпечення, проданого в заданий термін у зазначеному регіоні зазначеною фірмою.

  8. Ввести масив записів, кожен з яких складається з наступних елементів: місто, вищий навчальний заклад, факультет, список спеціальностей, план прийому на перший курс, прохідний бал. Визначити факультет, навчальний заклад і місто, де на зазначену користувачем спеціальність найвищий прохідний бал.

  9. Ввести масив записів, кожен з яких складається з наступних елементів: місто, навчальний заклад, факультет, спеціальність, план прийому на перший курс. Визначити факультет, навчальний заклад і місто, де на зазначену користувачем спеціальність найбільший план набору.

  10. Ввести масив записів, кожен з яких складається з наступних елементів: прізвище та ім’я абонента, номер його телефону, адреса, вид оплати (похвилинна або абонементна), вартість оплати. Видати список абонентів з похвилинною оплатою, сума оплати в яких нижче заданого рівня.

  11. Ввести масив записів, кожен з яких складається з наступних елементів: фірма, найменування товару, його вартість. Визначити найменування товару, що поставляється зазначеною фірмою, вартість якого не перевищує заданого значення.

  12. Ввести масив записів, кожен з яких складається з наступних елементів: прізвище та ім’я абітурієнта, його постійне місце проживання і отримані бали по окремих дисциплінах (із діапазону 0  60). Визначити кількість абітурієнтів, що здали іспити із середнім балом не нижче 40.

  13. Ввести масив записів, що містить інформацію про вільні місця в поїздах по усім напрямкам на найближчий тиждень. Дана інформація представлена в наступному вигляді: дата відправлення, час відправлення, пункт призначення, кількість вільних купейних місць, кількість вільних плацкартних місць. Визначити загальну кількість місць на поїзди, що відправляються в зазначений пункт в заданий інтервал дат.

  14. Створити масив записів, що містить інформацію про товари, які імпортуються конкретним підприємством: найменування товару, країна, у яку він поставляється, обсяг партії, дата поставки. Визначити загальний обсяг імпорту зазначеного товару у зазначену країну за останній рік.

  15. Створити масив записів, що містить інформацію про співробітників підприємства: прізвище та ім’я співробітника, рік його народження, стать, код відділу, де він працює, посаду, оклад. Вивести список співробітників-жінок заданого відділу, чий оклад не перевищує двох мінімальних зарплат.

  16. Створити масив записів, що містить інформацію про учителів школи: прізвище та ім’я вчителя, дату його народження, педстаж, домашній телефон. Вивести список учителів, що мають зазначений педстаж, і їх домашні телефони.

  17. Створити масив записів, що містить інформацію наступного вигляду: найменування туристичної фірми, телефон, тур (країна), дата поїздки (місяць), вартість путівки. Визначити середню вартість путівок у зазначену країну у заданий період по всім фірмам.

  18. Створити масив записів, що містить інформацію наступного вигляду: прізвище абонента, його домашня адреса, час (сумарний) міжміських розмов за останній місяць і сума оплати, час (сумарний) міждународних розмов і сума оплати. Визначити прізвище і адресу абонента, що має найбільшу суму оплати за телефон за останній місяць.

  19. Створити масив записів, що містить інформацію про вкладників ощадбанку: прізвище, ім’я та по батькові вкладника, номер його рахунку, дата і сума кожного внеску. Видати номера рахунків, суми внесків на яких перевищують задану величину, і прізвище, ім’я та по батькові їх власників.

  20. Створити масив записів, що містить наступну інформацію: прізвище, ім’я та по батькові викладача, посада, дисципліна, яку він викладає. Вивести список викладачів-доцентів і дисципліни, які вони викладають.

  21. Створити масив записів, що містить наступну інформацію: прізвище студента, курс, форма навчання (бюджет / контракт), рейтинг (бал). Вивести список студентів-контрактників заданого курсу із рейтингом, не нижчим за зазначений.

  22. Створити масив записів, що містить інформацію про поставки бензину нафтопереробними підприємствами України: найменування підприємства-постачальника, пункт поставки (країна), обсяг поставки, дата поставки (місяць і рік). Як вихідну інформацію видати відомості про сумарні поставки бензину за кордон вказаним підприємством-постачальником у заданий термін (місяць і рік).

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

  24. Ввести масив записів, кожен з яких складається з наступних елементів: факультет, курс, група, прізвище та ім’я студента, його екзаменаційні оцінки. Визначити факультет і групу, у якій найбільше відмінників.

  25. Ввести масив записів, кожен з яких складається з наступних елементів: факультет, курс, група, прізвище та ім’я студента, екзаменаційні оцінки. Визначити групи факультетів, у яких немає двієчників.

Комп’ютерний практикум № 4

МНОЖИНИ

Мета роботи - опанувати прийоми формування і обробки множин.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]