Міністерство освіти, науки, молоді та спорту України
Приватний вищий навчальний заклад
Рівненський економіко – гуманітарний та інженерний коледж
Курсова робота
на тему:
“Створити файл, який містить довідки про відправлення потягів далекого прямування з Казанського вокзалу”
Рівне 2012
Зміст
Вступ
Мова Паскаль…………………………………………………………..…3
Типи даних……………………………………………………………..…8
Запис арифметичних виразів…………………………………………...12
Структура програми мовою Паскаль…………………………………..10
Задача, реалізація мовою Паскаль………………………………….…..15
Приклади роботи програми Pascal……………………………………...22
Висновок……………………………………………………………….....25
Список використаної літератури…………………………………..........26
Вступ
1)
Мова Pascal, затверджена в якості стандартної в 1979р. являється найбільш вдосконаленою в порівнянні з такими універсальними мовами програмування, як АЛГОЛ, ФОРТРАН, БЕЙСІК, ПЛ/М та інші. Завдяки своїй ефективності, простоті і логічності вона скоро отримала розповсюдження по всьому світі. В даний час майже всі ЕОМ і особливо мікроЕОМ, можуть працювати на цій мові. Тексти програм легко провіряється на правильність, так як їх зміст простий і очевидний. І на кінець, мова ПАСКАЛЬ підходить для навчання програмістів-початківців хорошому стилю програмування. Мова ПАСКАЛЬ позволяє на рівні з невеликими складностями програми створювати структурні програми складно об’ємних і складних обчислень. Щоб користувач при створенні програм не допускав помилок або міг віднайти їх і виправити, у мові передбачено попередні вказівки типів даних, приймаючих участь в програмі, і обов’язкова інформація про всі елементи програми, таких, як позначки операторів, константи, змінні, підпрограми. Число різних операторів зведено до мінімуму. Мова позволяє вдосконалити робочий процес програмування, поступово уточнюючи різні частини програми.
2) Типи даних.
Дані цілого типу.
Всі дані можна розділити на два типи : прості і складні. Прості - це стандартні і змінні типи даних. Стандартними являються цілі, дійсні, символічні, логічні типи даних. Складні типи даних являють собою різні комбінації простих типів ( масиви, множини, записи і файли).
Дані дійсного типу.
Константи дійсного типу можуть представлятись двома видами: з фіксованою або з плаваючою крапкою.
Дані логічного типу.
Логічні типи даних часто називають булоьвими. Логічні дані часто використовують при перевірці правильності деяких умов і порівнянні величин. Логічні дані і операції над ними мають важливе значення так як дозволяють внести в розрахунки елементи людської логіки.
Дані символічного типу.
Дані символічного типу дозволяють представляти в прог-рамі тексту і проводити над ним деякі редакційні операції. Також вони дають можливість обробляти документи.
СТАНДАРТНІ ФУНКЦІЇ
Сюди входять такі як : SIN, COS, Tg, log...
Правила запису стандартних функцій :
1. Ім’я ф-ії.
2. Аргумент ф-ії в дужках.
Наприклад: SQRT(X) - вичислює корінь квадратний.
SQR(X) - вираховує квадрат аргументу.
SIN(X) - вираховує синус аргументу.
Алфавітом називається сукупність символів, які можна використовувати в мові програмування. Для мови PASCAL це такі символи: A,B,…,Z; a,b,…,z, _ (символ підкреслення), 0,1,2,…,9.
Спеціальні символи: + - * / = <<span style=""> . , ; : @ ‘ ( ) [ ] { } # $ ^. Символ “проміжок” ніяк не визначається, це “пусте місце” між якими-небудь конструкціями.
За допомогою символів алфавіту можна складати різноманітні конструкції: постійні, змінні, оператори, тощо.
Постійна змінна (константа) не змінюється в процесі програми. Є декілька видів констант.
Числові константи – цілі та дійсні.
Приклади цілих констант:
158 -65 38456
Дійсні константи можна записувати одним з двох способів:
1) 24.865 -0.36
2) 0.24865Е+2 -0.36Е0
У цілій константі немає ні крапки, ні коми, а в дійсній константі записується так звана десяткова крапка (а не кома).
Символічна константа – це один символ у лапках.
Приклади:
‘a’ ‘+’
Рядкова константа – це послідовність символів в лапках, наприклад:
‘Купуйте IBM PC AT’
Логічні константи визначаються словами True та False, відповідно “істине” та “хибне”.
Невідємними елементами кожної програми є змінні. Змінні визначаються іменем, яке починається з литери та може мати в середині цифри та знак підкреслення. Великі та малі літерив іменах не розрізнюяться.
Приклад:
A Xsum Kilkist Rik1999 Dunamo_Kuev
Довжина імені може бути, яка завгодно, але транслятор “розуміє” тільки перші 63 символи.
Змінна одержує та змінює (може і не змінювати) своє значення в процесі роботи програми.
Кожна змінна повинна бути описана на початку програми після слова Var. При цьому вказується тип змінної. Для цілої змінної всі типи наведені в таблиці 1.
Таблиця 1
Тип
Діапазон
Розмір в байтах
Byte (коротка ціла без знаку)
0…255
1
Shortint (коротка ціла із знаком)
-128..127
1
Word (ціла без знаку)
0…65535
2
Integer (ціла із знаком)
-32768..32767
2
Longint (довга ціла із знаком)
-2147483648..
2147483647
4
Всі можливі типи дійсної змінної наведені в таблиці 2
Таблиця 2
Тип
Діапазон
Кількість цифр
Розмір в байтах
Real (дійсний)
10-39 - 1038
11 - 12
6
Single (одинарна точність)
10-45 - 1038
7 - 8
4
Double (подвійна точність)
10-324 - 10308
15 - 16
8
Extended (розширена точність)
10-4951 - 104932
19 - 20
10
Стандартний тип для дійсної змінної – Real. На відміну від інших мов програмування в системі PASCAL треба обов’язково описувати всі змінні на початку програми.
Приклад:
Var A, B: Real;
X: Double;
I, J, K: Byte;
M: Integer;
Для опису символьних змінних вживають тип Char, рядкових - String, логічних – Boolean.
Найбільша довжина рядку складає 255 символів, у квадратних дужках вказують довжину для конкретної змінної. Якщо довжина не вказана, то автоматично береться – 255.
Приклад:
Var Z, Buk, Sim: Char;
Str: String [20];
S: String;
Q, R: Boolean;
Обробка даних виконується в виразах та операторах присвоєння. Оператор присвоєння має загальний вигляд:
А := В;
де А – проста або індексована змінна,
В – вираз.
При виконанні оператора спочатку обчислюється вираз, а потім результат присвоюється змінній А. При цьому повинна бути сумісність типів по присвоєнню. Існує багато випадків сумісності типів, головні з них такі:
• А та В являються цілими типами та значення В попадає в діапазон значень А;
• А та В – дійсні типи та значення В попадає в діапазон припустимих значень А;
• А – дійсний тип, а В – цілий (але не навпаки);
• А та В – рядкові дані;
• А – рядок, а В – символ.
Приклади операторів присвоєння:
Var A, B, C: real;
I, J, K: integer;
R1, R2: string [20];
S1, S2: char;
…………………………
K:=I div J;
C:=A + B/2;
R1:= ‘текст’;
R2:=R1;
S1:=’*’;
3) Запис арифметичних виразів.
Арифметичні вирази складаються з арифметичних констант, змінних функцій і операцій над ними.
При складанні виразів слід виконати наступні правила:
1. Записувати всі складові частини виразів в один рядок.
2. Використовувати дужки тільки одного типу (круглі). В правильно записаному виразі число відкритих дужок дорівнює числу закритих дужок.
3. Не можна записувати підряд два знака арифметичних операцій
4. Необхідно пам’ятати що обчислення зліва на право у відповідності з стандартом операції. Самою старшою являється операція обчислення значення функції.
Потім ідуть операції множення і ділення. Операції додавання і віднімання мають самий низький авторитет.
ЛОГІЧНІ ВИРАЗИ
Логічні вирази складаються з логічних даних, логічних операцій і операцій відношення. В операціях відношення можуть брати участь арифметичні і логічні вирази, а також символічні дані.
В логічних виразах прийнятий наступний пріоритет операцій:
1) NOT
2) * (множення), / (ділення), DIV, MOD, AND;
3) + (плюс), - (мінус), OR;
4) < (менше), <= (менше або дорівнює), = (рівно),
<> (не рівно), >= (більше або рівно), > (більше).
В логічному виразі допускається використання круглих дужок. При наявності дужок спочатку виконується дії в дужках, а потім поза дужками.
ОПЕРАТОРИ
1. Оператор присвоєння - основний оператор будь-якої мови програмування. Загальна форма запису оператора.
V:=A
V- ім’я змінної
“:=“ - знак присвоєння
А - вираз.
Даний оператор вичислює значення виразу А і присвоює отримане значення змінній V.
2. Умовний оператор - використовується в тих випадках коли обчислення може піти по різних шляхах в залежності від виконання або не виконання певних умов.
IF(якщо), THEN (тоді),
ELSE (інакше)
(якщо) - логічний вираз
(тоді) - арифметичний вираз
(інакше)- арифметичний вираз
3.Оператор вибору. Оператор вибору використовується в тих випадках, коли в залежності від значення якогось вираження необхідно виконати один з декількох послідовних операторів.
CASE вираз OF
константа 1: оператор1;
константа 2: оператор2;
константа n: оператор n;
END
ОПЕРАТОР ПЕРЕХОДУ
Використовується для обходу участку програми.
GOTO мітка;
мітка - ціле число без знаку в діапазоні від 1 - 9999
Після цього оператора виконання оператора переходить на рядок з міткою.
ОПЕРАТОР ЦИКЛУ З ПОПЕРЕДНЬOЮ УМОВОЮ
Існує три оператори циклу:
1. Оператор з попередньою умовою;
2. Оператор з послідовною умовою;
3. Оператор циклу з параметром.
WHILE логічний вираз DO
BEGIN
оператори циклічні частини програми
END
Сюди також входять оператори :
- вводу-виводу;
- оператори обробки масивів;
- оператори переходу до підпрограм;
- оператори роботи з файлами;
Як бачимо, мова програмування ПАСКАЛЬ має всі засоби для зручного і ефективного створення програм які виконують різноманітні за значенням задачі. Вона зручна у використанні, і легко усвоюється в роботі.
Також однією з позитивних сторін є те, що після компіляції вона перетворюється в програму яка складається безпосередньо з машинних кодів, і для запуску не потрібно транслятора.
4) Структура програми мовою Паскаль.
Як і в будь-якій мові програмування, програма на мові Pascal має свою структуру, з неї і потрібно починати вивчення даної мови. Розглянемо основні складові частини структури програми та дамо визначення кожні з них:
Program {назва програми;}
Type { опис нестандартних типів змінних; }
Var { перелік змінних з вказанням типу; }
Begin { початок програми }
Команда 1;
…
Команда N;
End. { кінець програми }
Тепер трішки про деталі. Розглянемо функції складових частинин програми:
Program – розділ в якому можна вказати назву програми. Цей розділ не обов’язковий і використовується скоріше для зручності розпізнання програми. Назва програми може складатися з літер англійської мови та цифр(причому вона повинна складатися з одного слова і починатися на літеру. Довжина слова не повина перевищувати 8 знаків).
Uses – розділ підключення модулів.
Модуль – це збірник додаткових програм збережений у окремому файлі. Підключивши модуль програміст може вільно використовувати додаткові програми, що вказані вцьому модулі при створені власної програми.
Type – розділ створення власних типів змінних.
Змінна – це величина, значення якої може змінюватися в процесі виконання програми.
Var – розділ опису змінних.
В цьому розділі необхідно вказати всі змінні, що будуть використані програмою, обов’язково вказавши тип ціх змінних.
Наприклад: Var a:integer; b:real; {даний запис вказує на те, що програма буде використовувати змінну а – цілого типу та змінну b – дійсного типу.}
Begin … end. – операторні душки, що містять в собі набір команд з якого власне і складається програма.
Ось ми й побачили з чого складаються програми, але перш ніж почати програмувати необхідна ще одна деталь: Середовище програмування.
Середовищем програмування називають програму яка представляє собою редактор з вбудованим в нього Компілятором.
Компілятор – підпрограма, або самостійна програма, яка перекладає програму з однієї мови програмування на іншу(здебільшого на мову машинних команд, не пам’ятаю чи я вже казав, що наш комп’ютер розуміє тільки дві цифри: 0 та 1. І всі команди, що ми будемо писати будуть переведені для нього саме на мову 1 та 0).
Блок – Схема
Задача
Створити файл, який містить довідки про відправлення потягів далекого прямування з Казанського вокзалу. Структура запису:
Номер потяга, станція призначення, час відправлення, час у дорозі, наявність квитків. Кількість записів довільна.
Написати програму, яка дозволяє одержувати таку інформацію:
Час відправлення поїздів у місто Х у часовому інтервалі від А до Б години;
Наявність квитків на потяг з номером ХХХ.
Реалізація мовою паскаль:
Program Vokzal; { назва програми }
Uses CRT;
Type { опис нестандартних типів змінних }
TDateTime = Record
Year, Month, Day : Word;
Hour, Min, Sec : Word;
end;
Train=Record
Numb:String[10];
From_:String[20];
To_: String[20];
StartTime:TDateTime;
MoveTime:TDateTime;
Ticket:Integer;
end;
var { перелік змінних з вказанням типу; }
F:File of Train;
Potjag,Z1,Z2:Train;
Prib:Word;
NomerPot : String[10];
begin { початок програми }
Assign(F,'train.dat');
ReWrite(F);
Potjag.Numb:='345';
Potjag.From_:='Алушта';
Potjag.To_:='Київ';
Potjag.StartTime.Hour:=17;
Potjag.StartTime.Min:=25;
Potjag.MoveTime.Hour:=1;
Potjag.MoveTime.Hour:=20;
Potjag.Ticket:=10;
Write(F,Potjag);
Potjag.Numb:='455';
Potjag.From_:='Бердянськ';
Potjag.To_:='Москва';
Potjag.StartTime.Hour:=10;
Potjag.StartTime.Min:=11;
Potjag.MoveTime.Hour:=0;
Potjag.MoveTime.Hour:=15;
Potjag.Ticket:=5;
Write(F,Potjag);
Potjag.Numb:='451';
Potjag.From_:='Житомир';
Potjag.To_:='Запоріжжя';
Potjag.StartTime.Hour:=3;
Potjag.StartTime.Min:=45;
Potjag.MoveTime.Hour:=2;
Potjag.MoveTime.Hour:=03;
Potjag.Ticket:=8;
Write(F,Potjag);
Potjag.Numb:='457';
Potjag.From_:='Брест';
Potjag.To_:='Сарни';
Potjag.StartTime.Hour:=5;
Potjag.StartTime.Min:=20;
Potjag.MoveTime.Hour:=4;
Potjag.MoveTime.Hour:=12;
Potjag.Ticket:=12;
Write(F,Potjag);
Close(F);
begin
writeln('""""Програму підготував студент IIкурсу групи 25КН Ковальчук В.Я.""');
end;
Reset(F);
Z1.To_:='Москва';
Z1.StartTime.Hour:=10;
Prib:=15;
Writeln('На Москву їде потяг N');
while not EOF(F) do
begin
Read(F,Potjag);
if (Potjag.To_=Z1.To_) and (Potjag.StartTime.Hour > Z1.StartTime.Hour) and
(Potjag.StartTime.Hour + Potjag.MoveTime.Hour < Prib) Then Writeln(Potjag.Numb)
end;
Close(F);
Reset(F);
NomerPot:='455';
Writeln('На потяг N',NomerPot,' наявність квитків');
while not EOF(F) do
begin
Read(F,Potjag);
if Potjag.Numb=NomerPot Then Writeln(Potjag.Ticket)
end;
Close(F);
Reset(F);
Z1.To_:='Москва';
Z1.StartTime.Hour:=17;
Prib:=20;
Writeln('На Київ їде потяг N');
while not EOF(F) do
begin
Read(F,Potjag);
if (Potjag.To_=Z1.To_) and (Potjag.StartTime.Hour > Z1.StartTime.Hour) and
(Potjag.StartTime.Hour + Potjag.MoveTime.Hour < Prib) Then Writeln(Potjag.Numb)
end;
Close(F);
Reset(F);
NomerPot:='345';
Writeln('На потяг N',NomerPot,' наявність квитків');
while not EOF(F) do
begin
Read(F,Potjag);
if Potjag.Numb=NomerPot Then Writeln(Potjag.Ticket)
end;
Close(F);
Reset(F);
Z1.To_:='Москва';
Z1.StartTime.Hour:=3;
Prib:=20;
Writeln('На Запоріжжя їде потяг N');
while not EOF(F) do
begin
Read(F,Potjag);
if (Potjag.To_=Z1.To_) and (Potjag.StartTime.Hour > Z1.StartTime.Hour) and
(Potjag.StartTime.Hour + Potjag.MoveTime.Hour < Prib) Then Writeln(Potjag.Numb)
end;
Close(F);
Reset(F);
NomerPot:='451';
Writeln('На потяг N',NomerPot,' наявність квитків');
while not EOF(F) do
begin
Read(F,Potjag);
if Potjag.Numb=NomerPot Then Writeln(Potjag.Ticket)
end;
Close(F);
Reset(F);
Z1.To_:='Москва';
Z1.StartTime.Hour:=3;
Prib:=20;
Writeln('На Cарни їде потяг N');
while not EOF(F) do
begin
Read(F,Potjag);
if (Potjag.To_=Z1.To_) and (Potjag.StartTime.Hour > Z1.StartTime.Hour) and
(Potjag.StartTime.Hour + Potjag.MoveTime.Hour < Prib) Then Writeln(Potjag.Numb)
end;
Close(F);
Reset(F);
NomerPot:='457';
Writeln('На потяг N',NomerPot,' наявність квитків');
while not EOF(F) do
begin
Read(F,Potjag);
if Potjag.Numb=NomerPot Then Writeln(Potjag.Ticket)
end;
Close(F);
end. {кінець програми}
Приклади роботи програми Pascal
Висновок
В ході виконання роботи мовою Pascal реалізовано програму: Створити файл, який містить довідки про відправлення потягів далекого прямування з Казанського вокзалу. Структура запису:
Номер потяга, станція призначення, час відправлення, час у дорозі, наявність квитків. Кількість записів довільна.
Написати програму, яка дозволяє одержувати таку інформацію:
Час відправлення поїздів у місто Х у часовому інтервалі від А до Б години;
Наявність квитків на потяг з номером ХХХ.
Завдяки розробці цієї програми я вдосконалив свої вміння програмувати на мові Pascal.
Робота з персональним комп’ютером передбачає не лише високі теоретичні знання алгоритмічних мов але і вміння складати програми різного рівня складності.
Виконавши дане завдання я отримав програму, що містить довідки про відправлення потягів далекого прямування.
Оскільки програмa виконанa на мові програмування АВС Pascal - це забезпечує її широке коло використання. Програма не є вимогливою до ресурсів ПК, як технічних так і до програмного забезпечення.
Список використаної літератури:
Т.В.Ковалюк. “Основи програмування”
Інтернет ресурси, пошук Google.
Конспект.
В.Ф.Шаньгин, Л.М.Поддубная “Програмированиє на язике ПАСКАЛЬ”, Москва “Высшая школа” 1991р.