Що таке блок-схеми? Як складати найпростіші алгоритми?
Отже, опустивши довгі і нудні вихваляння Паскаля, які так люблять публікувати в своїх статтях редактори багатьох сайтів, приступимо безпосередньо до найголовнішого - до програмування.
У школах, як правило, вивчення Паскаля починають з вирішення найпростіших завдань шляхом складання різних алгоритмів або блок-схем, яке багато хто так часто ігнорують, вважаючи нікому не потрібною нісенітницею. А дарма. Я, як і будь-який інший чоловік, хоч трохи розуміє в програмуванні (не важливо де - в Паскалі, Сі, Дельфі), можу запевнити Вас - вміння правильно і швидко складати схеми є фундаментом, основою програмування.
Блок-схема - графічне представлення алгоритму. Вона складається з функціональних блоків, які виконують різні призначення (введення / виведення, початок / кінець, виклик функції і т.д.).
Існує кілька основних видів блоків, які неважко запам'ятати:
Сьогоднішній урок я вирішила присвятити не тільки вивчення блок-схем, але також і вивчення лінійних алгоритмів. Як Ви пам'ятаєте, лінійний алгоритм - найпростіший вид алгоритму. Його головна особливість в тому, що він не містить ніяких особливостей. Якраз це і робить роботу з ним простий і приємною.
Завдання №1: «Розрахувати площу і периметр прямокутника за двома відомими сторонами».
Дане завдання не повинна представляти особливих труднощів, так як побудована вона на добре відомих усім нам формулах розрахунку площі і периметра прямокутника, тому зациклюватися на виведенні цих формул ми не будемо.
Складемо алгоритм виконання таких завдань:
1) Прочитати задачу.
2) Виписати відомі і невідомі нам змінні в «дано». (У задачі №1 до відомим змінних відносяться сторони: a, b; до невідомим - площа S і периметр P)
3) Згадати або скласти необхідні формули. (У нас: S = a * b; P = 2 * (a + b))
4) Скласти блок-схему.
5) Записати рішення на мові програмування Pascal.
Запишемо умову в більш стислому вигляді.
Дано: a, b
Знайти: S, P
Блок-схема:
Рішення завдання №1
Структура програми, вирішальної це завдання, теж проста:
- 1) Опис змінних;
- 2) Введення значень сторін прямокутника;
- 3) Розрахунок площі прямокутника;
- 4) Розрахунок периметра прямокутника;
- 5) Висновок значень площі і периметра;
- 6) Кінець.
А ось і рішення:
Program Rectangle; Var a, b, S, P: integer; Begin write ( 'Введіть боку прямокутника!'); readln (a, b); S: = a * b; P: = 2 * (a + b); writeln ( 'Площа прямокутника:', S); write ( 'Периметр прямокутника:', P); End.
Завдання №2: Швидкість першого автомобіля - V1 км / год, другого - V2 км / год, відстань між ними S км. Яка відстань буде між ними через T годин, якщо автомобілі рухаються в різні боки? Значення V1, V2, T і S задаються з клавіатури.
Рішення здійснюємо, знову ж таки, слідуючи алгоритму. Прочитавши текст, ми переходимо до наступного пункту. Як і у всіх фізичних або математичних задачах, це запис умов завдання:
Дано: V1, V2, S, Т
Знайти: S1
Далі йде найголовніша і в той же час найцікавіша частина нашого рішення - складання потрібних нам формул. Як правило, на початкових стадіях навчання всі необхідні формули добре нам відомі і взяті з інших технічних дисциплін (наприклад, на знаходження площі різних фігур, на знаходження швидкості, відстані і т.п.).
Формула, яка використовується для вирішення нашої задачі, виглядає наступним чином:
S1 = (V1 + V2) * T + S
Наступний пункт алгоритму - блок-схема:
Рішення завдання №2.
А також рішення, записане в Pascal:
Program Rasstoyanie; Var V1, V2, S, T, S1: integer; {Введення} begin write ( 'Введіть швидкість першого автомобіля:'); readln (V1); write ( 'Введіть швидкість другого автомобіля:'); readln (V2); write ( 'Введіть час:'); readln (T); write ( 'Введіть відстань між автомобілями:'); readln (S); S1: = (V1 + V2) * T + S; writeln ( 'Через', t, 'ч. відстань', S1, 'км.'); End.
Вам може здатися, що дві ці програми правильні, але це не так. Адже сторона трикутника може бути 4.5, а не 4, а швидкість машини не обов'язково кругле число! А Integer - це тільки цілі числа. Тому при спробі написати в другій програмі інші числа вискакує помилка:
Зверніть увагу в Паскалі, як і в будь-якому іншому мовою програмування десяткова дріб вводиться з точкою, а не з коми!
Щоб вирішити цю проблему вам треба згадати який тип в Pascal відповідає за нецілі числа. В цьому уроці ми розглядали основні типи. Отже, це дійсний тип - Real. Ось, як виглядає виправлена програма:
Як бачите, ця стаття корисна для прочитання як новачкам, так і вже більш досвідченими користувачам Pascal, так як складання блок-схем не тільки дуже просте і швидке, але і дуже захоплююче заняття.
Яка відстань буде між ними через T годин, якщо автомобілі рухаються в різні боки?