Програмування в середовищі turbo pascal 0 Вступ icon

Програмування в середовищі turbo pascal 0 Вступ

Реклама:



НазваПрограмування в середовищі turbo pascal 0 Вступ
Сторінка5/6
Дата конвертації24.02.2013
Розмір0.74 Mb.
ТипДокументи
джерело
1   2   3   4   5   6
1. /методичка Паскаль.docПрограмування в середовищі turbo pascal 0 Вступ
Тема:

Складання програм опрацювання рядкових величин.

Мета:

Оволодіти практичними навичками складання, введення і редагування програм опрацювання рядкових величин.


Теоретичні відомості:

Дані рядкового типу - це обмежена послідовність довільних символів (тобто елементів типу char або string). Односимвольне текстове дане, наприклад ‘s’, ‘2’ належить до стандартного типу char, а багатосимвольні дані довжини від 0 до 255 символів – до типу string. Постійні рядкового типу записують за допомогою двох символів (апострофів) штриха, що охоплюють текст. Рядок може мати від 0 до 255 символів. Наприклад, 'Україна', 'Львівська політехніка', " - порожній рядок нульової довжини, ' ' - рядок, що складається з одного символу - пропуску.

Оголошують змінну рядкового типу наступним чином:

var <змінна> : string[n];

де п -довжина рядка, n<256. Якщо максимальний розмір рядка не вказаний, то він автоматично встановлюється рівним 255 – максимально можлива довжина рядка.

Наприклад:

const Slovo = 'college';

var Frazal : string[50];

Fraza2 : string;


Операції з рядками

Над змінними рядкового типу визначені операції об'єднання (символ операції +) і порівняння (<, <=, >, >=, =, <>). Порівняння двох рядків здійснюється зліва направо до перших різних символів, причому 'А' < ‘В', 'В' < 'С' і т.д. Більшим вважається символ, який розміщений в алфавіті далі (він має більший номер в таблиці кодів комп'ютера ASCII). Числовий код символу дає функція ord, наприклад, ord('B')= 66, ord('A')= 65. Зворотну дію виконує функція chr: chr(66) дає 'В'.

Приклад. Хай tl = 'New', t2=' Year'. Тоді об'єднанням цих рядків буде s := tl + t2 (результат: s = 'New Year').


Функції опрацювання рядкових величин

Для обробки даних рядкового типу призначені стандартні функції:

Length(<Рядок>) - визначає кількість символів в заданому рядку;

Copy(r, m, n) - копіює n символів рядка r, починаючи з символу з номером т;

Concat(r1, r2, ..., rN) - об'єднує рядки rl, r2,..., rN в один рядок;

Pos(rl, r2) - визначає номер символу, з якого починається входження рядка rl в рядок r2;

і процедури:

Insert(rl, <змінна>, n) - вставляє рядок rl в рядок, який заданий змінною, починаючи з позиції n;

Dеlеtе(<змінна >, m, n) - видаляє n символів з рядка, який заданий змінною, починаючи з позиції m;

Str(<число:>, < змінна >) - переводить числове дане в дане рядкового типу;

Val(rl s1, d) - засилає в числову змінну s1 числовий образ рядка rl. Якщо це можливо, то змінна d набуває значення 0, інакше - числове значення номера першого неприпустимого символу заданого рядка. Вказана змінна передає в процедуру вхідне дане рядкового типу і одержує назад змінений рядок - результат виконання процедури.


Застосування шифрів. Історія людства — це історія становлення інформатики. Найбільш поширеною формою подан­ня інформації є текстова. Вона передається від джерела до споживача в закодованій формі. Алфавіти української чи англій­ської мови — це відкриті (відомі всім) коди. Однак з давніх часів люди намагалися захищати важливу інформацію від несанкціо­нованого використання, створюючи закриті коди. Так виникла криптографія — наука про способи перетворення інформації (шифрування) з метою її захисту. У Стародавньому Римі застосо­вували шифр Цезаря: кожну літеру тексту замінювали на третю після неї літеру алфавіту, записаного по колу. Слово «Цезар» кодується так: «Щзйгу».

Розкриття шифрів називається криптоаналізом. Значним досягненням англійських учених під час війни і першим ефек­тивним застосуванням електронних машин було розшифрування у 1943 р. німецьких стратегічних шифрів за допомогою машини «Колоссус».

Різні способи захисту інформації використовують і в наш час, зокрема, в банківській справі, де через комп'ютерні мережі пересилають контракти, платіжні документи, підписи тощо.

У задачах криптоаналізу визначають частотні характе­ристики окремих літер чи фраз і на підставі цих та інших даних будують коди й розробляють методи їх дешифрування.

Основна таблиця кодів ASCII містить 128 символів. Серед них є прописні та рядкові символи латинського алфавіту, цифри та різні службові символи. Символи українського алфавіту розміщені у так званій другій половині кодової таблиці, тобто мають номери більші, ніж 127. Для роботи з кодами застосовують такі дві функції: Chr(<номер>), яка визначає символ за відомим номером у таблиці кодів ASCII, і Оrd(<символ>), що визначає номер конкретного символу в таблиці кодів ASCII. Наприклад, Chr(132) дає символ ‘Д’, а Ord('Д') має значення 132.


Задача. Закодувати деякий текст кодом Цезаря. Алфавітом вважати таблицю кодів ASCII.

program Tsezar;

var A, B : string; І : integer;

begin

Write(‘Введіть слово: ‘); Readln(A);

for І := 1 to Length(A) do

B[I] := Chr(ord(a[I]) +3));

