На головну

Початок

  1. Кінець XX ст. - початок XXI ст.
  2. Початок
  3. Початок
  4. Початок перебігу» зупинення і перерив строків позовної давності
  5. Середина XIX - початок XX століть

Вивести ('a,b=');

Ввести (a,b);

Sum:=a+b;

Вивести ('Sum=',sum);

Кінець.

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

Питання для самоконтролю

1. З чого складається алфавіт і словник мови програмування?

2. Що таке зарезервовані слова?

3. Які правила запису ідентифікаторів?

4. З чого починається програма?

5. Як описуються змінні?

6. З чого починається розділ операторів?

7. Як записується оператор виведення?

8. Як записується оператор введення?

9. Як записується оператор присвоєння?

10. Чим закінчується програма?

11. Вкажіть правильні імена змінних:

а) proba; б) _fire_; в) 5_step;

г) BoX; д) fi_re; е) step_5;

є) 5BoX; ж) maMa; з) _step_5.

12. Які з наведених нижче послідовностей символів є операторами присвоєння:

а) a:= b; б) a = a+1; в) a:b-sqr(2);

г) a * x + b := 0; д) z:= 0; е) z:= z+1;

є) z:= z + 1,2; ж) y:= y; з) -y:= y;

Задачі

1) Змініть програму, наведену в параграфі, таким чином, щоб у ній обчислювався добуток двох чисел.

2) Скласти програму для обчислення периметру:

a). прямокутника, ширина й довжина якого вводяться з клавіатури;

b). трикутника, довжини всіх сторін якого вводяться з клавіатури;

c). довільного чотирикутника, довжини всіх сторін якого вводяться з клавіатури.

3) Скласти програму для обчислення значення виразу:

у=15х2+8х-9. Значення х ввести з клавіатури.

1.3. Складання найпростіших лінійних програм

Лінійними програмами називають такі програми, в яких команди виконуються послідовно одна за одною.

Правила запису математичних виразів

Майже в кожній програмі виконуватимуться обчислення, причому результати обчислень необхідно буде зберігати для подальшого використання. Для цього існує оператор присвоєння, з яким ви ознайомились раніше. При його виконанні змінна, ім'я якої стоїть ліворуч від знаку ':=' отримує значення виразу, записаного праворуч. Яким би складним не був вираз, він має бути записаний в рядок. Слід дотримуватись правил запису арифметичних виразів:

· порядок виконання дій змінюють за допомогою круглих дужок. За відсутності дужок пріоритет математичних операцій звичайний: спочатку зліва направо виконуються множення і ділення, потім - додавання і віднімання;

· не можна опускати знак операції множення: 5ab Þ 5*a*b;

· звичайні дроби записуються в рядок (зверніть увагу на дужки!):

;

· при необхідності у виразах використовуються стандартні функції або функції користувача (див. далі);

· аргументи функцій записуються в круглих дужках;

Деякі стандартні математичні функції

Функція sqr(x) повертає квадрат значення аргументу, тобто sqr (x)=x2=x*x.

Приклади

Математичний запис Запис на Паскалі Значення змінних Результат
42 sqr(4) -
х2 sqr(х) х=13
(d+e)2 sqr(d+e) d=2, e=5
34=(32)2 sqr(sqr(x)) x=3

Функція abs(х) повертає абсолютну величину (модуль) значення аргументу.

Приклади

Математичний запис Запис на Паскалі Значення змінних Результат
|12| abs(12) -
|-12| abs(-12) -
|x+y| abs(x+y) x=3, y=-5
|x|+|y| abs(x)+abs(y) x=3, y=-5

Стандартні процедури для введення та виведення даних

Більшість програм передбачають введення (наприклад, з клавіатури) користувачем певних даних та виведення результатів роботи (зокрема, на екран). Мова Паскаль надає всі необхідні засоби для реалізації введення та виведення у програмах. В попередньому параграфі для цього були використані процедури Readln та Writeln. Розглянемо детальніше роботу цих та інших процедур.

Введенняданих забезпечується викликом процедур Read та Readln. Якщо передбачається введення декількох значень (наприклад, Read(a,b,c)), то їх можна ввести в одному рядку, відділяючи «пропуском», а в кінці натиснути Enter. Можна вводити кожне значення окремо, натискаючи щоразу Enter. Змінні одержують свої значення послідовно: спочатку a, потім b, і останньою - c. Введення даних з окремого рядка виконується за допомогою процедури Readln. Після зчитування останнього значення зі списку цієї процедури наступні дані будуть вводитись з початку нового рядка.

