Алгоритми та
програми
Повторення вивченого
матеріалу за ІІ семестр
Алгоритм -
• це скінченна послідовність команд,
виконання яких призводить до очікуваного
результату
Команда- це спонукальне речення
Приклади команд:
1. закрий вікно
2. збережи документ
3. виділи текст
Слово алгоритм виникло
від algorithm –
латинського написання
слова ал – Хорезмі, під
яким у середньовічній
Європі знали видатного
математика із Хорезму
(міста у сучасному
Узбекистані) Мухамеда
бен Мусу, який жив
у 783 – 850 рр.
• Комп’ютерна програма –
• набір послідовних інструкцій у
вигляді слів, цифр, кодів, символів
чи в іншому вигляді, виражених у
формі, придатній для зчитування
та виконання комп’ютером
Транслятор – програма, яка
перетворює програму, написану
мовою програмування, в
машинні коди
Інтерпретатор перетворює
невеликий фрагмент
вихідної програми в
машинні коди і, лише
дочекавшись, коли процесор
їх виконає, переходить до
опрацювання наступного
фрагмента
Компілятор транслює відразу
всю програму в машинні
коди і вміщує їх у пам’ять
комп’ютера, не виконуючи
Створення мови програмування
Паскаль
Мову програмування Паскаль
для навчання студентів
основам програмування
створив у 1968-1971 р.
швейцарський учений
Ніклаус Вірт з кафедри
інформатики Стенфордського
університету.
Таку назву вона отримала на
честь відомого французького
математика, фізика та
філософа Блеза Паскаля.
Способи подання алгоритмів
• Словесний (письмовий чи друкований)
• Формульно-словесний
• Усний
• Графічний (схеми, блок-схеми)
• Кодований (мовою певного середовища
програмування)
Приклади форм подання алгоритмів
Вхідні дані
1.
2.
3.
8л 5л 3л
8л 5л 3л
5л 3л3л
3л3л 2л
Алгоритм отримання 2 л
із повної 8 л посудини і
двох порожніх посудин
місткістю 5л і 3 л
Базові структури алгоритмів
(види алгоритмів)
• Лінійний алгоритм – команди виконуються за
послідовно одна за одною в установленому
порядку.
• Алгоритм з розгалуженням - в алгоритмі
присутня умова, дотримання якої призводить
до виконання однієї із двох команд
• Алгоритм з повторенням(циклічні) - деяка
група команд може повторюватися кілька
разів або до виконання певної умови
Приклад лінійного алгоритму
Приклад лінійної програми
Знайти середнє арифметичне трьох чисел
Правило
• Складеневисловлюванняіз
сполучником І істинне тоді і тільки
тоді,колиобидвапрості
висловлюванняістинні
• Складеневисловлюванняіз
сполучником АБО хибне тоді і тільки
тоді,колиобидвапрості
висловлюванняхибні
Приклади
Висловлювання
4 >7
ХИБА (FALSE)
(4>7) або (9<12)
ІСТИНА (TRUE)
(4>7) або (3<1) ХИБА (FALSE)
(4>7) і (3<1)
ХИБА (FALSE)
(4>7) і (3>1)
ХИБА (FALSE)
(4<7) і (3>1)
ІСТИНА (TRUE)
7>5 ІСТИНА (TRUE)
Блок-схeма з розгалужeнням
Команда циклу з лічильником
i:= 1:
i<=5
S:=S+ 7;
i:=i+1;
S:= 0:
Виведення S
Program Zadacha;
Var i, S:integer;
Begin
S:=0;
For i:=1 to 5 do
begin
S:=S+7;
end;
Writeln(‘S=’, S);
End.
Даний фрагмент блок-схеми
5 разів виконує тіло циклу S:=S+ 7
1. для і=1, S:=0+ 7=7
2. для і=2, S:=7+ 7=14
3. для і=3, S:=14+ 7=21
4. для і=4, S:=21+ 7=28
5. для і=5, S:=28+ 7=35
Перевірка умови i<=5 відбувається
кожного разу на початку циклу
Умова i<=5
і команда i:=i+1,
тобто збільшення
параметра і на 1,
відбувається в
даному операторі
цикла з
лічильником
автоматично
TRUEFALSE
Приклад циклічного
алгоритму з
пeрeдумовою
Умова b=5
Тіло циклу
b:=b+1;
a:= a+5;
Тіло циклу повторюється
доти, доки
умова b=5 буде хиба
Структура програми мовою Паскаль
НАМ Паскаль
Програма <назва програми>;
Початок
<тіло програми>
Кінець.
Program <назва програми>;
Begin
<тіло програми>
End.
Program <назва програми>;
Uses <список імен бібліотечних модулів,
що використані у програмі>;
Const <описання сталих величин>;
Type <описання типів користувача>;
Var <описання змінних величин>;
<описання процедур та функцій
користувача>;
Begin
<тіло програми>
End.
Виділене курсивом буде вивчатися в 8 класі
Слова мови програмування Паскаль
Зарезервовані (службові) – слова, що є складовою частиною
мови. Вони мають заздалегідь визначене написання та
завжди однаковий зміст.
Стандартні – слова, призначені для заздалегідь
визначених розробниками мови типів даних, сталих
величин, певних процедур або функцій.
Ідентифікатори (імена величин) – слова, що визначає
користувач для імен сталих та змінних величин
Назва
цілочисельного типу
Діапазон значень
Обсяг
пам’яті
(байт)
Коротке ціле без
знаку
Byte
0…255 1
Коротке ціле із
знаком
ShortInt
-128…127 1
Ціле без знаку
Word
0…65535 2
Ціле із знаком
Integer
-32768…32767 2
Довге ціле із знаком
LongInt -2147483648…2147483647 4
В Паскалі визначені:
• арифметичні операції (+, -, *, /), які застосовні
для змінних цілого та дійсного типів);
• операції відношення (порівняння) (=, <, >, <=,
>=, < >), які порівнюють значення двох
величин (операндів) і визначають істинним чи
хибним є значення всього виразу;
• логічні операції (логічні та (and), або (or), ні
(not)), результатом яких є логічне значення true
або false.
Процедури введення та виведення
Read (<імена змінних, що відокремлені одне від одного
комою>);
Write (<імена змінних, що відокремлені одне від одного
комою>);
Використовуючи процедуру Write, можна вивести на
екран значення дійсного числа у зручному вигляді.
Для цього використовують спеціальний формат
виведення
Write (<ім’я змінної>:n:m);
де n – кількість позицій для виведення на екран дійсного
числа (знак «-» та десяткова кома входять у це число),
m – кількість позицій (з n можливих) для виведення
цифр після десяткової коми.
Знайти остачу R від ділення числа a на число b
Program Zadacha_1;
Var a,b,R:integer;
Begin
Writeln(‘введіть два числа’);
Read(a, b);
R:=a mod b;
Writeln(‘остача=’,R);
End.
Зверніть увагу на
описову частину
програми:
Змінні a, b ,R описані як
цілі integer в розділі Var
Приклад лінійної програми
Знайти цілу частину Z від ділення числа
M на число N
Program Zadacha_2;
Var M,N,Z:integer;
Begin
Writeln(‘введітьдва числа’);
Read(M,N);
Z:=M div N;
Writeln(‘ціла частина=’,Z);
End.
Зверніть увагу на описову
частину програми:
Змінні M,N, Z описані як
цілі integer в розділі Var
Приклад лінійної програми
Написати програму для
знаходження першої цифри цілого
тризначного числа.
Program Zadacha_3;
Var N:integer;
Begin
Writeln(‘введіть ціле тризначне число’);
Read(N);
N:=N div 100;
Writeln(‘перша цифра’,N);
End.
Приклад лінійної програми
Написати програму для визначення: чи ділиться націло
число N на число M
Довідка: число N націло ділиться на число M, якщо остача від
ділення числа N на число M =0, тобто N mod M= 0.
Числа N і M вводяться з клавіатури і є цілими числами
Program Zadacha;
Var N,M :integer;
Begin
Writeln(‘введіть ціле число N’);
Readln(N);
Writeln(‘введіть ціле число M’);
Readln(M);
If N mod M=0 Then Writeln(‘N ділиться на М’)
Else Writeln(‘N не ділиться на М’);
End.
Приклад програми з розгалуженням
Завдання Формула Приклад
Знайти першу цифру цілого
двозначного числа N
N div 10 N=27; N div 10= 2
Знайти другу цифру цілого
двозначного числа N
N mod 10 N=27; N mod 10=7
Знайти першу цифру цілого
тризначного числа N
N div 100 N=345; N div 100=3
Знайти другу цифру цілого
тризначного числа N
N mod 100 div 10 N=345; N mod 100 div 10 =4
Знайти останню цифру цілого
тризначного числа N
N mod 10 N=345; N mod 10 = 5
Знайти першу цифру цілого
чотиризначного числа N
N div 1000 N=1345; N div 1000=1
Знайти останню цифру цілого
чотиризначного числа N
N mod 10 N=1345; N mod 10 =5
Знайти суму всіх цілих чисел від 100 до180,
що діляться на 7, тобто, кратні 7.
Program Zadacha;
Var N, S:integer;
Begin
S:=0;
For N:=100 to 180 do
begin
If N mod 7=0 Then S:=S+N;
end;
Writeln(‘сума чисел, кратних 7=’,S);
End.
Приклад циклічної програми
Знайти суму всіх цілих чисел від 100 до180
Program Zadacha;
Var N, S:integer;
Begin
S:=0;
For N:=100 to 180 do
begin
S:=S+N;
end;
Writeln(‘сума чисел від 100 до 180=’,S);
End.
Приклад циклічної програми
Знайти суму квадратів всіх цілих чисел від
10 до 18
Program Zadacha;
Var N, S:integer;
Begin
S:=0;
For N:=10 to 18 do
begin
S:=S+N*N;
end;
Writeln(‘сума квадратів чисел від 10 до 18=’,S);
End.
Приклад циклічної програми
Знайти суму квадратів парних цілих чисел
від 15 до 138
Приклад циклічної програми
Program Zadacha;
Var N, S:integer;
Begin
S:=0;
For N:=15 to 138 do
begin
If N mod 2=0 Then S:=S+N*N;
end;
Writeln(‘сума квадратів парних чисел=’,S);
End.
Парні числа – це числа,
що діляться без остачі
на 2

