1 / 102

Програмування на мові Паскаль

Програмування на мові Паскаль. Тема 1 . Вступ. Алгоритм. Алгоритм – це чітко визначений план дій для виконавця. Властивості алгоритму дискретність : складається з окремих кроків (команд) зрозумілість : повинен включати тільки команди відомі для виконавця (які містяться в СКВ)

everly
Download Presentation

Програмування на мові Паскаль

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Програмування на мові Паскаль Тема 1. Вступ

  2. Алгоритм Алгоритм – це чітко визначений план дій для виконавця. • Властивості алгоритму • дискретність: складається з окремих кроків (команд) • зрозумілість: повинен включати тільки команди відомі для виконавця (які містяться в СКВ) • визначеність: при однакових вхідних даних завжди видає один і той самий результат • скінченність: закінчується за скінчену кількість кроків • масовість: може застосовуватися багатократно при різних вихідних даних • коректність: видає правильне рішення при будь-яких допустимих вихідних даних

  3. Програма • Програма – це • алгоритм, записаний на будь-якій мові програмування • набір команд для комп’ютера • Команда – це опис дій, які повинен виконати комп’ютер. • звідки отримати вихідні дані? • що потрібно з ними зробити?

  4. Мови програмування • Машинно-орієнтовані (низького рівня) – кожна команда відповідає одній команді процесора (асемблер) • Мови високого рівня– наближені до реальної (англійської) мови, легше сприймаються людиною, не залежать від відповідного комп’ютера • для навчання: Бейсик, ЛОГО, Паскаль • професійні: Сі, Фортран, Паскаль • для задач штучного інтелекту: Пролог, ЛИСП • для Інтернету: JavaScript, Java, Perl, PHP, ASP

  5. Задача Підзадача1 Підзадача2 Підзадача3 1.1 1.2 1.3 2.1 2.2 2.3 3.1 3.2 3.3 Мова Паскаль • 1970 – Ніклаус Вірт (Швейцарія) • мова для навчання студентів • розробка програм “зверху-вниз” • різноманітні структури даних (масиви, структури, множини)

  6. З чого складається програма? program <ім’я програми>; const …;{константи} var …; {змінні} begin … {основна програма} end. { процедури і функції } коментарі у фігурних дужках не опрацьовуються

  7. З чого складається програма? Константа – постійна величина, яка має ім’я. Змінна – змінна величина, яка має ім’я (комірка пам’яті). Процедура – додатковий алгоритм, який описує деякі дії (малювання кола). Функція – додатковий алгоритм, для виконання обчислень (обчислення квадратного кореня, sin).

  8. Імена програм, констант, змінних • Імена можуть містити • латинські букви (A-Z) • цифри • знак підкреслення _ великі і маленькі букви не розрізняються ім’я не може починатися з цифри • Імена НЕ можуть містити • українські букви • пропуски • дужки, знаки +, =, !, ? та ін. Які імена правильні? AXby R&B 4Wheel Вася “PesBarbos” TU154 [QuQu] _ABBA A+B

  9. Константи const i2 = 45; { ціле число } pi = 3.14; { дійсне число } qq = 'Вася'; { рядок символів } L = True;{ логічна величина } ціла і дробова частина відділяються крапкою можна використовувати українські букви! • Може приймати два значення: • True (істина, “так") • False (хибність, "ні")

  10. Змінні Змінна – це величина, яка має ім’я, тип і значення. Значення змінної величини під час виконання програми може змінюватися. • Типи змінних: • integer { цілі } • real { дійсні } • char { один символ } • string { рядок } • boolean { логічні } • Оголошення змінних (виділення пам’яті): • var a, b: integer; • Q: real; • s1, s2: string;

  11. Як змінюється значення змінної? Оператор – це команда мови програмування високого рівня. Оператор присвоєння служить для зміни значення змінної. Приклад: program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); end. a 5 ? 5 b ? 7 5+2 a 5 28 7*4

  12. Оператор присвоєння Загальна структура: <ім’я змінної> := <вираз>; • Арифметичні вирази можуть містити • константи • імена змінних • знаки арифметичних дій: • + - * / div mod • виклики функцій • круглі дужки ( ) множення ділення націло ділення остача від ділення

  13. Які оператори неправильні? program qq; var a, b: integer; x, y: real; begin a := 5; 10 := x; y := 7,8; b := 2.5; x := 2*(a + y); a := b + x; end. ім’я змінної повинно знаходитися зліва від знака := ціла і дробова частина відділяються крапкою неможливо записати дійсне значення в цілу змінну

  14. Ручна прокрутка програми program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); b := a div 5; a := a mod b; a := a + 1; b := (a + 14) mod 7; end.

  15. Порядок виконання операцій • обчислення виразів у дужках • множення, ділення, div, mod зліва направо • додаванні і віднімання зліва направо • 2 3 5 4 1 7 8 6 9 • z := (5*a*c+3*(c-d))/a*(b-c)/ b; • 2 6 3 4 7 5 1 12 8 11 10 9 • x:=(a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));

  16. Додавання двох чисел Задача. Ввести два цілих числа і вивести на екран їх суму. Найпростіше розв’язання: program qq; var a, b, c: integer; begin read ( a, b ); c := a + b; writeln ( c ); end.

  17. a 25 b 30 a 25 b 30 Оператор введення read ( a );{ ввести значення змінноїa} read ( a, b );{ ввести значення зміннихa і b} Як вводяться два числа? через пропуск: 25 30 через Enter: 25 30

  18. Оператор виведення write ( a );{ вивести значення змінноїa} writeln ( a );{ вивести значення змінної a і перейти на новий рядок} writeln ( ‘Привіт!' );{ виведення тексту} writeln ( ‘Відповідь: ', c );{виведення тексту і значення змінної c} writeln ( a, '+', b, '=', c );

  19. Формати виведення program qq; var i: integer; x: real; begin i := 15; writeln ( '>', i, '<' ); writeln ( '>', i:5, '<' ); x := 12.345678; writeln ( '>', x, '<' ); writeln ( '>', x:10, '<' ); writeln ( '>', x:7:2, '<' ); end. всього символів >15< > 15< >1.234568E+001< > 1.23E+001< > 12.35< всього символів в дробовій частині

  20. Повний розв’язок program qq; var a, b, c: integer; begin writeln(‘Ввести два цілих числа'); read ( a, b ); c := a + b; writeln ( a, '+', b, '=', c ); end. це виводить комп'ютер Протокол: Ввести два цілих числа 25 30 25+30=55 це вводить користувач

  21. Блок-схема лінійного алгоритму блок «початок» початок ввести a, b блок «ввести» c := a + b; блок «процес» вивести c блок «вивести» кінець блок «кінець»

  22. Завдання "4": Ввести три числа, знайти їх суму і добуток. Приклад: Ввести три числа: 4 5 7 4+5+7=16 4*5*7=140 "5": Ввести три числа, знайти їх суму, добуток і середнє арифметичне. Приклад: Ввести три числа: 4 5 7 4+5+7=16 4*5*7=140 (4+5+7)/3=5.33

  23. Програмування на мові Паскаль Тема 2. Розгалуження

  24. Алгоритми розгалуження Задача. Ввести два цілих числа і вивести на екран більше з них. Ідея розв’язання: потрібно вивести на екран перше число, якщо воно більше другого, або друге, якщо воно більше першого. Особливості: дії виконавця залежать від деяких умов (якщо … інакше …). Алгоритми, в яких послідовність кроків залежить від виконання деяких умов, називаються розгалуженими.

  25. початок ввести a,b так ні a > b? max:=a; max:=b; вивести max кінець ? Якщо a = b? Варіант 1. Блок-схема блок «логічний вираз» повна форма розгалуження

  26. Варіант 1. Програма program qq; var a, b, max: integer; begin writeln(‘Ввести два цілих числа'); read ( a, b ); if a > b then begin end else begin end; writeln (‘Більше число', max); end. повна форма умовного оператора max:=a; max:=b;

  27. Умовний оператор if<умова>thenbegin {що робити, якщо умова правильна} end else begin {що робити, якщо умова неправильна} end; • Особливості: • перед elseНЕ ставиться крапка з комою • друга частина (else …) може бути відсутня (неповна форма) • якщо в блоці один оператор, можна забрати слова begin і end

  28. Що неправильно? if a > b then begin a := b; end else b := a; end; if a > b then begin a := b; else begin b := a; end; end begin if a > b then begin a := b; end else b > abegin b := a; end; if a > b then begin a := b; end; else begin b := a; end; end begin

  29. початок ввести a,b max:=a; так ні b > a? max:=b; вивестиmax кінець Варіант 2. Блок-схема неповна форма розгалуження

  30. Варіант 2. Програма program qq; var a, b, max: integer; begin writeln(‘Ввести два цілих числа'); read ( a, b ); max := a; if b > a then writeln (‘Більше число', max); end. неповна форма умовного оператора max:=b;

  31. Варіант 2Б. Програма program qq; var a, b, max: integer; begin writeln(‘Ввести два цілих числа'); read ( a, b ); max := b; if ??? then ??? writeln (‘Більше число', max); end. a > b max := a;

  32. Що неправильно? if a > b then begin a := b; end; else b := a; if a > b then begin a := b; else b := a; a := b end if a > b then a := b; else b := a; end; if b >= a then b := a; if a > b then else begin b := a; end; a := b

  33. Завдання "4": Ввести три числа і знайти найбільше з них. Приклад: Ввести три числа: 4 15 9 Найбільше число 15 "5": Ввести п’ять чисел і знайти найбільше з них. Приклад: Ввести п’ять чисел: 4 15 9 56 4 Найбільше число 56

  34. ? Чи можна розв’язати відомими методами? Складені умови Задача. Фірма набирає співробітників від 25 до 40 років включно. Ввести вік людини і визначити, чи підходить вона фірмі (вивести відповідь “підходить” або “не підходить”). Особливості: потрібно перевірити, виконання двох умов одночасно.

  35. Варіант 1. Алгоритм початок ввести x так ні x>=25? так ні x<=40? ‘не підходить' ‘підходить' ‘не підходить' кінець

  36. Варіант 1. Програма program qq; var x: integer; begin writeln(‘Ввести вік'); read ( x ); if x >= 25 then if x <= 40 then writeln (‘Підходить') else writeln (‘Не підходить') else writeln (‘Не підходить'); end.

  37. кінець Варіант 2. Алгоритм початок ввести x x>=25і x<=40? ні так ‘підходить' ‘не підходить'

  38. Варіант 2. Програма program qq; var x: integer; begin writeln(‘Ввести вік'); read ( x ); if (x >= 25) and (x <= 40) then writeln (‘Підходить') else writeln (‘Не підходить') end. складена умова

  39. Складена умова • Складена умова – це умова, яка складається з декількох простих умов (відношень), зв’язаних з допомогою логічних операцій: • not – НІ (заперечення, інверсія) • and – І (логічне множення, кон'юнкція, одночасне виконання умов) • or – АБО (логічне додавання, диз'юнкція, виконання хоча б одної з умов) • xor – виключаюче АБО (виконання тільки одної з двох умов, але не обох) • Прості умови (відношення) • < <= > >= = <> дорівнює не дорівнює

  40. Складена умова • Порядок виконання • вирази в дужках • not • and • or, xor • <, <=, >, >=, =, <> • Особливості – кожна з простих умов обов'язково береться в дужки. • Приклад • 4 1 6 2 5 3 • if not(a > b) or (c <> d) and (b <> a) • then begin • ... • end

  41. Складена умова • Істинне чи хибне приa:=2; b:=3; c:=4; • not (a > b) • (a < b) and (b < c) • not (a >= b) or (c = d) • (a < c) or (b < c) and (b < a) • (a < b) xor not (b > c) • Для яких значень x істинні умови: • (x < 6) and (x < 10) • (x < 6) and (x > 10) • (x > 6) and (x < 10) • (x > 6) and (x > 10) • (x < 6) or (x < 10) • (x < 6) or (x > 10) • (x > 6) or (x < 10) • (x > 6) or (x > 10) True True True True FALSE (-,6) x<6  (6,10) x>10 (10,) (-,10) x<10 (-,6)(10,) (-,) x>6 (6,)

  42. Завдання "4": Ввести номер місяця і вивести назву пори року. Приклад: Ввести номер місяця: 4 весна "5": Ввести вік людини (від 1 до 150 років) и вивести його разом з наступним слово “рік”, “роки" або “років". Приклад: Ввести вік: Ввести вік: 24 57 Вам 24 роки Вам 57 років

  43. ? Чи можна розв’язати відомими методами? Оператор вибору • Задача: Ввести номер місяця і вивести кількість днів в цьому місяці. • Розв’язання: Кількість днів у місяцях: • 28 днів – 2 (лютий) • 30 днів – 4 (квітень), 6 (червень), 9 (вересень), • 11 (листопад) • 31 день – 1 (січень), 3 (березень), 5 (травень), • 7 (липень), 8 (серпень), 10 (жовтень), • 12 (грудень) • Особливості: Вибір не з двох, а з декількох варіантів в залежності від номера місяця.

  44. Алгоритм початок ввести M так M=1? оператор вибору D:=31; ні так M=2? D:=28; ні так M=12? D:=31; ні вивестиD помилка жоден з варіантів не підійшов кінець

  45. Програма program qq; var M, D: integer; begin writeln(‘Ввести номер місяця:'); read ( M ); caseM of 2: begin D := 28; end; 4,6,9,11: begin D := 30; end; 1,3,5,7,8,10,12: D := 31; else D := -1; end; if D > 0 then writeln(‘В цьому місяці', D, ' днів.') else writeln(‘Неправильний номер місяця'); end. жоден варіант не підійшов

  46. Оператор вибору • Особливості: • після caseможе бути ім’я змінної або арифметичний вираз цілого типу (integer) • або символьного типу (char) case i+3of 1: begin a := b; end; 2: begin a := c; end; end; var c: char; ... case cof 'а': writeln('Антилопа'); 'б': writeln('Борсук'); else writeln('Не знаю'); end;

  47. Оператор вибору • Особливості: • якщо потрібно виконати тільки один оператор, слова begin і end можна не писати • не можна ставити два однакових значення case i+3of 1: a := b; 2: a := c; end; case i+3of 1: a := b; 1: a := c; end;

  48. Оператор вибору • Особливості: • значення, при яких виконуються однакові дії, можна групувати case iof 1: a := b; 2,4,6: a := c; 10..15: a := d; 20,21,25..30: a := e; else writeln(‘Помилка'); end; перечислення діапазон суміш

  49. Що неправильно? caseaof 2: begin a := b; 4: a := c; end; caseaof 2: a := b 4: a := c end; ; caseaof 2..5: a := b; 4: a := c; end; caseaof 0..2: a := b; 6..3: a := c; end; 3..6: begin casea+c/2of 2: a := b; 4: a := c; end; caseaof 2: a := b; d := 0; 4: a := c; end; end;

  50. Завдання (з захистом від неправильного введення) "4": Ввести номер місяця і вивести кількість днів в ньому, а також кількість помилок при введенні. Приклад: Введіть номер місяця: Введіть номер місяця: -2 2 Введіть номер місяця: В цьому місяці 28 днів. 11 Ви вводили неправильно 0 раз. В цьому місяці 30 днів. Ви вводили неправильно 1 раз. "5": Ввести номер місяця і номер дня, вивести кількість днів, які залишилися до Нового року. Приклад: Ввести номер місяця: 12 Ввести день: 25 До Нового року залишилося 6 днів.

More Related