Для виведенняповідомлень, значень змінних та виразів використовують процедури Write та Writeln. Дія процедури Writeln відрізняється тим, що після виведення курсор переводиться на новий рядок. Всі параметри процедури виведення розділяються комами.

Приклад при a=2, b=3

Writeln(a,b); на екрані: 23

Writeln('a=',a); на екрані: а=2

Writeln('a=',a,'b=',b);на екрані: а=2b=3

Writeln('a+b=',a+b); на екрані: a+b=5

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

Приклад

Writeln(a:3,b:3); на екрані: __2__3

Writeln('a+b=',a+b:4); на екрані: a+b=___5

Процедура виведення Writeln без параметрів використовується для переведення курсору на новий рядок та виведення порожніх рядків.

Приклад

Скласти програму для обчислення значення виразу y=|х2-2|+3. Значення змінної х ввести з клавіатури.

Розв'язування

Program Example;

Var x,y:integer;

Begin

Write('x=');

Readln (x);

y:=abs(sqr(x)-2)+3;

Writeln('y=',y);

End.

Питання для самоконтролю

1. Яких правил необхідно дотримуватись, записуючи арифметичні вирази мовою програмування?

2. Запишіть вираз у=|х| мовою програмування Паскаль та знайдіть його значення при х=-3, х=3.

3. Запишіть вираз z=|х-2| +3х8 мовою програмування Паскаль.

4. Запишіть вираз a=6b2+|b-3|3-15 мовою програмування Паскаль.

5. Запишіть вирази мовою програмування Паскаль:

а) б) в) .

6. Дано значення змінних х і у: х=14, у=3. Якими будуть значення цих змінних після виконання послідовності дій:

а) x:=y; y:=x;

б) d:=x+1; x:=y; y:=d.

Записати у вигляді одного або декількох операторів присвоєння:

7. Змінній х присвоїти значення, що дорівнює півсумі значень змінних х та у;

8. Подвоїти значення змінної а;

9. Значення змінної х збільшити на 0.1;

10. Змінити знак значення змінної t;

11. Поміняти місцями значення змінних х і у.

Задачі

Написати програми для обчислення значення виразів:

1. y=(3x3+18x2)*x+12x2-5;

2. a=(d+c+b)*e-k-1;

3. d=3c3+|c-4c+7|3-5c;

4. c=|х+4|-|х-3x+6|;

5. у=5х5-10х+2;

  1. z=14х4-5х3+11х-17.

1.4. Цілий і логічний типи даних. Умовний оператор

Прості типи даних

Описуючи змінну, необхідно зазначити її тип. Тип змінної визначає набір значень, яких вона може набувати, форму запису їх в пам'яті та операції, які можуть бути з нею виконані. Типи поділяються на прості та складні. Змінна простого типу завжди містить один елемент даних (число, літеру і т. п). Змінна складного типу являє собою таблицю значень одного типу (масив) або набір полів різних типів (запис). До простих типів в АЛГО належать:

· цілий тип integer -ціла;

· логічний тип boolean -логічна;

· символьний тип char -літера;

· дійсний тип real -дійсна.

Всі прості типи, крім дійсного, є порядковими. Всі можливі значення порядкового типу є впорядкованою множиною. Кожне можливе значення порядкового типу має номер, який є цілим числом. За винятком значень цілого типу, перше значення будь-якого порядкового типу має номер 0, наступне значення має порядковий номер 1 і так далі для кожного значення в цьому порядковому типі. Порядковим номером значення цілого типу є саме це значення. У будь-якому порядковому типі кожному значенню, крім першого, передує цілком визначене інше значення, і після кожного значення, крім останнього, слідує інше значення відповідно до упорядкованості типу.

Цілий тип даних

Змінна цілого типу в АЛГО може набувати значень з діапазону від -2147483648 до 2147483647 і займає в пам'яті 4 байти.

Приклад опису:

var a,k,D1,D2:integer;

До даних цілого типу можна застосовувати операції «+» - додавання, «-» - віднімання, «*» - множення, «/» - ділення і деякі інші.

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

Натомість є дві операції, які застосовують тільки до даних цілого типу і отримують цілочисельний результат: div- ціла частина від ділення; mod - остача від ділення.

Приклад

19 div 4=4; 12 div 4=3; -21 div 4= -5; -7 div (-4)=1; 19 mod 4=3; 12 mod 4=0; -21 mod 4= -1; -7 mod (-4)= -3.

Логічний тип даних

