Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Приклад складання програми із записами



 

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

 
 

Форму та результати роботи проекту програми наведено на рис 7.1.

На формі використовано компоненти :

- для значень “Країна” – компонент ComboBox1(початкові значення: “Україна”, “Росія”, “Молдова”, “Грузія” введені через властивістьItems; властивість для опрацювання у программі – Text);

- для значень “Медалі” – компонент RadioGroup1 (початкові значення: “золота”, “срібна”, “немає” введені через властивістьItems; властивість для опрацювання в програмі – ItemIndex);

- для значень “Область”, “Прізвище” та “середній бал” – компоненти Edit1, Edit2, Edit3.

 

Текст модуля програми.

 

unit Unit1;

Interface

Uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, ExtCtrls;

Type

TForm1 = class(TForm)

ComboBox1: TComboBox;

Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel;

RadioGroup1: TRadioGroup;

Button1: TButton; Button2: TButton; Button3: TButton;

Button4: TButton; Button5: TButton;

Memo1: TMemo; Memo2: TMemo;

Edit1: TEdit; Edit2: TEdit; Edit3: TEdit;

procedure TForm1.FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

…………………………..

Implementation

{$R *.DFM}

 

Type abitur = record

country: string[10];

oblast: string[15];

family: string[12];

sr_bal: real;

medal: char;

end;

 

{Опис глобальних параметрів – масиву записів та їхньої кількості }

var m_zap:array[1..20]of abitur; {масив записів}

k:integer; {поточна кількість введених записів}

 

// Підпрограма початкових значень проекту

procedure TForm1.FormCreate(Sender: TObject);

Begin

k:=0;

end;

 

// Підпрограма кнопки ” Додати запис”

procedureTForm1.Button1Click(Sender: TObject);

Begin

k:=k+1;

with m_zap[k] do

begin

country:=ComboBox1.text;

oblast:=Edit1.text;

family:=Edit2.text;

sr_bal:=StrToFloat(Edit3.Text);

Case RadioGroup1.ItemIndex of

0: medal:='з';

1: medal:='с';

2: medal:='н';

end;

end;

end;

// Підпрограма кнопки ” Очистити”

procedure TForm1.Button2Click(Sender: TObject);

Begin

k:=0;

СomboBox1.Clear;

Edit1.Clear; Edit2.Clear; Edit3.Clear;

memo1.Clear;

end;

 

// Підпрограма кнопки ” Переглядання усіх записів”

procedure TForm1.Button3Click(Sender: TObject);

var sbal,dan:string; smed:string; i:integer;

Begin

memo1.Clear;

Memo1.Lines.Add(‘| Прізвище | Країна | Область | Середній бал| Медаль|’);

for i:=1 to k do

with m_zap[i] do

begin

case medal of

'з': smed:='золота';

'с': smed:='срібна';

'н': smed:='немає';

end;

str(sr_bal:5:2,sbal);

dan:=family+' | '+country+' | '+oblast+ ' | '+ sbal+' | '+ smed;

memo1.Lines.Add(dan);

end;

end;

// Підпрограма кнопки ” Вибір записів за умовою”

procedure TForm1.Button4Click(Sender: TObject);

var sbal,dan:string; smed:string;i:integer;

begin memo2.Lines.Add('Медалисты');

for i:=1 to k do

with m_zap[i] do

if (medal='з') Or (medal='с') then

Begin

case medal of

'з': smed:='золотая';

'с': smed:='серебрянная';

end;

dan:=family+' | '+country+' | '+ smed;

memo2.Lines.Add(dan);

end;

end;

 

// Підпрограма кнопки ” Вихід”

procedure TForm1.Button5Click(Sender: TObject);

Begin

close

end;

 

End.

4 Контрольнi запитання

1 Що розумiють пiд записом у мовi Object Pascal?

2 Що таке поле запису, складене ім’я?

3 Як оголосити запис у програмi?

4 Якi операцiї припустимi над записами?

5 Чим рiзняться помiж собою масиви та записи?

6 Яке є призначення оператора приєднання? Наведiть приклади.

7 Як органiзувати введення та виведення даних типу “запис”?

8 Об’явіть запис, який містив би таку iнформацiю: назва заводу-виготовляча, назва виготовленого ним товару, цiна одиницi товару.

5 Лабораторне завдання

1 Вивчити теоретичний матеріал. Знати правила оголошення записiв, органiзацiю роботи із записами, використання компонент RadioGroup та ComboBox.

2 Пiдготувати у протоколі таблицю даних з iнформацiєю, наведеною у табл.7.2, вiдповiдно до номера варiанта. Кiлькiсть записiв у таблиці даних має бути не менше за 5.

Таблиця 7.2 − Варіанти змісту таблиці з записами

