1 / 159

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

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

morrie
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. Програмування на мові Паскаль Тема 3. Складені умови

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

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

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

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

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

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

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

  42. Складена умова • Істинне чи хибне при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,)

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

  44. Програмування на мові Паскаль Тема 4. Цикли

  45. ? Чи можна розв’язати відомими методами? Цикли • Цикл – це багатократне виконання однакової послідовності дій. • цикл з відомою кількістю кроків • цикл з невідомою кількістю кроків (цикл з умовою) • Задача. Вивести на екран квадрати і куби цілих чисел від 1 до 8 (від a до b). • Особливості: однакові дії виконуються 8 раз.

  46. Алгоритм початок задати початкове значення змінної циклу i:=1; перевірити, чи все виконали ні i<=8? кінець обчислити квадрат і куб так i2:=i*i; i3:=i2*i; вивести результат i,i2,i3 перейти до наступногоi i:=i+1;

  47. Алгоритм (з блоком "цикл") блок "цикл" початок i := 1,8 кінець i2:=i*i; i3:=i2*i; тіло циклу i,i2,i3

  48. Програма program qq; var i, i2, i3: integer; begin for i:=1 to 8 do begin i2 := i*i; i3 := i2*i; writeln(i:4, i2:4, i3:4); end; end. початкове значення змінна циклу кінцеве значення

  49. Цикл з зменшенням змінної Задача. Вивести на екран квадрати і куби цілих чисел від 8 до 1 (в зворотному порядку). Особливості: змінна циклу повинна зменшуватися. Розв’язання: ... for i:=8 1 do begin i2 := i*i; i3 := i2*i; writeln(i:4, i2:4, i3:4); end; ... downto

  50. Цикл з змінною Збільшення змінної на 1: for<змінна>:=<початкове значення>to <кінцеве значення> dobegin {тіло циклу} end; Зменшення змінної на 1: for<змінна>:=<початкове значення>downto <кінцеве значення> dobegin {тіло циклу} end;

More Related