Writeln(‘Hoвe слово: ', B); Readln

end.


Завдання:


Завдання 1: Введіть прізвище, ім'я і по батькові як одне текстове дане, використовуючи пропуск як розділювач між словами (P:string), місце народження(M:string) та дату народження (D:string). Розгляньте роботу функцій та процедур(Length, Copy, Pos, Concat, Dеlеtе, Str) над вашими даними та виконайте завдання свого варіанта:


  1. Вивести ім'я і кількість літер у третьому слові.

  2. Визначити скільки літер 'а' є у прізвищі.

  3. Вивести три літери (свої ініціали) із крапками.

  4. Вивести довжини прізвища й імені.

  5. Вивести прізвище та ініціали.

  6. Вивести ім'я і кількість літер у прізвищі.

  7. Визначити скільки літер 'е' є в імені.

  8. Вивести найдовше слово.

  9. Вилучити всі літери 'а' і 'В' із прізвища.

  10. Вивести імена в стовпчик.

  11. Чи починається хоча б одне слово з літери 'М'?

  12. Усі літери 'і' в імені продублювати.

  13. Вивести прізвище і кількість літер в імені.

  14. Вивести ім'я в зворотному порядку.

  15. Вивести прізвища і додати до нього імена батьків та братів або сестер в стовпчик.

  16. Вивести ім'я, по батькові і кількість літер у прізвищі.

  17. Вивести найкоротше слово.

  18. Вивести рядок без пропусків. Скільки літер в імені?

  19. Вивести довжину трьох слів.

  20. Вивести ім'я і кількість літер у прізвищі.

  21. Вивести ім'я і прізвище.

  22. Кожну букву імені продублювати.

  23. Вивести прізвище в зворотному порядку.

  24. Визначити скільки літер 'а' і 'б' у прізвищі.

  25. Вивести слово і кількість літер у прізвищі.


Завдання 2: Придумати й описати словесно свій спосіб кодування тексту. Скласти програму для введення тексту (дані типу string — до 255 символів), його кодування і виведення результату.


Контрольні запитання :

  1. Як записуються текстові сталі?

  2. Які дії визначені над текстовими даними?

  3. Які функції визначені над текстовими даними?

  4. Які є процедури для опрацювання текстових даних


Практична робота №8

Тема:

Написання програм створення графічних примітивів.

Мета:

Оволодіти практичними навичками складання, введення і редагування програм створення графічних примітивів.


Теоретичні відомості:

Графічний екран дисплея складається з крапок, які можна засвічувати певним кольором або гасити, внаслідок чого на екрані створюється деяке зображення. Крапки називають пікселями. Кількість крапок на екрані може бути різною. Це залежить від якості монітора. Розглянемо екран, який має 640 крапок в горизонтальному (х) напрямі і 480 - у вертикальному (у). Початок відліку крапок знаходиться в лівому верхньому кутку екрану. Кожна крапка характеризується двома координатами (х, у).

Процедури і функції для графічних побудов. Розглянемо процедури модуля Graph, призначені для графічних побудов:

InitGraph (Driver, Mode <шлях до драйвера>) - задає графічний режим. Шлях до файлу-драйвера вказують (у апострофах), якщо його немає в каталозі, з якого запускається середовище програмування;

DetectGraph (<драйвер>, <режим>) - повертає значення характеристик дисплея;

SetColor (<колір>) - задає колір майбутнього зображення;

SetBkColor (<колір>) - задає колір фону;

PutPixel (х, у <колір>).- висвічує крапку (х, у) заданим кольором;

Line (xl, yl, х2, у2) - малює лінію між двома заданими точками;

LineTo (х, у) - малює лінію від поточної крапки до крапки (я, у);

LineRel (dx, dy) - малює лінію від поточної крапки із заданими приростами;

Rectangle (x1, yl x2, y2) - малює прямокутник із заданими координатами діагонально протилежних вершин (лівої верхньої і правої нижньої);

SetViewPort (x1, yl x2, y2, true) - задає координати нового графічного вікна. Логічна постійна true задає режим відсікання зображення, яке виходить за рамки вікна;

Bar (x1, yl x2, y2) - малює закрашений прямокутник;

Bar3d (xl, yl, х2, у2 <об’ємна глибина>, true) - малює паралелепіпед;

Circle (х, у, R) - малює коло радіусу R з центром в крапці (х, у);

Arc (x, у <початковий кут> <кінцевий кут> <радіус>) - малює дугу;

Pieslice (х, у < початковий кут > < кінцевий кут > < радіус >) - малює закрашений сектор;

Ellipse (х, у < початковий кут > < кінцевий кут > <горизонт. радіус <вертик. радіус>) - малює еліпс або дугу еліпса;

SetFillStyle (<заповнення>, <колір>) - задає спосіб заповнення замкнутої області залежно від значення параметра заповнення: 0 - заповнення кольором фону, 1 - суцільне заповнення, 2 - заповнення товстими горизонтальними лініями, 3 - заповнення похилими лініями, ..., 10 - заповнення крапками, 11 - щільне заповнення крапками;

FloodFill (х, у <колір границі>) - заповнює замкнуту область, в якій знаходиться крапка (х, у);

CloseGraph - закриває графічний режим;

OutText (<текст>) - виводить заданий текст з поточної позиції;

OutTextXY (х, у <текст>) - виводить текст в заданому місці;

SetTextStyle (<шрифт>, <направлення>, <розмір>) - задає вид символів, напрям висновку: 0 - горизонтально, 1 - вертикально, і розміри символів: 1, 2, 3.

Розглянемо деякі функції модуля Graph:

GraphResult - повертає код помилки, якщо неможливо задати графічний режим, і 0 - у разі завдання;

GetMaxX - повертає значення розміру екрану уздовж горизонталі;

GetMaXY - повертає значення розміру екрану уздовж вертикалі;

GetColor - повертає значення поточного кольору;

GetColor(x,y) - повертає значення кольору крапки (х, у);

GetX, GetY - повертають координати поточного пікселя.


Кольори. Кольори задають числами або англійськими назвами:

black =0

чорний

blue =l

синій

green =2

зелений

cyan =3

голубий

red =4

червоний

magenta =5

фіолетовий

brown =6

коричневий

lightgray =7

світло-сірий

darkgray =8

темно–сірий

lightblue =9

яскраво–синій

lightgreen =10

яскраво –зелений

lightcyan =ll

яскраво –голубий

lightred =12

яскраво –червоний

lightmagenta = 13

яскраво –фіолетовий

yellow =14

жовтий

white =15

білий


Приклад. Написати програму, яка виводить емблему. В верхній лівій частині графічного екрана на чорному фоні намалювати голубий квадрат, а в ньому — чорне коло, зафарбоване жовтим кольором. В центрі емблеми чорними буквами написати слово «ОЦТТУМ».

program Emblema;

uses Crt, Graph;

var

Driver, Mode, I, Xl, Yl : integer;

X, У : real;

begin

ClrScr;

Driver := detect;

InitGraph(Driver, Mode, ");

SetBkColor(0);

SetColor(3);

Rectangle(100, 0, 300, 200);

SetFillStyle(l, 3);

FloodFill(200, 100, 3);

SetColor(14);

Circle(200; 100, 100);

SetFillStyle(l, 14);

FloodFill(200, 100, 14);

SetColor(O);

Circle(200, 100, 100);

SetTextStyle(0, 0, 3);

OutTextXY(135, 100, 'ОЦТТУМ');

Readln

end.

Поняття про анімацію. Чергування засвічувань і гасінь зображення використовують для імітації руху цього зображення на екрані. Перед наступним засвічуванням об‘єкт треба змістити у напрямку переміщення. Рух зображення на екрані називають анімацією.

Для імітації руху об‘єкта на екрані потрібно виконати такий циклічний алгоритм:

  1. Нарисувати об‘єкт у потрібній точці й зробити паузу.

  2. Знищити об‘єкт, замалювавши його кольором тла.

  3. Змінити координати об‘єкта.

  4. Перейти до пункту 1.


Завдання:

Завдання 1. Написати програму, яка виводить зображення космічного корабля, що складається з трикутника (конус носової частини), розташованого над прямокутником (корпусом). Під прямокутником зобразити пару ліній, що перетинаються. Трикутник заповнити голубим мережаним візерунком, а прямокутник – суцільним червоним кольором.


Завдання 2. Намалювати ілюстрацію до казки «Колобок». Обов‘язковими елементами мають бути «сонце» і «Колобок». На власний вибір зобразити або рух сонця на небі, або рух колобка в горизонтальному напрямку.


Контрольні запитання :

  1. З чого складається зображення фігури на екрані?

  2. Що означає характеристика екрана 640х480?

  3. Як задати графічний режим?

  4. Як вивести на екран точку заданого кольору?

  5. Як нарисувати коло?

  6. Як нарисувати пряму лінію?

  7. Що таке анімація?

  8. Які координати мають кути та центр графічного екрану?



Практична робота №9

Тема:

Написання програм по роботі зі звуком.

Мета:

Навчитись створювати програми синтезу звуків.


Теоретичні відомості:

Для відтворення звуку в Pascal використовуються процедури модуля Crt в такій послідовності:

Sound

Sound(І)- процедура активізує звукові засоби ЕОМ. Цілочислове значення І вказує частоту звучання звуку в герцах. Звук вказаної частоти буде звучати до тих пір, поки не буде відмінений процедурою NoSound.

Delay

Delay (MS) - виконує затримку виконання програми на вказане число мілісекунд. MS – число мілісекунд, протягом якого буде звучати звуковий сигнал.

NoSound

NoSound – відміна звуку. Відміняється звуковий режим, заданий процедурою Sound.

Приклад: Звуковий сигнал частотою 500 Гц має звучати на протязі 3секунд.

program Dzvuk;

uses Crt;

begin

Sound(500);

Delay (3000);

NoSound;

end.


За допомогою процедур Sound, NoSound, Delay і операторів циклу можливо створювати різні звукові ефекти. Для цього використовуються набір частот або елементи масиву, що відповідають нотам різних октав (див. таблицю 1). Для використання в процедурі Sound всі вказані в таблиці значення частот потрібно округлити.

Таблиця 1. Частота звучання нот


Нота

Велика октава

Мала октава

Перша октава

Друга октава

До

130,81

261,63

523,25

1046,50

Ре

146,83

293,66

587,33

1174,07

Мі

164,81

329,63

659,26

1318,05

Фа

174,61

349,23

698,46

1396,09

Соль

196,00

392,00

784,99

1568,00

Ля

220,00

440,00

880,00

1760,00

Сі

246,94

493,88

987,77

1975,00


Генерація мелодій. Одним із методів побудови мелодичних звукових рядів є використання частот, що відповідають нотам. Частоти завантажуються в один масив, тривалість звучання кожної частоти – в інший.

Приклад. Процедура, що генерує гаму з наростаючою тривалістю звучання кожної ноти.

procedure Gama;

const

M: array[1..7] of integer = (262, 294, 330, 349, 392, 440, 494);

T: array[1..7] of integer = (10, 11, 12, 13, 14, 15, 16);

var

I: byte;

begin

While not KeyPressed do

begin

for I:=1 to 7 do

begin

Sound ([ I ]);

Delay ([ I ]);

NoSound;

end;

end;

end.


Змінюючи значення елементів масивів М і Т, можна досягнути хорошої імітації музичних творів.


Завдання:

Скласти програму, де будуть змінюватись частоти в діапазоні від 2000 до 3000Гц, час звучання від 100 до 1000 мс.


Контрольні запитання :

  1. Назвіть основні процедури по відтворенню звуків.

  2. Як досягається зміна часу звучання та частоти звучання?


Практична робота №10

Тема:

Складання програм з використанням записів у Pascal.

Мета:

Навчитись складати програми з використанням записів.


Теоретичні відомості:

Звичайні записи

Розглянемо таку задачу. Є інформація про 100 студентів, що включає прізвища і середній бал сесії. Необхідно надрукувати прізвища студентів, успішність яких вище середньої.

У цій задачі інформація про кожного зі студентів складається з даних двох типів - рядкового (прізвище) і числового (середній бал). При написанні програми можна скористатися двома одновимірними масивами, які повинні оброблятися спільно. Це незручно, особливо у випадках, коли подібних характеристик не дві, а значно більше. Багатовимірні масиви тут допомогти не можуть, оскільки кожна з характеристик має свій тип, а масиви поєднують у собі тільки однотипні елементи.

У ТР введений спеціальний комбінований тип даних, який дозволяє поєднувати відразу кілька типів. Такий тип даних називають записом. Формат опису змінної типу «запис» такий:

var

ім'я_запису: rесоrd

ім‘я1: тип1;

ім'я2: тип2;



ім‘яN: типN;

end;

Частини запису, призначені для безпосереднього збереження інформації («ім'я1» …, «ім‘яN»), називаються полями запису. Для кожного з полів повинні бути зазначені типи. Якщо кілька полів мають один тип, то їх можна оголосити спільно, перелічивши імена через кому.

Для сформульованої задачі можна, наприклад, оголосити таку змінну типу «запис».

var

Stud: record

Surname : string [20] ; {Прізвище}

AverageEval: Real {Середня оцінка}

end;

Підкреслимо, що опис запису завершується службовим словом end, перед яким можна ставити, а можна не ставити крапку з комою.

Рекомендується спочатку ввести ім'я типу запису, яке надалі буде використовуватися при описі змінних:

type

T_Stud: record

Surname: string[20];

AverageEval: Real

end;

var

Stud: T_Stud;

Щоб звернутися до поля запису, необхідно не просто вказати ім'я поля, але перед ним вказати ім'я запису, з'єднавши їх крапкою:

ReadLn(Stud.Surname);

ReadLn(Stud.AverageEval);


Альтернативою такому звертанню є оператор приєднання with:

with ім'я_запису do оператор;

Оператор with автоматично приєднує зазначене в ньому «ім'я_запису» до всіх імен, які входять в оператор, що стоїть після with, і збігаються з іменами полів запису. До імен, що не збігаються з іменами полів запису, приєднання не проводиться. Якщо приєднання потрібно здійснити в декількох операторах, то їх за допомогою begin-end поєднують у складений оператор. Наприклад, наведені вище оператори можна записати так:

with Stud do begin

ReadLn(Surname);

ReadLn(AverageEval)

end;

При оголошенні типізованої константи записного типу її значення задається в такий спосіб: у загальних круглих дужках перелічують імена полів, після кожного з яких через двокрапку вказується початкове значення; роздільником є символ «крапка з комою»:

const

Studl: T_Stud=(Surname:'Іванов'; AverageEval:0.0);

Записи можуть бути елементами масиву, як це має місце в програмі, що наводиться нижче.


Приклад: Надрукувати прізвища тих з n студентів (п<=100), чий середній бал вище загального середнього бала.

type

Stud_rec=record

Surname: string[20];

AverageEval: Real

end;

var

Stud_array: array[1..100] of Stud_rec;

Sum, ArithmeticMean: real;

I,N: integer;

begin

Write ('Введи кількість студентів: N=');

ReadLn(N);

Sum:=0;

for I:=l to N do

with Stud_array[I] do begin

Write ('Введи прізвище: ');

ReadLn(Surname);

Write ('Введи середній бал: ');

ReadLn(AverageEval);

Sum:=Sum+AverageEval

end;

ArithmeticMean:=Sum/N;

for I:=l to N do

if Stud_array[I].AverageEval>ArithmeticMean

then WriteLn(Stud_array[I].Surname)

end.

У програмі показано, як можна використовувати оператор with (до імені Sum приєднання не буде здійснюватися, бо це не ім'я поля запису Stud_array[I]) і як звертатися до поля запису безпосередньо (у другому операторі циклу).

Поля запису можуть мати будь-який тип. Наприклад, полем запису може бути масив.

type

Session_rec=record

AverageEval: Real;

Eva1:array[1..5] of 2..5

end;

чи запис:

type

Stud_recl=record

Surname:string[20];

Session: Session_rec

end;

var

Report: array[1..100] of Stud_recl;


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

  1. Report[17]. Session.Eval [3]:=4;

  2. with Report[17], Session do Eva1 [3]:=4;

  3. with Report[17] do

with Session do Eval [3]:=4;

  1. with Report[17]. Session do Eval[3]:=4;


Можливість використання записів як полів інших записів дозволяє організовувати в програмі оперування складними деревоподібними структурами різнорідних даних.


Записи з варіантами

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

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


type

T_Catalog=record

Author: string[50] ;

Title : string[100] ;

Year :integer;

case Tag: Byte of

0 : (Town:string[15];

Publishing:string[20]);

  1. : (Journal:string[50]; Num: Byte)

end;

var

Catalog: array[1. . 100] of T_Catalog;


Особливості записів з варіантами:

  • варіантна частина може бути тільки одна, і вона повинна бути останньою;

  • варіантна частина є подібною оператору case, в якого відсутнє службове слово end; як end для case використовується end для record;

  • полем тега є ім'я (власне тег) і тип, що стоять за case; поле тега може складатися тільки з типу без зазначення імені;

  • тег може мати тільки дискретний тип;

  • тег входить у фіксовану частину запису і завершує її;

  • опис полів, що відносяться до окремих значень тега, беруть у круглі дужки;

  • якщо варіант для якого-небудь значення тега відсутній, то він задається порожнім полем, укладеним у круглі дужки;

  • якщо якесь з полів у варіантній частині теж варіантний запис, то воно повинно бути останньою частиною варіанта;

  • якщо типізована константа оголошена варіантним записом, то при задані її значення розглядають тільки один варіант.

Варіантні записи, полегшуючи оперування даними, у той же час збільшують обсяг пам'яті, що витрачається.

Тому при роботі з варіантними записами треба завжди враховувати значення тега.


Приклад: Є каталог на п книг і журнальних статей (п<=100). Вивести інформацію про публікації, видані після 1990 р. (окремо книги і статті).

type

T_Publication=record

Author: string[50];

Title: string[100];

Year: integer;

case Key: Char of

'B', 'b' : (Town, Publishing: string-[20]); {книга - book}

'A','a': (Journal:string[50] ;Num:Byte); {стаття - article}

end;

var

Catalog: array [1. .100] of T_Publication;

N,I:integer;
begin .......

Write ('Введи кількість записів: n='); ReadLn(n);

{У програмі відсутнє введення даних у масив Catalog. Воно залишено на самостійне пророблення в зв'язку з тим, що при введенні з клавіатури цей фрагмент програми є досить довгим.

При перевірці програми не забути організувати введення! }

for I:=l to N do {Друк інформації про книги}

with Catalog[I] do

if (Year>1990) and (Key in['B','b']) then

WriteLn(Author, '.', Title, '.' ,Town, ': ',

Publishing, '-' ,Year);

for I:=l to N do {Виведення інформації про статті}

with Catalog[I] do

if (Year>1990) and (Key in['A','a']) then

WriteLn (Author, '.' ,Title, '// ' .Journal, '.' , Year, '. N' , Num);

end.


У програмі поле Key використовується для розпізнання запису, що це, книга чи стаття?

Природно, вводити подібного роду дані з клавіатури і виводити на екран недоцільно, а при великих значеннях n неможливо. У цьому випадку на допомогу приходять файли.


Завдання :


  1. Створити тип з описом товару: код, найменування, ціна за одиницю товару, кількість і сума.

а) Вивести найменування і ціну товарів, коди яких лежать в діапазоні 100 .. 120.

б) Підрахувати підсумкові суми по кожному товару.

в) Вивести назву товару з найбільшою ціною.

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

  2. Ввести інформацію про десять студентів: прізвище, стать, рік народження, оцінки по шести предметах.

а) Підрахувати число студентів чоловічої статті, що народилися в 1976 році.

