Презентація №1 : Лінійні алгоритми

Download Report

Transcript Презентація №1 : Лінійні алгоритми

Програмування мовою С++

Тема 1. Вступ.

Лінійні алгоритмічні структури

Алгоритм Алгоритм – це чітко визначений план дій для виконавця.

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

Програма

Програма

– це • Алгоритм, записаний на будь-якій мові програмування • Набір команд для комп’ютера

Команда

– це опис дій, які повинен виконати комп’ютер.

• Звідки отримати вихідні дані?

• Що потрібно з ними зробити?

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

Мова С++

1983

– Б'ярн Страуструп (творець мови Сі++)

Мета створення Сі++

• об‘єктно-орієнтувальне програмування • узагальнене програмування через шаблони • робота з бібліотеками • вбудовані функції • посилання і оператори управління вільно розподіленою пам'яттю

З чого складається програма?

#include #include using namespace std;

//процедури і функції

int main(){ int …;

//змінні

Коментарі після двох слешів не опрацьовуються

… //основна програма

}

З чого складається програма?

Константа

– постійна величина, яка має ім’я.

Змінна

– змінна величина, яка має ім’я (комірка пам’яті).

Процедура

– додатковий алгоритм, який описує деякі дії (малювання кола).

Функція

– додатковий алгоритм, для виконання обчислень (обчислення квадратного кореня, sin).

Імена програм, констант, змінних Імена можуть містити • Латинські букви (A-Z) Великі і маленькі літери розрізняються • Цифри Ім’я не може починатися з цифри • Знак підкреслення _ Імена НЕ можуть містити • Українські букви • Пропуски • Дужки, знаки +, =, !, ? та ін.

Які імена правильні?

AXby R&B 4Wheel Вася “PesBarbos” TU154 [QuQu] _ABBA A+B

Константи const int i2 = 45; // ціле число const float pi = 3.14; // дійсне число const string qq = 'Вася'; // рядок символів const bool L = True; // логічна величина Логічна величина може приймати два значення: • True (істина, “так") • False (хибність, "ні")

Змінні Змінна – це величина, яка має ім’я, тип і значення. Значення змінної величини під час виконання програми може змінюватися.

Типи змінних: • int // Цілі • float • char • string • bool // Дійсні // Один символ // Рядок. Необхідно підключити бібліотеку // Логічні Оголошення змінних (виділення пам’яті): int a, b; float Q; char d, k;

Як змінюється значення змінної?

Оператор – це команда мови програмування високого рівня.

Оператор присвоєння служить для зміни значення змінної.

Приклад: … int main(){ … a = 5; b = a + 2; a = (a + 2)*(b – 3); return 0; a } b 5 a 5+2 7*4

Оператор присвоєння Загальна структура: <

ім’я змінної

> = <

вираз

> ; Арифметичні вирази можуть містити • Константи • Імена змінних • Знаки арифметичних дій: + * / / Множення Ділення • Виклики функцій • Круглі дужки ( ) Ділення націло % Остача від ділення

Які оператори неправильні?

… int main() { int a, b; float y, x; a = 5; 10 = x; y = 7,8; b = 2.5; Ім’я змінної повинно знаходитися зліва від знака “=“ x = 2*(a + y); a = b + x; Ціла і дробова частина відділяються крапкою Неможливо записати дійсне значення в цілу змінну }

Ручна прокрутка програми … int main(){ int a, b; 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; }

a ?

5 28 3 4 b ?

7 5 4

Порядок виконання операцій • обчислення виразів у дужках • множення, ділення, / , % зліва направо • додаванні і віднімання зліва направо 2 3 5 4 1 7 8 6 9

x

z = (5*a*c+3*(c-d))/a*(b-c)/ b; 

a

2  5

c

2 (

c

 

d

)(

d d

(

a

  2

a

)

b

)

z

 5

ac

 3 (

c ab

d

) (

b

c

) 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));

Додавання двох чисел Задача. Ввести два цілих числа і вивести на екран їх суму.

Найпростіше розв’язання: #include … … int main(){ int a, b, c; cin >> a >> b; c = a + b; cout << c; }

Оператор введення cin >> a; // ввести значення змінної a cin >> a >> b; // ввести значення змінних a і b Як вводяться два числа?

Через пропуск: 25 30 Через Enter: 25 30 25 30 a b 25 30 a b

Оператор виведення cout << a; // вивести значення змінної a cout << a << endl ; // вивести значення змінної a і перейти на новий рядок cout << “Привіт!”; // виведення тексту cout << “Відповідь: ” << c << endl; // виведення тексту і значення змінної c cout << a << “+” << b << “=“ << c << endl;

Повний розв’язок … int main(){ int a, b, c; cout << “Ввести два цілих числа” << endl; cin >> a >> b; c = a + b; cout << a << ”+” << b << “=” << c << endl; } Протокол: Це виводить комп'ютер Ввести два цілих числа 25 30 Це вводить користувач 25+30=55

Блок-схема лінійного алгоритму Початок Блок «Початок» Ввести a , b Блок «Ввести» c = a + b; Блок «Процес» Вивести c Блок «Вивести» Кінець Блок «Кінець»

Завдання "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