Варiанти Iнформацiя
1…6 Список робiтникiв заводу: прiзвище, рiк народження, посада, зарплатня, освіта
7…12 Список студентiв: прiзвище, група, рiк народження, оцiнки з фiзики, математики, інформатики
13…18 Список товарiв на складi: найменування, цiна, кiлькiсть, рiк ви-готовлення, виготовляч
19…24 Список комп’ютерів: назва, частота, об’єм оперативної та дис-кової пам’ятi, наявність CD ROM, вартiсть
25…30 Список радiозаводiв: назва, призвіще директора, кiлькicть робiт-никiв, обсяг виготовленої продукцiї кожного кварталу року

3 Скласти проект програми, за допомогою якого можна вводити відомості про об’єкти таблиці даних (п. 2) та утворити з них масив даних типу “запис”. Для введення даних використовувати різні компоненти: Edit, StringGrid, ListBox, RadioGroup та ComboBox (не менш трьох різних компонентів). Вивести увесь масив даних на форму проекта.

4 Скласти схему алгоритму та підпрограму, яка виконує над даними дiї згідно з варiантом iндивiдуального завдання, наведеного далі.

 

6 Iндивiдуальнi завдання

1 Визначити наймолодшого робiтника й надрукувати усi вiдомостi про нього.

2 Визначити робiтника з максимальною зарплатнею й надрукувати усi вiдомостi про нього.

3 Обчислити середню зарплатню робiтникiв і надрукувати прiзвища та зарплатню кожного.

4 Визначити кiлькiсть робiтникiв iз зарплатнею бiльше за 300 грн. і надрукувати усi вiдомостi про них.

5 Визначити кiлькiсть робiтників, старших за 60 рокiв, і надрукувати усi вiдомостi про них.

6 Визначити кiлькiсть працівникiв з фахом iнженера і надрукувати усi вiдомостi про них.

7 Обчислити середнiй бал оцiнок кожного студента й надрукувати їхні прiзвища та середнiй бал.

8 Надрукувати прiзвища студентiв, котрі склали математику на “5”, і визначити їхню кiлькiсть.

9 Надрукувати прiзвища та рiк народження студентiв, котрі склали усi icпити на “5”, і визначити їхню кiлькiсть.

10 Надрукувати прiзвища й оцiнки з усiх предметiв для студентiв, котрі вчаться лише на “4” та “5”.

11 Визначити кiлькiсть студентiв, яким бiльше за 19 рокiв, і надрукувати уci вiдомостi про них.

12 Обчислити середнiй бал оцiнок студентiв з фiлософiї й надрукувати прiзвища, рiк народження та оцiнки з інформатики всіх студентiв.

13 Визначити товар, якого за кiлькістю найбiльше на складi, і надру-кувати усi вiдомостi про нього.

14 Визначити найдорожчий товар на складi й надрукувати усi вiдомостi про нього.

15 Визначити середню вартicть усiх товарiв й надрукувати найменування товарiв та їхню вартiсть.

16 Визначити кiлькість найменувань товарiв, виготовлених поточного року, й надрукувати усi вiдомостi про них.

17 Визначити кiлькiсть товарiв, виготовлених бiльше як два роки тому, й надрукувати усi вiдомості про них.

18 Визначити загальну вартiсть усiх товарiв й надрукувати наймену-вання товарiв, їхню вартiсть та кiлькiсть на складi.

19 Визначити кiлькiсть комп’ютерів з об’ємом оперативної пам’ятi бiльш за 10 Гбайт і надрукувати усi вiдомостi про них.

20 Обчислити середню вартiсть комп’ютерів і надрукувати найменува-ння комп’ютерів та їхню вартiсть.

21 Визначити найдешевший комп’ютер і надрукувати усi вiдомостi про нього.

22 Визначити комп’ютер з максимальною частотою й надрукувати всi вiдомостi про нього.

23 Визначити комп’ютери, які мають CD ROM, і надрукувати всi вiдомостi про них.

24 Надрукувати всi вiдомостi про комп’ютери, вартiсть яких є менше за 400 доларiв, і визначити ихню кiлькiсть.

25 Визначити пiдприємство з мiнiмальною кiлькiстю робiтникiв i надрукувати всi вiдомостi про нього.

26 Визначити обсяг продукцiї, виготовленої за рiк кожним пiдприємством, i надрукувати найменування пiдприємств та обсяги продукцiї, виготовленої ними за рiк.

27 Визначити пiдприємство з максимальним обсягом виготовленої другого кварталу продукцiї й надрукувати всi вiдомостi про нього.

28 Визначити пiдприємство з максимальною продуктивнiстю у першому кварталі (продуктивність є вiдношення обсягу продукцiї у першому кварталі до кiлькостi робiтникiв) і надрукувати вiдомостi про нього.

29 Визначити кiлькiсть пiдприємств, якi третього кварталу виготовили продукцiї бiльше за середнє значення (серед усiх пiдприємств), i надрукувати найменування пiдриємств та обсяги їхньої продукцiї у другому кварталi.

30 Обчислити обсяг продукцiї, виготовленої усiма пiдприємствами за рiк, і надрукувати найменування пiдприємств та обсяги продукцiї, виготовленої ними за рік.





©2015 studopedya.ru Все права принадлежат авторам размещенных материалов.