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

Дані, якими оперує програма, можуть бути визначені в ній як незмінні, або як здатні змінювати своє значення в ході виконання програми. Перші називаються константами, а другі змінними. І змінні і константи розміщуються в пам'яті комп'ютера (в так званій "комірці пам'яті"). У програмі змінні повинні бути описані в реченні VAR (від слова VARIABLE-змінна), а константи - в реченні CONST. У будь-якої величини є три основних властивості: ім'я, значення, тип.

І в житті і в програмуванні дуже корисно використовувати поняття типу. Припустимо, вам сказали, що ви повинні придбати Джой. Більше нічого не відомо - скільки у нього ніг, предмет це або тварина і т.д. в той же час дуже багато що можна повідомити, додавши лише одне слово, яке визначає тип об'єкта на ім'я Джой, наприклад, Джой - собака, або Джой - людина, або Джой - комп'ютер. Будь-яка константа або змінна, використана в програмі, належить до певного типу. Тип задає безліч допустимих значень змінних, зовнішній вигляд констант, можливі операції над значеннями. Значення величини типу INTEGER в Паскалі не може бути менше -32768 або більше 32767. Константи цілого типу записуються у вигляді послідовності цифр зі знаком або без нього. Змінні повинні бути перераховані в описовій частині програми в реченні

VAR ім'я_змінної: INTEGER;

Над величинами цілого типу допустимі арифметичні операції: + (додавання), - (віднімання), * (множення), DIV (ділення без остачі), MOD (знаходження залишку від цілочисельного ділення).

Всі операції виробляють результат цілого типу. наприклад,

15 DIV 4 = 3, 25 MOD 4 = 1.

Над цілими дозволено і традиційне розподіл, воно позначається косою рисою "/" і дає результат дійсного типу.

2.4. Тип REAL (речовинний).
Константи дійсного типу (числа з дробовою частиною) зображуються з десятковою крапкою:
12.3, -1.5, -0.75 чи в показовою формі: -0.45Е5, 6.7Е-10, 0.355Е6 (для отримання числа в звичайному вигляді треба перенести кому на число розрядів зазначених після Е вправо, якщо число позитивне, вліво, якщо негативне) . Наприклад, 6.7Е-10 = 0.00000000067.

Речові змінні вимагають опису пропозицією

Над величинами дійсного типу допустимі арифметичні операції: + (додавання), - (віднімання), * (множення), / (ділення).

2.5. оператор присвоювання
Оператор присвоювання надає змінної конкретне значення, наприклад:

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

Привласнювати можна значення іншої змінної або результат обчислення арифметичного виразу: A: = B; A: + B + C; X: = Y + 2-Z.

Формат команди:
<имя переменной>: =<выражение>

Виконання команди присвоювання відбувається в такому порядку: спочатку обчислюється <выражение>, потім отримане значення присвоюється змінної.

Приклад 1. Нехай змінна А мала значення 6. яке значення отримає змінна А після виконання команди: А: = 2 х А - 1.

Рішення. Обчислення виразу 2 х А - 1 при А = 6 дасть число 11. Значить нове значення змінної А дорівнюватиме 11.

Приклад 2.
Поміняйте між собою значення двох змінних А і В, скориставшись третьої змінної R для тимчасового зберігання значення.

Рішення.
Program prim2_2;
Var a, b, r: real;
begin
Write ( 'Введіть два числа');
Readln (a, b);
R: = a;
A: = b;
B: = r;
Write ( 'a ='. A, 'b ='. B);
End.

Завдання.
1) Визначити кінцеве значення змінних X і Y в результаті виконання наступних алгоритмів:
а) Х: = 2 б) Х: = 1.5
Х: = Х х Х Х: = 2 х Х + 1
Х: = Х х Х х Х Y: = X / 2
Х: = Х х Х х Х х Х Y: = X + Y
X: = X - Y

2) Поміняйте між собою значення трьох змінних X, Y і Z по схемі потрійного квартирного обміну: Х®Y®Z®X.

3) Дайте змінної N її власне значення, збільшене в N раз.

4) Чому дорівнює Х в результаті виконання програми:
Х: = 2;
Х: = Х + Х;
Х: = Х-Х

5) Вказати значення значення величин a і b після виконання наступних операторів присвоювання:
а) a: = 5.8 б) a: = 0
b: = - 7.9 b: = - 9.99
b: = а b: = a
a: = b a: = b

Для початку перевірте правильність виконання попередніх завдань. І якщо не все вийшло, не засмучуйтесь, не помиляється той, хто нічого не робить.
На попередньому уроці ви познайомилися з представниками речового і цілого типів. Насправді і той і інший має кілька видів відрізняються діапазоном допустимих значень.
У наступній таблиці наведено 5 стандартних цілих типів:

Арифметичні вирази будуються з імен змінних, констант, знаків операцій і круглих дужок так, як це прийнято в математиці. При обчисленні їх значень операції виконуються в порядку пріоритету: *, /, DIV, MOD, а потім + і -. Операції однакового старшинства виконуються зліва направо.
Поряд зі змінними і константами в арифметичні вирази можна включати функції. При визначенні значення виразу, перш за все, обчислюються значення назв функцій. У Паскалі є такі стандартні функції:

Абсолютне значення Х

Дрібна частина Х

Ціла частина Х, обнуління дробової частини

Округлення до найближчого цілого

Квадратний корінь Х

Відкидання дробової частини

Аргумент функції обов'язково полягає в дужки.
Вираз на Паскалі, як втім, і на інших мовах програмування, записується в один рядок, а для збереження порядку дій використовуються дужки. Всі дії повинні бути вказані. Наприклад, 2Х + XY треба записати як 2 * Х + Х * Y.

1) Запишіть на Паскалі такі вирази:

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

4.1.Ввод.
Для повідомлення даних комп'ютера служить оператор введення. Він поміщає вводиться значення змінної в відведену для нього осередок. Оператор введення:

READ (список змінних), де список змінних - послідовність імен змінних, розділених комами.

Наприклад, READ (X, Y, Z); READ (BETA);

Оператор READ зупиняє роботу програми і чекає, поки користувач набере на клавіатурі число і натисне . Введене число поміщається в оперативну пам'ять, в відведену допомогу, що має ім'я вказане в операторі. Якщо список введення містить кілька імен, то для кожного треба ввести своє значення. Введені числа поділяють пробілами або натисканням клавіші .
Закінчується введення завжди клавішею . Після роботи цього оператора курсор розташовується за останнім введеним символом, але не перекладається на новий рядок. Для переміщення курсору на новий рядок екрана дисплея після введення даних, використовується оператор

Оператор READLN відрізняється від READ ще й тим, що, запровадивши необхідну кількість даних, пропускає всі інші, набрані до натискання клавіші .

4.2. Висновок.
Для виведення результатів роботи програми служить оператор

Список виведення може містити імена змінних, числові і текстові константи, вирази. Елементи в списку розділяються комами. Якщо вказана змінна, то на екран виводиться її значення, константа виводиться без зміни, значення виразів спочатку обчислюються, а потім висвічуються на екрані.
Слідом за виразом після двокрапки можна вказати ширину поля екрану, в якому розміститься виведене значення. Наприклад, оператор WRITE (10: 3, 55: 6) висвітить на екрані .10. 55 (точка означає пробіл, порожню позицію екрану). Висновок відбувається в тому місці екрана, де знаходиться курсор.
При виведенні речових значень можна вказати, скільки десяткових цифр слід зберегти в дробової частини числа. Кількість цифр вказується слідом за шириною поля після двокрапки.
Наприклад, якщо Х = 3.14159, а Y = 2.71468, то оператор WRITE (X: 6: 2, Y: 8: 3) висвітить на екрані. 3.14. 2.715.

Ці рядки з'являться на екрані без лапок. Так при Х = 3.5 цей оператор виведе:

Переклад курсора на новий рядок здійснюється оператором порожнього виведення WRITELN;
Якщо треба перевести курсор після виведення, то застосовується оператор

Приклад програми.
Нехай потрібно знайти суму, твір і різниця двох даних чисел. Для кожного з чисел треба придумати ім'я змінної і вказати її тип. Потім ввести ці числа в відведені осередки і, використовуючи можливості оператора виведення надрукувати результати.
При вирішенні завдань імена присвоюються не тільки вихідними даними, але і результатами, а також одержуваних проміжним значенням. Оскільки в розглянутому прикладі треба отримати три результату, введемо для них змінні X, Y, Z. У програмі цим змінним будуть привласнені значення суми, твори і різниці двох чисел, що вводяться.

Program prim_4;
Var a, b, x, y, z: real;
Begin
Write ( 'введіть два числа через пропуск, потім натисніть ');
Readln (a, b);
X: = a + b;
Y: = a * b;
Z: = a-b;
Writeln ( 'a + b =', x);
Writeln ( 'a * b =', y);
Writeln ( 'a-b =', z);
Readln
End.

завдання:
1) Напишіть програму, яка запитує два числа, знаходить залишок від ділення першого на друге і виводить результат.
2) Складіть програму знаходження периметра квадрата, якщо задана його площа.
3) Дано два числа. Знайти їх середнє арифметичне.
4) Знайти площу кільця по заданих зовнішньому і внутрішньому радіусів.
5) Дано катети прямокутного трикутника. Знайти його периметр.
6) * Поміняти місцями значення змінних X і Y, не використовуючи додаткової змінної.


5.3.Целочісленная арифметика. Завдання на цілочисельне ділення.
У програмуванні існує цілий клас задач, де дії проводяться тільки з цілими числами. При вирішенні подібних завдань зазвичай використовуються операції над цілими MOD і DIV. Сьогодні ми познайомимося з завданнями на цілочисельне ділення.

Завдання. Дано відстань в сантиметрах. Знайти число повних метрів в ньому.

Program prim_4;
Var a, b: integer;
Begin
Write ( 'введіть відстань в сантиметрах');
Readln (a);
b: = a mod 100;
Writeln (b, 'метрів');
Readln
End.

Продовжимо знайомство з целочисленной арифметикою. Дуже часто необхідно щоб програма визначила, з яких цифр складається число, або визначила розряд заданої цифри або навпаки цифру в заданому розряді. Якщо ви попросите людини вирішити цю задачу, проблем не виникне, а як бути з комп'ютером. Для нього будь-яке число це набір нулів і одиниць, тобто двійковий код. На відміну від нас комп'ютер всі дії виконує в двійковій системі. Наприклад, число 27 зберігається в його пам'яті як 11011. І де тут 2 і 7?

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

Тому для обробки десяткових чисел використовується 10 у відповідній мірі. Наприклад, треба отримати число, утворене при перестановці цифр заданого числа.

Нехай дано n = 27.
X1: = 27 mod 10 = 7
X2: = 27 div 10 = 2
M: = 7 * 10 + 2 = 72, що і було потрібно отримати.

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

Нехай а = 246
B: = a div 10 = 24
B: = b mod 10 = 4

Або інакше:
B: = a mod 100 = 46
B: = b div 10 = 4

Завдання для тренування.
1. Дано двозначне число. знайти:
a. число десятків у ньому;
b. число одиниць в ньому;
c. суму його цифр;
d. твір його цифр.

2. Дано тризначне число. знайти:
a. Число одиниць в ньому;
b. Число десятків в ньому;
c. Суму його цифр;
d. Твір його цифр.

3. Дано тризначне число. Знайти число, отримане при прочитанні його цифр справа наліво.

