
- •6.050103 «Програмна інженерія»
- •Одновимірні масиви
- •Теоретичні відомостi
- •Поняття масиву
- •Оголошення масиву
- •Доступ до елементів масиву
- •Обробка масивів
- •Приклад програми
- •Варіанти завдань
- •Контрольні питання
- •Багатовимірні масиви
- •Теоретичні відомостi
- •Обробка матриць
- •Масиви-параметри
- •Приклад програми
- •Варіанти завдань
- •Контрольні питання
- •Теоретичні відомості
- •Поняття рядка
- •Операції з рядками
- •Приклад програми
- •Варіанти завдань
- •Контрольні питання
- •Теоретичні відомості
- •Поняття структури
- •Оголошення структури
- •Доступ до полів структур
- •Обробка структур
- •Приклад програми
- •Варіанти завдань
- •Теоретичні відомостi
- •Приклад програми
- •Варіанти завдань
- •Бінарні файли
- •Теоретичні відомостi
- •Потоки і файли
- •Приклади програм
- •Варіанти завдань
- •Текстові файли
- •Теоретичні відомостi
- •Приклади програми
- •Варіанти завдань
- •Теоретичні відомостi
- •Приклади програм
- •Варіанти завдань
- •8.1 Теоретичні відомостi
- •8.2 Приклади програм
- •8.3. Варіанти завдань
- •Порядок виконання роботи та зміст звіту
- •Список рекомендованої літератури
- •1.1. Одновимірні масиви ............................................................................... 3
Обробка структур
Структури (записи), як цілісні об’єкти, можна
присвоювати (але не можна порівнювати),
передавати в якості параметра у підпрограму,
повертати як результат із підпрограми.
У С++ передача структури в якості параметра функції можлива як за іменем, так і за покажчиком. Наприклад,
void f1(TStudent stud_new);
void f2(TStudent *ps)
Щоб мати змогу змінити структуру, у функцiю пеpедається покажчик на неї. Повернення структури як результата з функції також здійснюється тільки за покажчиком. Наприклад,
TStudent f1(TStudent stud_new).
Всі інші дії виконуються тільки з полями, відповідно до їх типу.
Приклад програми
Приклад 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.
Відеокопія результату
Варіанти завдань
Створити масив записів, що містить інформацію про книги особистої бібліотеки: прізвище автора, назва книги, рік видання. З'ясувати, скільки і яких книг вказаного автора є в бібліотеці.
Створити масив записів, що містить інформацію про вчителів школи: їх прізвища та ініціали, дату народження, педагогічний стаж, домашній телефон. Видати список вчителів-пенсіонерів педагогічний стаж яких більше 20 років, вказавши їх домашній телефон.
Створити масив записів, що містить інформацію про квартиронаймачів: їх прізвища та ініціали, домашню адресу, величину квартплати, позначку про оплату за останній місяць, суму боргу (при її наявності). Видати список квартиронаймачів-боржників, їхню адресу і загальну суму боргу.
Ввести масив записів, кожен з яких складається з наступних елементів: напрямок руху, номер авіарейса, тип літака, кількість вільних місць, вартість квитка, дні виконання рейсу. Визначити сумарну кількість вільних місць на літаки, що відлітають у заданому напрямку у заданий день тижня.
Ввести масив записів, кожен з яких складається з наступних елементів: прізвище абонента, номер телефону, адреса, заборгованості по оплаті. Визначити прізвища абонентів, що мають заборгованість по оплаті більше заданої.
Ввести масив записів, кожен з яких складається з наступних елементів: номер авіарейса, тип літака, дата вильоту, кількість вільних місць, вартість квитка. Визначити номера авіарейсів, на які у зазначений день є вільні місця.
Ввести масив записів, кожен з яких складається з наступних елементів: назва фірми, товар (комп'ютери і програмне забезпечення), його вартість, регіон збуту, термін поставки. Визначити вартість програмного забезпечення, проданого в заданий термін у зазначеному регіоні зазначеною фірмою.
Ввести масив записів, кожен з яких складається з наступних елементів: місто, вищий навчальний заклад, факультет, список спеціальностей, план прийому на перший курс, прохідний бал. Визначити факультет, навчальний заклад і місто, де на зазначену користувачем спеціальність найвищий прохідний бал.
Ввести масив записів, кожен з яких складається з наступних елементів: місто, навчальний заклад, факультет, спеціальність, план прийому на перший курс. Визначити факультет, навчальний заклад і місто, де на зазначену користувачем спеціальність найбільший план набору.
Ввести масив записів, кожен з яких складається з наступних елементів: прізвище та ім’я абонента, номер його телефону, адреса, вид оплати (похвилинна або абонементна), вартість оплати. Видати список абонентів з похвилинною оплатою, сума оплати в яких нижче заданого рівня.
Ввести масив записів, кожен з яких складається з наступних елементів: фірма, найменування товару, його вартість. Визначити найменування товару, що поставляється зазначеною фірмою, вартість якого не перевищує заданого значення.
Ввести масив записів, кожен з яких складається з наступних елементів: прізвище та ім’я абітурієнта, його постійне місце проживання і отримані бали по окремих дисциплінах (із діапазону 0 60). Визначити кількість абітурієнтів, що здали іспити із середнім балом не нижче 40.
Ввести масив записів, що містить інформацію про вільні місця в поїздах по усім напрямкам на найближчий тиждень. Дана інформація представлена в наступному вигляді: дата відправлення, час відправлення, пункт призначення, кількість вільних купейних місць, кількість вільних плацкартних місць. Визначити загальну кількість місць на поїзди, що відправляються в зазначений пункт в заданий інтервал дат.
Створити масив записів, що містить інформацію про товари, які імпортуються конкретним підприємством: найменування товару, країна, у яку він поставляється, обсяг партії, дата поставки. Визначити загальний обсяг імпорту зазначеного товару у зазначену країну за останній рік.
Створити масив записів, що містить інформацію про співробітників підприємства: прізвище та ім’я співробітника, рік його народження, стать, код відділу, де він працює, посаду, оклад. Вивести список співробітників-жінок заданого відділу, чий оклад не перевищує двох мінімальних зарплат.
Створити масив записів, що містить інформацію про учителів школи: прізвище та ім’я вчителя, дату його народження, педстаж, домашній телефон. Вивести список учителів, що мають зазначений педстаж, і їх домашні телефони.
Створити масив записів, що містить інформацію наступного вигляду: найменування туристичної фірми, телефон, тур (країна), дата поїздки (місяць), вартість путівки. Визначити середню вартість путівок у зазначену країну у заданий період по всім фірмам.
Створити масив записів, що містить інформацію наступного вигляду: прізвище абонента, його домашня адреса, час (сумарний) міжміських розмов за останній місяць і сума оплати, час (сумарний) міждународних розмов і сума оплати. Визначити прізвище і адресу абонента, що має найбільшу суму оплати за телефон за останній місяць.
Створити масив записів, що містить інформацію про вкладників ощадбанку: прізвище, ім’я та по батькові вкладника, номер його рахунку, дата і сума кожного внеску. Видати номера рахунків, суми внесків на яких перевищують задану величину, і прізвище, ім’я та по батькові їх власників.
Створити масив записів, що містить наступну інформацію: прізвище, ім’я та по батькові викладача, посада, дисципліна, яку він викладає. Вивести список викладачів-доцентів і дисципліни, які вони викладають.
Створити масив записів, що містить наступну інформацію: прізвище студента, курс, форма навчання (бюджет / контракт), рейтинг (бал). Вивести список студентів-контрактників заданого курсу із рейтингом, не нижчим за зазначений.
Створити масив записів, що містить інформацію про поставки бензину нафтопереробними підприємствами України: найменування підприємства-постачальника, пункт поставки (країна), обсяг поставки, дата поставки (місяць і рік). Як вихідну інформацію видати відомості про сумарні поставки бензину за кордон вказаним підприємством-постачальником у заданий термін (місяць і рік).
Ввести масив записів, кожен з яких складається з наступних елементів: фірма, вакантна посада, кількість вакантних місць, вимоги до претендентів на кожну посаду, зарплата. Визначити фірми з найбільшою кількістю вакансій на зазначену посаду.
Ввести масив записів, кожен з яких складається з наступних елементів: факультет, курс, група, прізвище та ім’я студента, його екзаменаційні оцінки. Визначити факультет і групу, у якій найбільше відмінників.
Ввести масив записів, кожен з яких складається з наступних елементів: факультет, курс, група, прізвище та ім’я студента, екзаменаційні оцінки. Визначити групи факультетів, у яких немає двієчників.
Комп’ютерний практикум № 4
МНОЖИНИ
Мета роботи - опанувати прийоми формування і обробки множин.