б) Вивести анкетні дані студентів-відмінників.

в) Вивести анкетні дані студентів, що отримали оцінки 2.

г) Обчислити середній бал групи і роздрукувати список студентів, що мають середній бал нижче середнього балу групи.

д) Упорядкувати список студентів по середньому балу.

е) Упорядкувати список студентів по прізвищу.

  1. Описати тип даних про співробітників (структуру запису продумайте самостійно).

а) Вивести список співробітників, що проживають по вулиці "Перемога".

б) Підрахувати кількість співробітників, що мають дітей.

в) Підрахувати кількість подарункових наборів, які необхідно придбати для дітей співробітників.

г) Нарахувати премію у розмірі 50% від окладу співробітникам, стаж роботи яких на даному підприємстві перевищує 10 років.

д) Надрукувати список співробітників, які в поточному році відзначають круглу дату.

е) Надрукувати список співробітників, у яких день народження в серпні.


Контрольні запитання :

  1. Що розуміють під записом?

  2. Як описують записи?

  3. Як оголошують змінні типу запис?

  4. Як працює команда приєднання with?

  5. Як створити масив записів?

  6. Як використовують масив записів?


Практична робота №11

1   2   3   4   5   6



Реклама:

Схожі:

Програмування в середовищі turbo pascal 0 Вступ iconБ. В. Ващук Turbo Pascal 0
В33 Середовище програмування Turbo Pascal 0: Підруч для учнів 10 кл серед загальноосв шк. – Ввпк: „Коледж”, 2008 – 47с

