Здавалка
Главная | Обратная связь

Константи та змінні.



Зміст звіту

Звіт оформляється на аркушах формату А4 і починається з титульного аркуша (див. додаток).

 

 

1. Лабораторна робота №1.
Основні відомості про мову Паскаль.

1.1. Перша програма. Оператори виводу Write, Writeln.

 

Кожна програма на мові Паскаль починається з слова Programі має своє ім’я, яке як і всі імена в Паскалі починається з літери латинського алфавіту і може складатися з літер латинського алфавіту, цифр або символу підкреслення. Початок програми визначається ключовим словом – begin, а кінець – end.Тобто найпростіша програма на мові Паскаль виглядатиме так:

ProgramName_1;

Begin

End.

де

· Name_1 – це ім’я програми;

· крапка з комою ( ; )після ім’я обов’язковий роздільник, що в Паскалі ставиться наприкінці кожної дії (оператора);

· крапка після end –ставитьсятільки наприкінці програми;

· Паскаль ігнорує різницю між заголовними і прописними літерами, тобто слово Programможна було б написати як PROGRAMабо program,це ж стосується і до решти слів;

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

 

Ця програма оформлена вірно, але нічого не виконує. Для того щоб змусити її працювати потрібно між словами beginта endзадати деяку послідовність дій або операторів. Наприклад якщо ми хочемо вивести на екран повідомлення, про те що програма працює, нам потрібно використати оператор Write (від англійського слова писати). Програма змінить свій вигляд:

ProgramName_2;

Begin

Write(’Я працюю.’);

End.

де одинарні лапки інформують програму про початок і кінець тексту.

Ця програма виведе на екран повідомлення:

 

Я працюю.

 

але вже без лапок.

 

Якщо ж ми застосуємо оператор Write двічі то текст буде виводитись послідовно. Наприклад програма:

ProgramName_3;

Begin

Write(’Я працюю.’);

Write(’Введіть число:’);

End.

Виведе на екран повідомлення:

Я працюю.Введіть число:

 

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

 

ProgramName_4;

Begin

Writeln(’Я працюю.’);

Writeln(’Введіть число:’);

End.

 

Виведе на екран повідомлення:

 

Я працюю.

Введіть число:

 

Виникає нове завдання – ввести данні в програму.

 

Константи та змінні.

 

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

Константи прийнято оголошувати після назви програми за допомогою ключового слова Const, тип константи визначається за способом запису її значень. Наприклад:

 

Const

C1=17;

C2=3.14;

C3=’Це текст’;

 

в цьому випадку C1, C2, C3це імена констант, справа від імен через знак = записуються значення які приймають константи на час виконання програми. ТакC1– ціла константа зі значенням 17, C2дійсна зі значенням 3.14, C3– рядкова містить рядок ’Це текст’.

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

 

ProgramName_5;

Const

C1=3.14;

C2=’Число Pi = ’;

Begin

Write(C2);

Writeln(C1);

End.

Виведе на екран повідомлення:

 

Число Pi = 3.14

 

Цю програму можна зробити ще простіше, замінивши оператори Write(C2); Writeln(C1); на один Writeln і вказавши обидві константи розділені комою.

 

ProgramName_7;

Const

C1=3.14;

C2=’Число Pi = ’;

Begin

Writeln (C2, C1);

End.

Вона виведе на екран теж саме повідомлення:

 

Число Pi = 3.14

 

Змінні прийнято оголошувати після назви програми і після оголошення констант, якщо воно присутнє в програмі. На початку оголошення змінних повинно бути ключове слово Var(від англійського variable-змінна). На відміну від констант тип змінної задається не значенням, а явним вказування назви типу через двокрапку (:) після назви змінної. Наприклад:

 

Var

delta : real;

I : integer;

 

де delta і I – назви змінних, а realі integer –типиданих (дійсний і цілий відповідно).

 

1.3. Типи даних. Числові типи. Операції над числовими типами.

 

Взагалі типи даних – визначають область значень, які може приймати змінна програми і сукупність операцій, припустимих для цих значень.

 

Для початку розглянемо стандартні числові типи даних. Серед числових типів даних найчастіше використовуються такі типи:

 

цілі типи

 