4. Дано тризначне число. У ньому закреслили першу зліва цифру і приписали її в кінці. Знайти отримане число.

5. Дано тризначне число. У ньому закреслили останню справа цифру і приписали її на початку. Знайти отримане число.

6. Дано тризначне число. Знайти число, отримане при перестановці першої та другої цифр заданого числа.

7. Дано тризначне число. Знайти число, отримане при перестановці другий і третій цифр заданого числа.

8. * Дано дійсне число А, що містить два знака до коми і два після. Отримати нове число, помінявши в числі А цілу і дробову частини.

9. * У касі є купюри номіналом в До рублів і в 1 рубль. Видати N рублів мінімальним набором купюр заданого гідності.

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

7.1. Умовний оператор.
Умовний оператор дозволяє виконувати або пропускати оператори програми в залежності від деякої умови. Умовний оператор може мати дві форми:

Повний оператор.
формат команди
IF умова THEN оператор_1 ELSE оператор_2;

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

Неповний оператор.
формат команди
IF умова THEN оператор;

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

Якщо перевести на російську мову англійські слова то отримаємо:

ЯКЩО умова ТО оператор_1 ІНАКШЕ оператор_2; або ЯКЩО умова ТО оператор;

Як умова застосовують операції порівняння: =, <>, <=,>=, <,>. Ліворуч і праворуч від знака порівняння записують арифметичні вирази.

Наприклад, оператор
If x<>0 then z: = y / x
еlse write ( 'Помилка!');
присвоїть змінній Z значення приватного y / x, якщо x<>0, в іншому випадку висвітить на екрані слово "Помилка!".

7.2. Складовою оператор.
У деяких випадках після слів THEN і ELSE треба виконати не один оператор, а кілька. Тоді ці оператори полягають в так звані операторні дужки, де BEGIN - відкриває дужка, END - закриває дужка. Всі оператори знаходяться всередині операторних дужок називаються складовим оператором. Перед словом ELSE крапка з комою ніколи не ставиться.

Формат команди: BEGIN оператор; оператор ;. оператор END;

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

Як виконується в умовному операторі дії може бути інший умовний оператор. наприклад:
If sqr (x) + sqr (y)> 1 then
If x> y then z: = 0
Else z: = 1;

При такій формі запису із зсувом вправо для кожного внутрішнього дії, легко зрозуміти, до якого з двох слів IF відноситься слово ELSE. Розглянемо приклад програми з використанням умовного оператора. Нехай для двох цілих чисел треба визначити, є вони парними чи ні. Для перевірки парності використовуємо умову: залишок від ділення на 2 парного числа дорівнює 0.

Program prim_7;
Var a, b: integer;
Begin
Write ( 'введіть два цілих числа');
Readln (a, b);
If a mod 2 = 0 then Writeln ( 'а - парне')
Else Writeln ( 'a - непарне');
If b mod 2 = 0 then Writeln ( 'b - парне')
Else Writeln ( 'b -нечетное');
Readln
End.

Завдання для тренування.
1. Обчислити значення у при заданому значенні х:

2. Ввести два числа. Надрукувати спочатку менше, потім більше з них.
3. Дано числа x і y. Обчисліть число z, рівне x + y, якщо x<=y, и 1 - х + y в противном случае
4. Дано два числа. Виведіть перше з них, якщо воно більше другого, і обидва числа, якщо це не так.
5. Якщо дане число х менше нуля, то z надайте значення більшого з двох чисел х і у, інакше z надайте значення напівсуми цих чисел.
6. * Дані два числа. Менше з них замініть напівсумою цих чисел, а більше - їх твором.
7. Дано радіус кола і сторона квадрата. У якої фігури площа більше?
8. Дано ціле число. визначити:
a. Чи є воно парних;
b. Закінчується воно цифрою 7;
c. Чи ділиться воно на 13.

Схожі статті