При складанні програм, крім математичних можна обчислювати значення логічних виразів. Змінні логічного типу можуть набувати тільки одного з двох значень - False (хибний або Ні) і True (істинний або Так). Змінні логічного типу одержують значення в результаті виконання операцій порівняння (відношення): «<» (менше), «>» (більше), «<=» (менше або дорівнює) «>=»(більше або дорівнює), «<>» (не дорівнює), «=» (дорівнює). Результат операції відношення дорівнює True, якщо відношення задовольняється для значень операндів, що входять у нього, і False- у протилежному випадку.

Приклад опису змінних логічного типу:

var m1,m2,dd:boolean;

Логічний вираз може бути простим (наприклад, x>5) або складеним. Складені вирази утворюються з простих за допомогою логічних операцій and, or, not (і, або, не).

Приклад (x>=a) and (x<=b);

(x>a) or (x>b);

not (x>a);

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

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

Арифметичні та логічні операції мають такий пріоритет:

not, - (унарний)

and, *, /, div, mod

or, xor, +, -

операції відношення.

Крім того, порядок виконання операцій регулюється дужками. У мові Паскаль не можна вводити логічні дані за допомогою оператора Read. Проте передбачено виведення значень змінних логічного типу за допомогою оператора Write.

Приклад

Обчислити значення виразу: (a<b)and(b<c)and(a<c), при a=1, b=2, c=3. Значення виразу дорівнює True, тому що істиними є всі значення простих логічних виразів.

Умовний оператор

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

Умовний оператор має повну та скорочену форми.

Повний умовний оператор має вигляд:

If <умова> Then <оператор 1>

Else<оператор 2>;

або

Якщо<умова> То <оператор 1>

Інакше<оператор 2>;

Виконання умовного оператора починається з обчислення значення логічного виразу, записаного в умові. Якщо умова істинна, то виконується <оператор1>, у протилежному випадку - <оператор 2>. Якщо на місці оператора треба записати серію операторів, то вони беруться в операторні дужки Begin-End. декілька операторів, взяті в операторні дужки, називають складеним оператором.

Приклад №1

Вивести на екран більше з двох даних чисел.

Розв'язування

ProgramExample;

Var x,y:integer;

Begin

Write ('x,y=');

Readln(x,y);

If x>y Then Writeln (x)

Else Writeln(y);

End.

Зверніть увагу на те, що перед службовим словом Else розділовий знак - крапка з комою - не ставиться.

Неповний умовний оператор має вигляд:

If <умова> Then <оператор>;

або

Якщо <умова> <оператор>;

Гілка Else може бути відсутньою, якщо у випадку невиконання умови нічого робити не потрібно. Наприклад, якщо значення змінної - х менше за 0, то потрібно замінити його на протилежне. Задача розв'язується за допомогою такого умовного оператора:

If х<0 Then х:=-х;

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

If х<0 Then; х:=-х;

В такому випадку оператор х:=-х, не є частиною умовного оператора, а буде виконаний обов'язково. Кажуть, що в гілці Then записаний порожній оператор.

Приклад №2

Написати програму для перевірки, чи належить ціле число, введене з клавіатури, інтервалу [0,5].

Розв'язування

Позначимо через х число, яке вводиться з клавіатури користувачем. За умовою х - це змінна цілого типу. Число х належить заданому інтервалу [0, 5] лише в тому випадку, якщо одночасно виконуються дві умови: (х>=0) і (х<=5). Тому для утворення складної умови скористаємось логічною операцією and.

ProgramExample;

Var x:integer;

Begin

Write ('x=');

Readln(x);

If(x>=0)and(x=<5) Then Writeln (x,' належить')

Else Writeln(x,' не належить');

End.

Вкладені умовні оператори

Під час розв'язування задач часто розглядається не два, а більше варіантів. Це можна зробити, використовуючи послідовно кілька умовних операторів. У цьому випадку після службових слів Then і Else може записуватися новий умовний оператор.

Приклад №3

Дано цілі числа а,b,c. Якщо а<=b<=c, то всі числа замінити їх квадратами. Якщо a>b>c, то кожне число замінити найбільшим із них, у інших випадках - змінити знак кожного з чисел.

Розв'язування

Умову задачі перепишемо так:

a:=a2 , b:=b2,c:=c2, якщо a<=b<=c,

a:=c, b:=c, якщо a>b>c,

a:=-a, b:=-b, c:=-c - у решті випадків.

ProgramExample;

Var a,b,c:integer;

Begin

Writeln('Введіть числа a,b,c');

Readln(a,b,c);

If(a<=b) and (b<=c)

Then begin

a:=SQR(a); b:=SQR(b); c:=SQR(c)

End

Else if (a>b) and (b>c) Then