Назва типу Область значень
byte 0…255
shortint -128…127
integer -32768…32767
word 0…65535
longint -2147483648…2147483647

 

Для цих типів допустимі операції :

 

+– додавання;

– віднімання;

* – множення;

div – цілочислове ділення;

mod – остача від ділення.

 

дійсні типи

 

Назва типу Область значень
real 2.9*10E-39…1.7*10E38
double 5.0*10E-324…1.7*10E308
extended 1.9*10E-4951…1.1*10E4932

 

При записі дійсних чисел для відокремлення цілої частини від дробової використовують крапку, наприклад:

 

1.0; 3.14 ; -0.5123

Також можна використовувати експоненційну форму запису числа:

 

10.02E+1 ; -6.3700E-3

де число після Eозначає степінь до якого треба привести число 10 і помножити на число перед E, тобто:

 

10.02E+1 = 10 * 10.02 = 100.2

Для цих типів допустимі операції :

 

+– додавання;

– віднімання;

* – множення;

/ – ділення.

 

При в введені формул для визначення порядку обчислень, як і в математиці, можна використовувати дужки. Наприклад:

формула буде написана мовою Паскаль так:

Y:=( A - B ) / ( C + B / ( C - B ) ).

 

Зазначимо, що замість математичного знака рівності, в Паскалі використовується оператор присвоювання - :=. В даному випадку він означає, що програма після виконання обчислень, запише число - результат обчислень в змінну Y. Цей же оператор може використовуватись для задання початкових значень змінних, наприклад:

 

I:=17;

Delta=0.001;

 

Тепер ми можемо написати просту програму для ділення двох дійсних чисел:

ProgramName_8;

Var

a, b, c : real;

Begin

a := 2.1;

b := 3.21;

c := a/b;

Writeln (’a/b = ’, c);

End.

 

При виконанні програма виведе результат:

 

a/b = 6.5420560E-01

 

Щоб отримати результат в більш звичному вигляді, можна в операторі Writeln після змінної с вказати, через двокрапку скільки цифр числа ми хочемо побачити,

і скільки цифр дробової частини нам потрібно. Наприклад:

 

Writeln (’a/b = ’, c:5:3);

 

виведе:

 

a/b = 0,654

 

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

 

1.4. Оператори вводу Read, Readln.

 

Для того щоб мати можливість задавати довільні дані з клавіатури і записати їх у зміну - треба використовувати оператори Read або Readln. Різниця між цими операторами полягає в тому, що Readlnпіслязчитування переходить на новий рядок. Наприклад, програма:

 

ProgramName_8;

Var

a, b, c : real;

Begin

Write(’Введіть число a :’);

Readln(a);

Write(’Введіть число b :’);

Readln(b);

c := a/b;

Writeln (’a/b = ’ , c:5:3);

End.

 

запропонує ввести з клавіатури число а, наберемо число 4.2 і натиснемо клавішу “Enter”, потім запропонує ввести число b – нехай це буде 2.3, тоді результат роботи програми виглядатиме так:

 

Введіть число a: 4.2

Введіть число b : 2.3

a/b = 1,826

 

Зауваження: Як і у випадку з оператором Write, в оператором Read можна зчитати декілька змінних одночасно, полічивши їх через кому:

 

Read(a, b, c);

 

зчитає змінні a, b і c, причому при вводі даних відповідні їм значення повинні відокремлюватись пробілом.

 

1.5. Математичні функції.

 

Для більш складних використовують стандартні математичні функції Паскаля:

Abs(X) – обчислення абсолютного значення числа x;

Sqr(X)– квадрат числа x;

Sqrt(X) – квадратний корінь з x;

Sin(X) – sin(x) (x в радіанах);

Cos(X) – cos(x) (x і радіанах);

Exp(X) – експонента x;

Ln(X) – натуральний логарифм;

Arctan(X) – arctg(x) (результат в радіанах);

Int(X) – отримати цілу частину числа х,

Frac(X) – отримати дробову частину числа х;

 

Інші функції можна моделювати зі стандартних за допомогою математичних формул, наприклад:

 

Функція Математичний вираз Вираз на Паскаль
tg X sin X / cos X Sin(x)/Cos(x)
ctg X cos X / sin X Cos(x)/Sin(x)
ln x / ln y LN(X)/LN(Y)
lg x ln x / ln 10 LN(X)/LN(10)
EXP(y*LN(ABS(x)))

 

 