Програмування в середовищі turbo pascal 0 Вступ iconПоради та хитрості програмування в Pascal з сайту
У розділі "options / environment / preferences" середовища програмування Turbo Pascal корисно в розділі "Auto save" встановити параметр...

Програмування в середовищі turbo pascal 0 Вступ iconЛабораторная работа №9 Работа с программой Turbo Debugger
«Архитектура эвм» и более углубленного понимания архитектуры и программной модели процессоров семейства Intel x8086. В качестве средства...

Програмування в середовищі turbo pascal 0 Вступ iconЛекція №1 Тема: Програмування на object pascal в Delphi: введення План Історія розвитку Delphi 1 1 Об\'єктно-орієнтоване програмування 1
С. Яка з мов краще відповісти достатньо складно. Проте з упевненістю можна вважати, що Pascal краще за інші мови підходить для навчання...

Програмування в середовищі turbo pascal 0 Вступ iconДокументи
1. /Turbo Pascal/Практична робота ь10.doc
2. /Turbo...

Програмування в середовищі turbo pascal 0 Вступ iconМова програмування Turbo Basic Зміст матеріалу
Опис розгалуження на мові Turbo Basic. Операції відношення, логічні операції. Структура розгалужень (умовний та безумовний переходи)....

Програмування в середовищі turbo pascal 0 Вступ iconДокументи
1. /Turbo Pascal 7.0 version 1.11.doc

Програмування в середовищі turbo pascal 0 Вступ iconДокументи
1. /Turbo Pascal 7.0 version 1.11.doc

Програмування в середовищі turbo pascal 0 Вступ iconДокументи
1. /Turbo Pascal 7.0 version 1.11.doc

Програмування в середовищі turbo pascal 0 Вступ iconДокументи
1. /Turbo Pascal 7.0 version 1.11.doc

Програмування в середовищі turbo pascal 0 Вступ iconДокументи
1. /Turbo Pascal 7.0 version 1.11.doc

Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©te.zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи