Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
озробили Волик О.Ф., Мормуль М.Ф., Кащеєва О.В. 15, 2014
Лабораторна робота № 1
Тема. Структура програми на мові Pascal. Стандартні типи даних та типи даних користувача. Оператори введення-виведення даних. Лінійні алгоритми.
Мета: навчитися складати програми з різними типами даних та організовувати їх введення-виведення.
Теоретичні відомості
Середовище програмування TurboPascal.
Поширені два середовища програмування мовою Паскаль: TurboPascal і Borland Pascal для MS DOS та Windows. Вони призначені для підготовки текстів програм мовою Паскаль та їхнього виконання. Принципи складання програм для них однакові.
Основні файли середовища TurboPascal такі:
turbo.exe (tpw.exe) основний виконуваний файл;
turbo.tpl (tpw.tpl) бібліотека;
turbo.tph (tpw.hlp) допомога;
graph.tpu модуль для роботи з графікою.
Для входу у середовище треба виконати команду turbo.exe (tpw.exe). У верхньому рядку екрана буде розташоване головне меню, а в нижньому опис деяких функціональних клавіш.
Щоб активізувати (увійти в) головне меню, потрібно натиснути на клавішу F10. У розпорядженні користувача будуть такі пункти меню:
File для роботи з файлами;
Edit для редагування файлу;
Search для відшукання чи заміни заданого фрагмента тексту;
Run для виконання програми;
Compile для компіляції програми та створення ехе- файлу;
Options для конфігурування середовища;
Windows для конфігурування вікон і роботи з ними;
Help для надання допомоги.
Потрібний пункт вибирають стрілками переміщення курсору або мишкою і натискають на клавішу вводу. Можна скористатися комбінацією клавіш Alt+<висвітлена буква>: натиснувши й утримуючи клавішу Alt, натискають на клавішу з висвітленою буквою і відпускають обидві клавіші.
Основні етапи, з яких складається сеанс роботи з програмою
Shift+стрілки виокремити чи зняти виокремлення блоку тексту;
Ctrl+Insert копіювати блок у буфер обміну;
Shift +Del перемістити блок з тексту у буфер;
Shift + Insert вставити текст з буфера у позначене курсором місце основного тексту;
Ctrl + Del вилучити виокремлений блок з тексту;
Ctrl +Y вилучити рядок, де є курсор;
Ctrl +Q, Y вилучити текст від курсору до кінця рядка;
Ctrl +N вставити рядок;
Ctrl +Home перейти до початку тексту;
Ctrl +End перейти до кінця тексту.
Опис перших чотирьох можна побачити, активізувавши пункт головного меню Edit (Alt+Е).
Коди типових помилок
Turbo Pascal генерує два типи повідомлень про помилки: помилки компіляції і помилки виконання.
Коди помилок компіляції, які найчастіше зустрічаються в процесі налагодження програми, мають такі номери:
Duplicate identifier (Повторення ідентифікатора).
Syntax error (Синтаксична помилка).
14 Invalid file name (Недопустиме імя файлу). Імя файлу неправильне або вказано неіснуючий шлях.
26 Type mismatch (Невідповідність типів).
42 Error in expression (Помилка у виразі).
62 Division by zero (Ділення на нуль).
64 Cannot Read or Write variables of this type (Немає можливості зчитати або записати змінні даного типу).
85 “;” expected (Очікується символ ";").
91 ":=" expected (Очікується символ ":=").
Повідомлення про помилки виконання. Помилки виконання поділяються на: помилки на рівні DOS (коди з 1 до 99); помилки вводу-виводу (коди з 100 до 149); критичні помилки (коди з 150 до 199); фатальні помилки (з 200 до 255). Ось деякі з них:
2 Path not found (Шлях не знайдено).
105 File not open for output (Файл не відкритий для виведення).
153 Unknown command (Невідома команда).
200 Division by zero (Ділення на нуль).
215 Arithmetic overflow error (Помилка під час виконання математичної операції).
Елементи мови Pascal
Програма це послідовність операторів, за допомогою яких записують алгоритм розвязування задачі. Програми (алгоритми) складають за таким принципом:
Для опису алгоритмів мовою програмування використовується певний набір символів алфавіт мови. Алфавіт мови Pascal містить прописні та рядкові літери латинського алфавіту, цифри та спеціальні символи. Спеціальні символи поділяються на дві категорії:
1) знаки пунктуації {} (* *) [] ( ) := : , .. . @ $ # ^ ; ;
2) знаки операцій + - * / = < > >= <= <>.
Програми складаються з конструкцій, які називають операторами. Оператори будуються зі слів, чисел, символів операцій тощо. Слова поділяються на зарезервовані та імена користувача (ідентифікатори).
Зарезервовані слова це спеціальні слова із фіксованим написанням і значенням. Їх можна записувати як великими, так і малими літерами. До зарезервованих слів належать службові слова та стандартні імена. Службові слова це слова, кожне з яких має певне призначення. Службові слова звязуються одне з одним у речення за певними синтаксичними правилами мови і визначають деяку послідовність дій, що їх мусить виконати компютер.
Службові слова
Таблиця
Написання службового слова |
Значення |
Написання службового слова |
Значення |
and |
і |
mod |
остача |
array |
масив |
nil |
нуль |
begin |
початок |
not |
ні |
case |
вибір |
of |
з |
const |
сталі |
or |
або |
div |
ділення без остачі |
packed |
стиснутий |
do |
виконати |
procedure |
процедура |
downto |
униз до |
program |
програма |
else |
інакше |
record |
запис |
end |
кінець |
repeat |
повторювати |
file |
файл |
set |
множина |
for |
для |
then |
то |
function |
функція |
to |
до |
goto |
перейти до |
type |
тип |
if |
якщо |
until |
доки |
in |
в |
var |
змінні |
label |
позначка |
while |
доки |
Стандартні імена призначені для визначення:
boolean |
логічний |
real |
дійсний |
char |
символьний |
text |
текстовий файл |
integer |
цілий |
false |
хибність |
maxint |
максимальне ціле |
true |
істинність |
pi |
число π |
read |
readln |
write |
writeln |
Імена, які користувач надає для визначення сталих, змінних, міток, та власних процедур та функцій називають ідентифікаторами.
Правила написання ідентифікаторів:
Структура програми на мові Pascal
Програма на мові Pascal складається з заголовка, розділів описової частини та виконуваної частини.
PROGRAM Складена програма
USES Бібліотеки, що підключаються (модулі)
LABEL опис міток
CONST опис констант
TYPE опис типів
VAR опис змінних
FUNCTION опис функцій
PROCEDURE опис процедур
BEGIN початок виконуваної частини програми
<оператори програми>
END. кінець програми
Тут ділянка, що починається словом PROGRAM та закінчується словом PROCEDURE, є розділом описів. Розділ описів містить необхідну інформацію про мітки, константи, типи даних, опис змінних (перелік імен із зазначенням типів), описи процедур та функцій. При цьому деякі пункти розділу описів, що не використовуються в конкретній програмі, можна не писати.
Розділ BEGIN…END це виконувана частина програми. Тут наводяться оператори, що слугують для розвязання задачі. Усі дані (мітки, константи, змінні та ін.), до яких звертаються оператори виконуваної частини Pascal-програми, обовязково мають бути описані (наведені в розділі описів).
Розділи та оператори (окрім BEGIN) закінчуються крапкою з комою (;), а після кінцевого END ставиться крапка (.).
Заголовок та розділи описової частини є необовязковими. Заголовок програми несе лише значеннєве навантаження, його надає програміст.
Для роботи з даними слід зарезервувати певний обсяг оперативної памяті компютера, де зберігатимуться їхні значення. Тому всі дані, які використовуються у програмі, потрібно заздалегідь описати (оголосити), оскільки компілятор розподіляє память згідно з описами. Всі дані у програмі зберігаються у вигляді сталих та змінних. Як перші, так і другі визначаються ідентифікаторами (іменами), за допомогою яких можна звертатися для одержання відповідних даних.
Сталі (константи) це елементи даних, значення яких визначені у описовій частині програми та не мінятимуться протягом виконання програми. Для опису констант слугує зарезервоване слово const.
Формат опису константи:
const <ідентифікатор> = <значення константи> ;
Приклад:
const max =1000 ;
Vxod=Сегмент 5 ;
Змінні це елементи даних, типи яких визначені у описовій частині програми та значення яких мінятимуться протягом виконання програми. Змінна це поіменована ділянка оперативної памяті компютера, де зберігається значення деякої величини. Змінна має такі властивості: назву (імя), значення, тип. Кількість змінних та їх властивості задає користувач.
Формат оголошення змінної:
var <ідентифікатор або список ідентифікаторів> : <тип> ;
Приклад:
var Sum1, Sum2 : real;
x : integer ;
Тип визначає допустимі значення даного, операції, які можна над ним виконувати, й обсяг оперативної памяті, який резервується для нього.
Тип змінної визначає її допустимі значення, розмір відведеної для неї памяті та операції, які можна над нею виконувати. Тип констант компілятор автоматично розпізнає без попереднього опису.
Стандартні типи даних
Кожний елемент даних належить до одного із множини типів.
Всі типи даних поділяються на прості (скалярні) та складені (структуровані). Прості типи у свою чергу поділяються на стандартні та типи користувачів. Стандартні типи надаються користувачам розробниками мови (системи) програмування. Типи користувача розробляються самим програмістом.
Прості стандартні типи даних цілі, дійсні, символьні, логічні.
До структурованих типів даних належать: масив, запис, множина, файл.
Стандартні типи даних мови Pascal
Таблиця 2
Стандартне імя |
Діапазон значень |
Необхідна память (байт) |
Цілі числові типи |
||
byte |
0..255 |
1 |
shortint |
-128..127 |
1 |
word |
0..65535 |
2 |
integer |
-32768..32757 |
2 |
longint |
-2147483648..2147483647 |
4 |
Дійсні типи |
||
real |
2.9*10E-39..1.7*10E38 |
6 |
single |
1.5*10E-45..3.4*10E38 |
4 |
double |
5.0*10E-324..1.7*10E308 |
8 |
extended |
1.9*10E-4951..1.1*10E4932 |
10 |
Символьний тип |
||
char |
множина символів кодової таблиці |
1 |
Логічний тип |
||
boolean |
false (хибність), true (істинність) |
1 |
Значення даних цілого типу подаються як десяткові числа записані без крапки. Перед відємним числом ставлять знак “-“. Приклади чисел цілого типу:
14 -357 0 5390
Змінні, які оголошені як змінні цілого типу даних, можуть приймати значення тільки цілого типу.
Приклад
Var x : byte; y : integer;
X:=65; y:=-5;
Змінна X не може набувати відємних значень, оскільки вони не входять до діапазону допустимих значень типу byte.
Над даними цілого типу можна виконувати такі арифметичні операції:
Таблиця 3
Пріоритет |
Символ операції |
Дія |
1 |
+ , - |
присвоєння знаку |
2 |
* / mod div |
множення звичайне ділення остача ділення без остачі |
3 |
+ - |
додавання віднімання |
Виконання кожної операції здійснюється з урахуванням пріоритету (1-найвищій). Операції одного пріоритету виконуються зліва направо. Для зміни звичайного порядку операцій використовують круглі дужки. Два знаки не можуть стояти поруч.
Наприклад:
13 div 3 = 4
13 mod 3 = 1
13 / 3 = 4.33
18 div 2 * 3 = 27
20+100/20*5 = 45
20+100/(20*5) = 21
Дійсні типи даних являють собою дійсні значення, які подаються як дійсні десяткові числа, що використовуються в арифметичних виразах. Припускається представлення дійсних значень у вигляді як із фіксованою крапкою, так і з плаваючою крапкою.
Дійсні десяткові числа із фіксованою крапкою записують за звичайними правилами арифметики, але ціла частина від дробової відокремлюється десятковою крапкою, а не комою. Якщо десяткова крапка відсутня, то число вважається цілим. Перед числом може знаходитися знак “+” або “”. Якщо знак відсутній, за замовчуванням число вважається додатнім.
Приклад
5.04 -12.56 +5. -6.008 .0005
Дійсні десяткові числа із плаваючою крапкою подаються в такому (експоненціальному) вигляді n E ± k =n∙10 ± k, де n мантиса (ціле або дробове число із фіксованою десятковою крапкою), E означає “десять у степені”, k порядок (ціле число).
Приклад
4 Е -5 = 0.00004, 0.62Е+4, -10.88Е12
Символи
Над даними дійсного типу можна виконувати такі операції
Таблиця 4
Пріоритет |
Символ операції |
Дія |
1 |
+ , - |
присвоєння знаку |
2 |
* / |
множення ділення |
3 |
+ - |
додавання віднімання |
Дані символьного типу можуть набувати значень таблиці ASCII кодів. Під дане символьного типу в памяті виділяється один байт, тому воно може приймати значення лише одного символу ASCII таблиці. Наприклад a, 7, &. Тобто дане символьного типу це символ, взятий у апострофи. Над символьними даними не визначені ніякі арифметичні операції, але вони можуть порівнюватися, брати участь у читанні та виведенні на друк, у операторах присвоєння.
Приклад
const s = $ ;
var ch1, ch2: char;
ch1:=F;
ch2:= s;
Усі стандартні типи крім дійсного є впорядкованими, тобто для кожного даного визначені наступне та попереднє значення.
Логічний тип характеризується двома значеннями false або true.
Крім стандартних типів даних компілятор мови Pascal підтримує типи, визначені користувачем. До них відносяться перераховані та інтервальні (діапазони) типи. Їх застосування значно покращує наочність програми, робить більш легким пошук помилок і економить память.
Перераховний тип даних такий, за якого кількість усіх можливих значень обмежена (скінчена). Наприклад, тип Word відповідає цьому визначенню, оскільки має 65 536 значень від 0 до 65535. Перераховними є також типи: Byte 256 значень від 0 до 255 та Char у ньому 256 символів із кодами від 0 до 255. Також можна перерахувати всі значення типів ShortInt, Integer і LongInt, починаючи з відємного цілого значення.
Визначеним перераховним типом є також логічний тип Boolean. У нього всього два значення False та True. Номер False дорівнює 0, а номер True 1.
Перераховний тип можна розписати в ряд за значеннями. Наприклад, для Char, Byte і Boolean правильно таке:
Type
Char = {симв 0, симв 1, ..., симв 64, A,B,C,…, симв 255};
Byte = {0, 1, 2,…, 254, 255};
Boolean = {False, True};
Ці визначення зроблені на етапі написання самого компілятора мови Pascal, і ми можемо ними користуватися. Крім того, є можливість вводити нові перераховні типи, надаючи їм імена та перераховуючи через кому в круглих дужках назви елементів-значень цього типу, наприклад:
TYPE
Counter ={first, second, third};
Test = {Leve l0,Leve l1, Leve l3, Leve l4, Leve l5};
Number = {N 1, N 2, N 3, N 4, N 5, N 6, N 7};
Тут вміст дужок це значення нових типів. Далі можна оголошувати змінні цих типів, а їхніми значеннями можна індексувати масиви або організовувати за ними цикли. Але завжди змінна такого типу може містити тільки ті значення, що вказані при його перерахуванні.
Перераховні дані повинні мати синтаксис ідентифікаторів, і тому не можуть бути перераховними цифри, символи, рядки.
Використання перераховних типів має деякі переваги, а саме:
Для роботи з перераховними типами в мові Pascal використовуються функції Ord, Pred та Sucс. Їх дія базується на тому факті, що будь-який прераховний тип має внутрішню нумерацію. Перший елемент має завжди номер 0, другий номер 1 і так далі. Порядок нумерації відповідає порядку перерахування. Номер кожного елемента можна отримати функцією Ord(x): LongInt, що повертає ціле число у форматі довгого цілого, де x значення перераховного типу або змінна, що його містить. Для значень типу Char вона поверне їхній код, а для логічних значень 0 або 1. Обернена функція для витягання значення за його порядковим номером у мові chr. Приклад: ord(a)=65; ch(65)= a. Вираз вигляду X:= <імя перераховного типу> (порядковий номер) запише в змінну X значення, що відповідає поданому порядковому номеру елемента перерахування. Крім того, є дві функції послідовного перебирання значень перераховного типу. Succ(X) повертає наступне за X значення в перераховному типі; Pred(X) повертає попереднє значення в перераховному типі. Вони можуть використовуватися до цілочислових значень і поліпшують роботу, наприклад, у виразах вигляду (N-1)*N*(N+1), які можна переписати, наприклад, у вигляді Pred(N)*N*Succ(N). Невизначеною є спроба отримати результат Succ (останній елемент перерахування) або Pred (перший елемент перерахування). Перераховні значення можна порівнювати між собою; більшим вважається той елемент, що має більший номер.
Інтервальні типи. Діапазони.
Діапазони вводяться на етапі написання програми і можуть визначати тип, що міститиме значення тільки з обмеженого піддіапазону деякого базового типу. Базовим типом, з якого беруться діапазони, може бути будь-який цілочисловий тип, тип Char та будь-який із введених нами перераховних типів. Щоб визначити діапазон, вказують у блоці TYPE імя цього типу та межі діапазону через дві крапки підряд:
TYPE
IR = 1..25;
Letters = A..Я;
Days = mon..sun;
Змінні таких типів можуть мати тільки значення у межах, визначених типом діапазонів, включаючи граничні значення. Це зручно, бо поліпшує контроль даних під час введення програми. При конструюванні діапазону в описі типу можна використовувати нескладні арифметичні вирази для обчислення меж. Але треба дотримуватися правила, щоб запис цього виразу не починався з дужки, бо дужка це ознака початку перерахування.
Прості програми
Алгоритм точний опис послідовності дій, необхідних для розвязання поставленої задачі. Найпростішими є програми із лінійною структурою алгоритму. Лінійний алгоритм це алгоритм, де одна дія виконується слідом за іншою послідовно в порядку їх розташування, і при цьому жодна з дій не пропускається і не повторюється. Загальний вигляд лінійного алгоритму, поданий у вигляді блок-схеми, такий:
Дія 1 |
Дія 2 |
Дія N |
Рис. 1. Схема лінійного алгоритму
Прості (із лінійнім алгоритмом) програми складаються з операторів присвоєння, введення-виведення даних та викликів процедур. Оператори програми завершуються символом “;”. У кінці програми завжди має стояти крапка.
Для пояснення тексту програми використовують коментарі. Коментарі можна писати у будь-якій частині програми, де дозволяється пробіл. Текст коментарів обмежують символами { } або (* *). Коментарі ігноруються компілятором, тому не впливають на виконання програми.
Оператор присвоєння
Оператор присвоєння має вигляд
<імя змінної> := <вираз> ;
Дія оператору: Обчислюється вираз і його значення надається змінній. Тобто оператор присвоєння надає змінній конкретне значення, одночасно знищуючи старе. Присвоювати можна значення іншої змінної або результат обчислення виразу.
Змінна і вираз можуть бути одного типу або узгодженими: змінним дійсного типу можна надавати значення виразів цілого типу, а змінним рядкового типу присвоювати значення виразів символьного типу, але не навпаки.
Арифметичні вирази
Вирази, в яких застосовуються тільки арифметичні операції, називають арифметичними. Результат їх обчислення число.
У мові Pascal для облегшення розрахунків використовують стандартні функції
Основні стандартні функції
Таблиця 5
Функція |
Тип аргументу |
Тип результату |
Математичний запис, коментар |
abs(x) |
integer, real |
integer, real |
|x| |
arctan(x) |
integer, real |
real |
arctg x |
cos(x) |
integer, real |
real |
cos x |
sin(x) |
integer, real |
real |
sin x |
exp(x) |
integer, real |
real |
ex |
ln(x) |
integer, real |
real |
ln x |
sqrt(x) |
integer, real |
real |
|
sqr(x) |
integer, real |
integer, real |
x2 |
ord(x) |
char упорядкований |
integer |
ASCII код символу, номер елемента |
succ(x) |
упорядкований |
упорядкований |
повертає наступне значення x |
pred(x) |
упорядкований |
упорядкований |
повертає попереднє значення x |
round(x) |
real |
integer |
заокруглює число x до цілого |
trunc(x) |
real |
integer |
відкидає дробову частину числа x |
int(x) |
real |
real |
відкидає дробову частину числа x |
frac(x) |
real |
real |
дробова частина числа x |
odd(x) |
integer |
boolean |
true (x непарне), false (x парне) |
random(x) |
integer |
integer |
генерує випадкове число з діапазону від 0 до x |
upcase(x) |
char |
char |
замінює малу літеру латинської абетки на велику |
Інші математичні функції можна виразити через основні. Наприклад
Приклади операторів присвоювання з арифметичними виразами:
Таблиця 6
Традиційно |
На Pascal |
X = |
Х := (А + B cos(Y)) / (A B) ; |
Y := exp (1/3*ln(x+sin(x)))/(2+x)-ln(abs(x-1))+exp(x-4) ; |
|
Y := exp(x*ln(2))/(3.72-exp(2*ln(x)))+ 4.13*cos(sqrt(abs(x))) ; |
Оператори введення-виведення даних
Уведення числової і текстової інформації в Pascal здійснюється операторами Read та Readln. Оператори мають такий формат:
Read (Список введення); Readln (Список введення);.
Список введення це імена змінних, відділені комою. При виконанні цих операторів очікується введення даних відповідно до кількості й типу імен змінних у списку. Дані, що вводяться, відділяються комою або пропуском (можна натискати клавішу Enter). Оператор Readln відрізняється від Read тим, що після його виконання курсор переводиться на новий рядок.
Приклад
...
uses WinCrt;
var
a,b : real;
c,k : integer;
s : char;
...
BEGIN
Read(a,b,c); {Очікуються два дійсних значення та одне ціле. Курсор не переводиться}
Readln(k); {Після введення одного цілого значення курсор опиниться на наступному рядку}
Readln; {Порожнім є список введення. Натиснувши Enter, переведемо курсор на новий рядок}
Read(s); {Очікується одне символьне значення. Курсор залишиться на поточному рядку}
...
END.
Виведення даних у Pascal здійснюють оператори Write або Writeln. Вигляд їх такий:
Write (Список виведення);
Writln (Список виведення).
У списку виведення містяться імена змінних, константи або вирази, що відділяються комами. За замовчуванням значення виводитимуться у стандартному форматі. Можна також після імені змінної вказати заданий формат, що складається з числового цілого значення ширини поля, після якого може йти кількість знаків після коми (для дійсних значень). Такий параметр форматування відділяється від імені двокрапкою :, як і його друга частина від першої.
Приклад
...
uses WinCrt;
...
BEGIN
Writeln (Значення змінних A та B); {На екран виведеться текст, записаний у лапках.
Курсор переведеться на наступний рядок}
Writeln (A:8:2, ,b:12:4); {Виводяться значення змінної A у вісім позицій із двома
цифрами у дробовій частині, потім три пробіли, далі у тому ж
рядку значення B виводиться у 12 позицій екрана,
причому дробова частина має 4 значущі цифри.
Курсор переводиться на наступний рядок }
...
END.
Приклад розробки програми 1
Постановка задачі:
Обчислити значення функції y при поданому значенні аргументу x. Вивести на екран значення x та y.
Схема алгоритму
при х = 0,4.
Лістинг програми:
PROGRAM FFF;
Uses WinCRT;
var
x,y : real;
BEGIN
Write ('Enter x: ');
readln(x);
y:=exp (1/3*ln(x+sin(x)))/(2+x)-ln(abs(x-1))+exp(x-4);
writeln ('x = ',x:8:2,' y = ',y:6:2);
readln;
END.
Результати виконання
Enter x: 0.4
x = 0.40 y = 0.92
Приклад розробки програми 2
Постановка задачі:
Обчислити значення функції Z, поданої співвідношеннями:
Вивести на екран значення аргументу x та функцій Y і Z.
Лістинг програми:
PROGRAM YZ;
Uses WinCRT;
Var
x,Y,Z : real;
BEGIN
writeln('Enter x:');
readln(x);
Y:=exp(x*ln(2))/(3.72-exp(2*ln(x)))+4.13*cos(sqrt(abs(x)));
Z:=x*arctan(0.5*Y);
writeln('x=',x:5:2,' Y=',y:5:2,' Z=',z:5:2);
readln;
END.
Результати виконання
Enter x: 0.5
x = 0.50 Y = 3.35 Z = 0.53
Приклад розробки програми 3
Постановка задачі:
Розробити блок-схему алгоритму та програму обчислення значення функції
Схема алгоритму:
Лістинг програми:
Program Calcucator;
Uses WinCrt; {Підключення модуля керування виводом на екран}
Var
x:real; {Аргумент}
y:real; {Результат}
k,p,q:real; {Проміжні результати}
Begin
ClrScr; {Очищення екрану}
Writeln(Програма обчислення значення функції);
Writeln;
Writeln(Розробив студент групи ______ ______________);
Writeln;
{Введення початкових даних}
Writeln(Введіть значення x);
Readln(x);
{Обчислення значення функції}
p:=sin(exp(x));
q:=exp(x)+p+sqrt(abs(p));
k:=sin(sqrt(1+p+abs(p)))/cos(sqrt(1+p+abs(p)));
y:=q/k;
{Виведення результату}
Writeln(x=,x:4:1, ,y=,y:5:2);
Writeln(Програма роботу закінчила);
End.
Завдання до лабораторної роботи
Робота у інтегрованому середовищі Turbo Pascal:
1.На диску D: у папці Student створити власну папку (наприклад T08-1\Ivanov ).
2. За допомогою ярлика на робочому столі завантажити програмне середовище TurboPascal. Або C:\TPW\tpw.exe.
3. Якщо екран порожній, то можна відразу набирати текст програми, роблячи такі ж самі відступи, які є у прикладі. Ці відступи полегшують читання тексту та пошук помилок. Якщо на екрані після запуску системи знаходиться непотрібна програма, слід виконати команду меню File/New.
4. У вікні редагування ввести з клавіатури текст програми:
Program VVID01; Uses WinCRT; Var A, B, SUMMA : Integer; Begin Write ('Введіть ціле число А - '); Readln (A); Write ('Введіть ціле число В - '); Readln (B); SUMMA := A+B; Write ('Сума чисел - ', SUMMA); End. |
1 2 3 4 5 6 7 8 9 10 11 |
5. Поки файл із текстом програми має назву NONAME00, тобто йому не присвоєне конкретне імя. Збережіть текст програми на диску D: у своєму власному каталозі під назвою V01.PAS, для чого клавішами Alt + F перейдіть у меню, виберіть пункт Save as... (записати під новим імям) і у вікні введення задайте імя файлу V01.PAS.
Теж саме можна виконати, увійшовши в головне меню за допомогою клавіші F10, вибрати пункт меню File, а потім Save as...
На екран компютера буде виведене вікно збереження файлу. Перехід від одного елемента вікна до іншого здійснюється за допомогою клавіші Tab. Кожний елемент, коли він є активним, підсвічується. За допомогою списків, що розгортаються, обрати диск D: та власний каталог. У верхньому рядку вікна задати імя файлу. Натиснути кнопку [Save].
6. Відкомпілювати програму командою Compile/Compile (Alt + F9).
7. Якщо при виконанні пункту 6 у програмі були помилки, виконання програми буде припинене та компілятор видасть повідомлення про помилку. Після натиснення клавіші Esc курсор буде встановлений на перший помилковий запис. Для перегляду інформації про помилку треба натиснути Ctrl+F1. Необхідно всі помилки виправити і виконати пункт 6 ще раз.
8. Ще раз зберегти виправлену програму у файлі командою File/Save.
9. Виконати програму командою Run/Run (Ctrl + F9). У діалоговому режимі роботи програми необхідно ввести початкові дані, наприклад А 5, B 10
10. Переглянути результат роботи програми у вікні виконання. Для повернення в режим редагування програми закрити вікно.
11. Вийти із інтегрованого середовища Turbo Pascal за допомогою клавіш Alt + F4 або через меню.
12. Запустити інтегроване середовище Turbo Pascal.
13. Завантажити у вікно редагування файл V01.PAS. Для чого клавішами Alt + F перейти до меню, вибрати пункт Open (відкрити файл) або натиснути клавішу F3.
На екран компютера буде виведене вікно вибору файлу. Перехід від одного елемента до іншого здійснюється за допомогою клавіші Tab. За допомогою списків, що розгортаються, обрати диск D: та власний каталог. Встановити курсор на назві файлу V01.PAS, після цього натисканням клавіші Tab вибрати кнопку [OPEN].
14. Вставити коментар після першого рядка. Для цього підвести курсор до кінця першого рядка й нажати Enter, а на новому рядку набрати текст: { перша програма }
Текст програми буде виглядати:
Program VVID01; { перша програма } Uses WinCRT; Var A, B, SUMMA : Integer; Begin Write ('Введіть ціле число А - '); Readln (A); Write ('Введіть ціле число В - '); Readln (B); SUMMA := A+B; Write ('Сума чисел - ', SUMMA); End. |
1 2 3 4 5 6 7 8 9 10 11 |
15. Виділити текст коментаря і скопіювати його.
Для цього підвести курсор до початку коментаря й клавішами Shift +→ ( виділити необхідний блок), потім нажати клавіші Ctrl + Ins.
16. Вставити копію текст коментаря у рядок з номером чотири. Для цього підвести курсор до останньої позиції рядка з номером чотири й нажати клавіші Shift + Ins.
17. Видалити рядок коментаря, що розташований після першого рядка. Для цього підвести курсор до початку рядка, що видаляється, і нажати клавіші Ctrl + Q, Y.
18. Зберегти текст програми.
19. Вийти з інтегрованого середовища Turbo Pascal.
Формати виведення у процедурах Write і WriteLn
Program VVOD02; Uses WinCRT; Var A, B: Integer; Begin {Введення цілих чисел}Write ('Введіть числа А, B - '); Readln (A, B); WriteLn ('********************'); { 20 символів} WriteLn (A); WriteLn (B); WriteLn (A, А); End. |
1 2 3 4 5 6 7 8 9 10 11 |
У тексті програми рядок №7 використається для того, щоб легше було підраховувати кількість виведених знаків і номер виведеної позиції.
Оператор звичайного виведення |
Результат |
Оператор форматованого виведення |
Результат |
WriteLn (A) |
WriteLn (A:6) |
||
WriteLn (B) |
WriteLn (B:10) |
||
WriteLn (A,A) |
WriteLn (A:8, A: 6) |
При записі результатів необхідно вказувати пробіли від початку рядка й між цифрами й символами.
Var A, B: Real; замість рядка № 3
Begin {Введення дійсних чисел} замість рядка № 4
WriteLn (A/2); замість рядка № 10
Записати у зошит одержані результати у вигляді таблиці, заповнивши перший і другий стовпці:
Оператор звичайного виведення |
Результат |
Оператор форматованого виведення |
Результат |
Оператор форматованого виведення |
Результат |
WriteLn (A) |
WriteLn (A:15) |
WriteLn (A:8:4) |
|||
WriteLn (B) |
WriteLn (B:10) |
WriteLn (B:10:2) |
|||
WriteLn (A /2) |
WriteLn (A /2:12) |
WriteLn (A/2:5:3) |
Var A, B: Char; замість рядка № 3
Begin {Введення даних символьного типу} замість рядка № 4
WriteLn (A, A, A); замість рядка № 10
Записати у зошит одержані результати у вигляді таблиці, заповнивши перший і другий стовпці:
Оператор звичайного виведення |
Результат |
Оператор форматованого виведення |
Результат |
WriteLn (A) |
WriteLn (A:3) |
||
WriteLn (B) |
WriteLn (B: 5) |
||
WriteLn (A , A, A) |
WriteLn (A:2 , A:4, A:3) |
Текст програми буде виглядати:
Program VVOD02; Uses WinCRT; Var A, B: Boolean; Begin {Введення даних логічного типу} WriteLn ('********************'); { 20 символів} A:= True; B:= False; WriteLn (A); WriteLn (B); WriteLn (not A, B); End. |
1 2 3 4 5 6 7 8 9 10 |
Оператор звичайного виведення |
Результат |
Оператор форматованого виведення |
Результат |
WriteLn (A) |
WriteLn (A:6) |
||
WriteLn (B) |
WriteLn (B:10) |
||
WriteLn (not A, B) |
WriteLn (not A:7, B:3) |
Завдання для індивідуальної роботи
Скласти блок-схему та програму обчислення значень функцій y, z та w при трьох різних значеннях змінної x. Результати: x, y, z, w вивести на екран у форматі, відповідному до завдання.
№ варіанту |
Функції |
Формат виведення даних |
||
Імя змінної |
Ширина поля |
Кількість знаків після коми |
||
1. |
x |
7 |
2 |
|
y |
10 |
4 |
||
z |
8 |
2 |
||
w |
10 |
3 |
||
2. |
x |
12 |
2 |
|
y |
8 |
3 |
||
z |
10 |
2 |
||
w |
12 |
4 |
||
3. |
x |
9 |
3 |
|
y |
8 |
2 |
||
z |
10 |
3 |
||
w |
7 |
4 |
||
4. |
x |
8 |
2 |
|
y |
12 |
3 |
||
z |
10 |
4 |
||
w |
9 |
2 |
||
5. |
x |
10 |
2 |
|
y |
9 |
3 |
||
z |
12 |
4 |
||
w |
9 |
3 |
||
6. |
x |
10 |
2 |
|
y |
12 |
3 |
||
z |
10 |
3 |
||
w |
12 |
5 |
||
7. |
x |
6 |
3 |
|
y |
10 |
3 |
||
z |
12 |
3 |
||
w |
8 |
2 |
||
8. |
x |
7 |
2 |
|
y |
10 |
4 |
||
z |
10 |
5 |
||
w |
10 |
3 |
||
9. |
x |
10 |
2 |
|
y |
9 |
3 |
||
z |
12 |
3 |
||
w |
15 |
5 |
||
10. |
x |
8 |
2 |
|
y |
11 |
3 |
||
z |
9 |
4 |
||
w |
12 |
4 |
||
11. |
x |
7 |
2 |
|
y |
10 |
3 |
||
z |
12 |
4 |
||
w |
10 |
4 |
||
12. |
x |
6 |
2 |
|
y |
12 |
4 |
||
z |
15 |
5 |
||
w |
12 |
3 |
||
13. |
x |
9 |
3 |
|
y |
15 |
4 |
||
z |
15 |
3 |
||
w |
15 |
2 |
||
14. |
x |
7 |
2 |
|
y |
10 |
3 |
||
z |
10 |
2 |
||
w |
10 |
4 |
||
15. |
x |
9 |
3 |
|
y |
12 |
4 |
||
z |
12 |
3 |
||
w |
12 |
5 |
||
16. |
x |
7 |
2 |
|
y |
10 |
3 |
||
z |
10 |
4 |
||
w |
9 |
3 |
||
17. |
x |
8 |
2 |
|
y |
15 |
3 |
||
z |
12 |
3 |
||
w |
10 |
3 |
||
18. |
x |
8 |
2 |
|
y |
10 |
4 |
||
z |
10 |
3 |
||
w |
10 |
3 |
||
19. |
x |
10 |
3 |
|
y |
12 |
4 |
||
z |
14 |
3 |
||
w |
14 |
5 |
||
20. |
x |
8 |
2 |
|
y |
10 |
4 |
||
z |
10 |
5 |
||
w |
10 |
3 |
||
21. |
x |
9 |
4 |
|
y |
9 |
2 |
||
z |
12 |
3 |
||
w |
12 |
5 |
||
22. |
x |
7 |
1 |
|
y |
9 |
3 |
||
z |
10 |
3 |
||
w |
10 |
4 |
||
23. |
x |
7 |
1 |
|
y |
13 |
3 |
||
z |
13 |
5 |
||
w |
13 |
4 |
||
24. |
x |
7 |
1 |
|
y |
10 |
3 |
||
z |
10 |
5 |
||
w |
10 |
4 |
||
25. |
x |
10 |
2 |
|
y |
12 |
3 |
||
z |
12 |
5 |
||
w |
12 |
4 |
||
26. |
x |
9 |
3 |
|
y |
10 |
3 |
||
z |
11 |
3 |
||
w |
12 |
3 |
Контрольні запитання
WriteLn (A) WriteLn (A:8) WriteLn (A:8:4) при А = 19.345е-01
WriteLn ('Відповідь рішення: ', A, ' + ', B,' = ', A+B), якщо А =3, В =4?
WriteLn(123 : 6) WriteLn('123' : 6)?
PAGE 17