На відміну від більшості мов програмування, мова Паскаль добре підходить для перетворення типів.

Якщо змінній типу real присвоєно значення типу integer, то ці значення автоматично перетворюються на дійсний еквівалент (-2 в -2.0, 5 в 5.0 і т.д.). Але для того, щоб виконати зворотне перетворення, тобто цілій змінній присвоїти дійсне значення, необхідно використати спеціальні функції:

 

Trunc(x) – функція, яка повертає цілу частину свого дійсного аргументу (x);

Round(x) – функція, яка округляє дійсний аргумент до найближчого цілого.

 

Наведемо декілька прикладів роботи цих стандартних функцій.

Значення функцій

Trunc(4.2), Trunc(4.5) та Trunc (4.8) збігаються та дорівнюють 4.

Значення

Round(4.2) дорівнює 4, а Round(4.5) та Round(4.8) дорівнює 5.

Або, наприклад, значення

Trunc (-4.7) дорівнює -4, а значення Round(4,7) дорівнює -5.

 

Тепер ми маємо всю необхідну інформацію для програмування різних математичних виразів та формул. Розглянемо приклад.

 

Приклад 1.

 

Приклад 1.

Скласти програму для обчислення змінної за заданою формулою:

 

Спочатку визначимося з набором змінних, в формулі присутні літери грецького алфавіту , проте ми вже знаємо, що в мові Паскаль для назв змінних можна використовувати лише латинські літери та цифри, тому відповідні змінні можемо назвати alpha, beta, gamma, delta, або взагалі просто a, b, c, d.

У формулі всі аргументи приймають дійсні значення тому, при оголошенні змінних можемо використати тип даних real.

 

Var

a, b, c, d : real;

 

Змінні a, b, c використовуються у правій частині рівняння, тому їх спочатку треба прочитати за допомогою оператора Read.А результат обчислень потрібно запам’ятати в змінній d і вивести за допомогою оператора Write.

В формулі використовуються функції tg X і lg X - які не мають прямих відповідників у мові Паскаль, але їх можна змоделювати через стандартні функції, як зазначалося вище.

 

tg a – sin(a)/cos(a);

lg b – ln(b)/ln(10);

 

Для знаходження квадрату – використаємо функцію SQRT, а порядок операцій визначимо за допомогою дужок, тоді загальна формула прийме вигляд:

d := ( sin(a)/cos(a) - SQR( ln(b)/ln(10) ) ) / c;

Тепер запишемо програму повністю:

 

ProgramLaba_1;

Var

a, b, c, d : real;

Begin

Write(’Введіть число a :’);

Readln(a);

Write(’Введіть число b :’);

Readln(b);

Write(’Введіть число c :’);

Readln(c);

d := ( sin(a)/cos(a) - sqr( ln(b)/ln(10) ) ) / c;

Writeln(’d = ’ , c:5:3);

End.

 

Ведемо значення для змінних a, b, c – відповідно 2.1, 3.3, 0.4, тоді отримаємо результат роботи програми:

 

Введіть число a: 2.1

Введіть число b : 3.3

Введіть число c : 0.4

d = -4,946

 

Блок-схема програми:

 

 

Зауваження: При вводі даних треба враховувати, що логарифм визначений тільки для додатних чисел, отже b – повинно бути більше нуля, і ділення на нуль не можливе, отже c – повинно бути ненульове. В противному випадку програма замість результату видасть повідомлення про помилку.

 

1.7. Індивідуальні завдання.

 

Cкласти алгоритм i програму для обчислення значення змінної за заданою формулою:

1. 16. x=U2+lg t cos(t2-cos rt)
2. x=1+ arctg (t-cos t) 17. x=U2+arctg(t4-cos st)
3. 18.
4. 19.
5. 20.
6. w=U2sin x +cos(t4-cos st) 21. x=U2+cos(t2-cos rt)
7. x=1+ arctg (t2-cos kt) 22.
8. 23.
9. 24.
10. 25.
11. 26.
12. 27.
13. 28.
14. 29.
15. 30.

 


2. Лабораторна робота №2.
Умовний оператор IF, та оператор переходу GOTO.







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