Povtor 7 8kl

  • 1.
  • 2.
    Алгоритм - • цескінченна послідовність команд, виконання яких призводить до очікуваного результату Команда- це спонукальне речення Приклади команд: 1. закрий вікно 2. збережи документ 3. виділи текст
  • 3.
    Слово алгоритм виникло відalgorithm – латинського написання слова ал – Хорезмі, під яким у середньовічній Європі знали видатного математика із Хорезму (міста у сучасному Узбекистані) Мухамеда бен Мусу, який жив у 783 – 850 рр.
  • 4.
    • Комп’ютерна програма– • набір послідовних інструкцій у вигляді слів, цифр, кодів, символів чи в іншому вигляді, виражених у формі, придатній для зчитування та виконання комп’ютером
  • 5.
    Транслятор – програма,яка перетворює програму, написану мовою програмування, в машинні коди Інтерпретатор перетворює невеликий фрагмент вихідної програми в машинні коди і, лише дочекавшись, коли процесор їх виконає, переходить до опрацювання наступного фрагмента Компілятор транслює відразу всю програму в машинні коди і вміщує їх у пам’ять комп’ютера, не виконуючи
  • 6.
    Створення мови програмування Паскаль Мовупрограмування Паскаль для навчання студентів основам програмування створив у 1968-1971 р. швейцарський учений Ніклаус Вірт з кафедри інформатики Стенфордського університету. Таку назву вона отримала на честь відомого французького математика, фізика та філософа Блеза Паскаля.
  • 7.
    Способи подання алгоритмів •Словесний (письмовий чи друкований) • Формульно-словесний • Усний • Графічний (схеми, блок-схеми) • Кодований (мовою певного середовища програмування)
  • 10.
  • 12.
    Вхідні дані 1. 2. 3. 8л 5л3л 8л 5л 3л 5л 3л3л 3л3л 2л Алгоритм отримання 2 л із повної 8 л посудини і двох порожніх посудин місткістю 5л і 3 л
  • 13.
    Базові структури алгоритмів (видиалгоритмів) • Лінійний алгоритм – команди виконуються за послідовно одна за одною в установленому порядку. • Алгоритм з розгалуженням - в алгоритмі присутня умова, дотримання якої призводить до виконання однієї із двох команд • Алгоритм з повторенням(циклічні) - деяка група команд може повторюватися кілька разів або до виконання певної умови
  • 14.
  • 15.
    Приклад лінійної програми Знайтисереднє арифметичне трьох чисел
  • 18.
    Правило • Складеневисловлюванняіз сполучником Іістинне тоді і тільки тоді,колиобидвапрості висловлюванняістинні • Складеневисловлюванняіз сполучником АБО хибне тоді і тільки тоді,колиобидвапрості висловлюванняхибні
  • 19.
    Приклади Висловлювання 4 >7 ХИБА (FALSE) (4>7)або (9<12) ІСТИНА (TRUE) (4>7) або (3<1) ХИБА (FALSE) (4>7) і (3<1) ХИБА (FALSE) (4>7) і (3>1) ХИБА (FALSE) (4<7) і (3>1) ІСТИНА (TRUE) 7>5 ІСТИНА (TRUE)
  • 21.
  • 22.
    Команда циклу злічильником i:= 1: i<=5 S:=S+ 7; i:=i+1; S:= 0: Виведення S Program Zadacha; Var i, S:integer; Begin S:=0; For i:=1 to 5 do begin S:=S+7; end; Writeln(‘S=’, S); End. Даний фрагмент блок-схеми 5 разів виконує тіло циклу S:=S+ 7 1. для і=1, S:=0+ 7=7 2. для і=2, S:=7+ 7=14 3. для і=3, S:=14+ 7=21 4. для і=4, S:=21+ 7=28 5. для і=5, S:=28+ 7=35 Перевірка умови i<=5 відбувається кожного разу на початку циклу Умова i<=5 і команда i:=i+1, тобто збільшення параметра і на 1, відбувається в даному операторі цикла з лічильником автоматично TRUEFALSE
  • 23.
    Приклад циклічного алгоритму з пeрeдумовою Умоваb=5 Тіло циклу b:=b+1; a:= a+5; Тіло циклу повторюється доти, доки умова b=5 буде хиба
  • 24.
    Структура програми мовоюПаскаль НАМ Паскаль Програма <назва програми>; Початок <тіло програми> Кінець. Program <назва програми>; Begin <тіло програми> End. Program <назва програми>; Uses <список імен бібліотечних модулів, що використані у програмі>; Const <описання сталих величин>; Type <описання типів користувача>; Var <описання змінних величин>; <описання процедур та функцій користувача>; Begin <тіло програми> End. Виділене курсивом буде вивчатися в 8 класі
  • 25.
    Слова мови програмуванняПаскаль Зарезервовані (службові) – слова, що є складовою частиною мови. Вони мають заздалегідь визначене написання та завжди однаковий зміст. Стандартні – слова, призначені для заздалегідь визначених розробниками мови типів даних, сталих величин, певних процедур або функцій. Ідентифікатори (імена величин) – слова, що визначає користувач для імен сталих та змінних величин
  • 26.
    Назва цілочисельного типу Діапазон значень Обсяг пам’яті (байт) Короткеціле без знаку Byte 0…255 1 Коротке ціле із знаком ShortInt -128…127 1 Ціле без знаку Word 0…65535 2 Ціле із знаком Integer -32768…32767 2 Довге ціле із знаком LongInt -2147483648…2147483647 4
  • 27.
    В Паскалі визначені: •арифметичні операції (+, -, *, /), які застосовні для змінних цілого та дійсного типів); • операції відношення (порівняння) (=, <, >, <=, >=, < >), які порівнюють значення двох величин (операндів) і визначають істинним чи хибним є значення всього виразу; • логічні операції (логічні та (and), або (or), ні (not)), результатом яких є логічне значення true або false.
  • 28.
    Процедури введення тавиведення Read (<імена змінних, що відокремлені одне від одного комою>); Write (<імена змінних, що відокремлені одне від одного комою>); Використовуючи процедуру Write, можна вивести на екран значення дійсного числа у зручному вигляді. Для цього використовують спеціальний формат виведення Write (<ім’я змінної>:n:m); де n – кількість позицій для виведення на екран дійсного числа (знак «-» та десяткова кома входять у це число), m – кількість позицій (з n можливих) для виведення цифр після десяткової коми.
  • 29.
    Знайти остачу Rвід ділення числа a на число b Program Zadacha_1; Var a,b,R:integer; Begin Writeln(‘введіть два числа’); Read(a, b); R:=a mod b; Writeln(‘остача=’,R); End. Зверніть увагу на описову частину програми: Змінні a, b ,R описані як цілі integer в розділі Var Приклад лінійної програми
  • 30.
    Знайти цілу частинуZ від ділення числа M на число N Program Zadacha_2; Var M,N,Z:integer; Begin Writeln(‘введітьдва числа’); Read(M,N); Z:=M div N; Writeln(‘ціла частина=’,Z); End. Зверніть увагу на описову частину програми: Змінні M,N, Z описані як цілі integer в розділі Var Приклад лінійної програми
  • 31.
    Написати програму для знаходженняпершої цифри цілого тризначного числа. Program Zadacha_3; Var N:integer; Begin Writeln(‘введіть ціле тризначне число’); Read(N); N:=N div 100; Writeln(‘перша цифра’,N); End. Приклад лінійної програми
  • 32.
    Написати програму длявизначення: чи ділиться націло число N на число M Довідка: число N націло ділиться на число M, якщо остача від ділення числа N на число M =0, тобто N mod M= 0. Числа N і M вводяться з клавіатури і є цілими числами Program Zadacha; Var N,M :integer; Begin Writeln(‘введіть ціле число N’); Readln(N); Writeln(‘введіть ціле число M’); Readln(M); If N mod M=0 Then Writeln(‘N ділиться на М’) Else Writeln(‘N не ділиться на М’); End. Приклад програми з розгалуженням
  • 33.
    Завдання Формула Приклад Знайтипершу цифру цілого двозначного числа N N div 10 N=27; N div 10= 2 Знайти другу цифру цілого двозначного числа N N mod 10 N=27; N mod 10=7 Знайти першу цифру цілого тризначного числа N N div 100 N=345; N div 100=3 Знайти другу цифру цілого тризначного числа N N mod 100 div 10 N=345; N mod 100 div 10 =4 Знайти останню цифру цілого тризначного числа N N mod 10 N=345; N mod 10 = 5 Знайти першу цифру цілого чотиризначного числа N N div 1000 N=1345; N div 1000=1 Знайти останню цифру цілого чотиризначного числа N N mod 10 N=1345; N mod 10 =5
  • 34.
    Знайти суму всіхцілих чисел від 100 до180, що діляться на 7, тобто, кратні 7. Program Zadacha; Var N, S:integer; Begin S:=0; For N:=100 to 180 do begin If N mod 7=0 Then S:=S+N; end; Writeln(‘сума чисел, кратних 7=’,S); End. Приклад циклічної програми
  • 35.
    Знайти суму всіхцілих чисел від 100 до180 Program Zadacha; Var N, S:integer; Begin S:=0; For N:=100 to 180 do begin S:=S+N; end; Writeln(‘сума чисел від 100 до 180=’,S); End. Приклад циклічної програми
  • 36.
    Знайти суму квадратіввсіх цілих чисел від 10 до 18 Program Zadacha; Var N, S:integer; Begin S:=0; For N:=10 to 18 do begin S:=S+N*N; end; Writeln(‘сума квадратів чисел від 10 до 18=’,S); End. Приклад циклічної програми
  • 37.
    Знайти суму квадратівпарних цілих чисел від 15 до 138 Приклад циклічної програми Program Zadacha; Var N, S:integer; Begin S:=0; For N:=15 to 138 do begin If N mod 2=0 Then S:=S+N*N; end; Writeln(‘сума квадратів парних чисел=’,S); End. Парні числа – це числа, що діляться без остачі на 2