Begin

a:=c; b:=c

End

Else begin

a:=-a; b:=-b; c:=-c

End;

Writeln(a:3,b:3,c:3)

End.

Примітка. Якщо вкладеними умовними операторами є неповні умовні оператори, то можуть виникати проблеми, пов'язані з установленням меж умовних операторів. У таких випадках службове слово Else відноситься до найближчого Іf.

Завдання

У наведеній вище програмі змінимо умовний оператор таким чином:

If (a<=b) and (b<=c) then

Begin

a:=SQR(a);b:=SQR(b);c:=SQR(c);

if (a>b) and (b>c) then

begin a:=c;b:=c end

Else begin a:=-a;b:=-b;c:=-c end;

End;

Як зміниться хід виконання програми? Сформулюйте умову задачі, яку тепер розв'язує дана програма.

Питання для самоконтролю

1. Які типи належать до простих типів даних в АЛГО?

2. Яких значень можуть набувати змінні цілого типу та які операції з ними можна виконувати?

3. Визначити значення логічного виразу: (-3>=5) or not (7<9) and (0>3).

4. Обчислити значення виразів:

a). (а>5) and (b>5) and (а<20) and (b<30);

b). not(а<15) or not (b<30);

c). с or d and (b=20);

при а=10, b=20, с=true, d=false.

5. Записати послідовність операторів для знаходження неповної частки й остачі від ділення цілого числа а на ціле число b.

6. Якими будуть значення змінних j, k після виконання умовного оператора:

If j>k then j:=k-2 else k:=k-2;

якщо початкові значення змінних дорівнюють:

a). j=3, k=5;

b). j=3, k=3;

c). j=3, k=2.

7. Є умовний оператор:

If d<>10 then writeln('ура!') else writeln('погано...!')

Чи можна замінити його такими операторами не порушивши логіки роботи програми:

a). If d=10 then writeln ('ура!') else writeln('погано...!');

b). If not (d=10) then writeln('ура!') else writeln('погано...!');

c). If not (d=10) then writeln('погано!') else writeln('ура!');

d). If not (d<>10) then writeln('погано!') else writeln('ура!');

8. Після виконання операторів

а:=0;

if a<>0 then; a:=2;

значення змінної а дорівнює 2. Поясніть чому.

9. Використовуючи складений оператор, спростіть такий фрагмент програми:

If a>b then c:=1;

If a>b then d:=2;

If a<=b then c:=3;

If a<=b then d:=4;

10. Яким буде значення змінної а після виконання операторів:

a:=3;

if a<4 then Begin a:=a+2; a:=a+3 End.

11. Запишіть умовний оператор, у якому значення змінної обчислюється за формулою а+b, якщо а - непарне і а*b - якщо а - парне.

12. Запишіть послідовність операторів для знаходження суми цифр заданого трицифрового числа.

Задачі

1) Вивести на екран номер координатної чверті, якій належить точка з координатами (х, у), за умови, що (х<>0) і (у<>0).

2) Написати фрагмент програми для підрахунку суми тільки додатних із трьох даних чисел.

3) Дано три числа. Написати програму для підрахунку кількості серед них чисел, що дорівнюють нулю.

4) Складіть програму, в якій із трьох введених із клавіатури чисел підносяться до квадрата додатні, а від'ємні залишаються без зміни.

5) Знайти найбільше з трьох даних чисел.

6) Дано три різних цілих числа, знайти середнє. Середнім назвемо число, більше від найменшого з даних чисел, але менше від найбільшого.

7) Якщо ціле число М ділиться без остачі на ціле число N, то вивести на екран частку від ділення, у протилежному випадку - вивести повідомлення, що М на N без остачі не ділиться.

8) Складіть програму для обчислення виразу:

a) max(x + y + z, x*z*y)+3;

b) min (x2+y2, y2+z2)-4.

Значення змінних x, y, z вводяться з клавіатури.

9) *Складіть програму для обчислення добутку двох більших із трьох введених із клавіатури чисел.

10) *На числовій прямій проведено безліч відрізків однакової довжини L. Відстань між сусідніми відрізками H. Один з відрізків починається в точці з координатою X. Перевірити, чи належить введене число одному з відрізків.



  1   2   3   4   5   6   7   8   9   10   11   12   13   Наступна

Середовище програмування АЛГО | Цикл з передумовою | Символьний тип даних | Рядковий тип даних | Рrоgram Ехаmple; | Процедури для оформлення та виведення тексту | Програма-годинник | Практичне завдання | Початок | Початок |

© um.co.ua - учбові матеріали та реферати