Лабораторна робота №1 (модуль 1) Тема: Алгоритми. Базові управляючі структури. Слідування. (4 години) Мета: Сформувати навички і вміння зі складання блок-схем та алгоритмів слідування для розв’язування задач. Розвивати логічне мислення при складанні алгоритмів. Література: Архангельский А.Я. Язык Pascal и основы программирования в Delphi Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов.– М.: Мир, 1979.– 536 с. Венц А. Н. Профессия – программист.– Ростов: Изд-во «Феникс», 1999.– 384 с. Виноградов И.М. Основы теории чисел.– М.: Наука, 1972.– 167 с. Вирт Н.. Алгоритмы + структуры данных = программы. Москва, Мир, 1985 г. 406 с. Вирт Н.. Алгоритмы и структуры данных. Москва, Мир, 1989 г. 420 с. Гусева А.И. Учимся информатике: задачи и методы решения.– М.: «Диалог – МИФИ», 1998.– 320 с. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы. Построение и анализ.– М.: МЦНМО, 1999.– 960 с. Короткі теоретичні відомості. Алгоритм - це деяке правило перетворення інформації, застосування якого до заданої (початкової) інформації приводить до результату - нової інформації.
Особлива увага в теорії та практиці алгоритмізації приділяється методам задання (опису, конструювання) алгоритмів. Один з основних підходів до опису алгоритмів – т.з. імперативний підхід скоадається в уточненні способу опису алгоритму як послідовності кроків, на кажному з яких виконується одна з т.з. інструкцій (команд, операторів). Алгоритм - це кінцевий набір інструкцій по перетворенню інформації (команд, операторів), виконання яких приводить до результату. Кожна інструкція алгоритму містить точний опис деякої елементарної дії з перетворення інформації, а також (у явному або неявному вигляді) вказівку на інстукцію, яку треба виконати наступною.
На даному рисунку зображена послідовність команд C1, C2, …, Ck з перетворення інформації, що виконується алгоритмом. Оскільки алгоритми повинні бути визначені точно та не мати подвійного змісту, форма їх запису (нотації) повинна бути визначена з математичною точністю. З даною метою використовуються т.з. синтаксичні правила. Їх сукупність для опису алгоритму визначає формально-мовне середовище – алгоритмічну мову. Семантика – це сукупність правил, що визначають виконання алгоритму, а саме це правила інтерпретації даних та правила інтерпретації операторів. Мова блок-схем дозволяє представити процес виконання алгоритму у геометричних образах, істотно полегшуючи інтуїтивне розуміння семантики алгоритму. Тому блок-схеми корисно використовувати як ілюстрації до визначення семантики окремих операторів управління та загальних принципів структурування керування. Слідування є однією з базових управляючих конструкцій. За допомогою блок-схеми його можна представити наступним чином:
Приклад. Алгоритм складання дробів. Вхід: A/B, C/D; 1. Обчислити Y = B*D; {Перейти до наступної команди} 2. Обчислити X1 = A*D; {Перейти до наступної команди} 3. Обчислити X2 = B*C; {Перейти до наступної команди} 4. Обчислити X = X1+X2; {Перейти до наступної команди} 5. Обчислити Z = НОД(X,Y); {Перейти до наступної команди} 6. Обчислити Е = X div Z; {Перейти до наступної команди} 7. Обчислити F = Y div Z; {Завершити роботу}. Вихід: E/F Задачі для самостійного розв’язування Скласти алгоритм, який за довжиною, шириною і висотою кімнати знаходить площу і об’єм цієї кімнати. Дано дві дійсні змінні a, b. Скласти алгоритм, який міняє місцями значення цих змінних (нове значення a дорівнює старому значенню b і навпаки). Дано три дійсні змінні a, b і c. Скласти алгоритм, який міняє місцями значення цих змінних наступним чином: змінна a набуває значення змінної b, змінна b набуває значення змінної c, а змінна c – попереднє значення змінної a. Скласти алгоритм, який обчислює цілу і дробову частину даного числа х. Скласти алгоритм, який обчислює першу цифру дробової частини дійсного числа х. Скласти алгоритм, який обчислює першу цифру числа an (a – дійсне число, n – натуральне число). Скласти алгоритм, який розв’язує систему лінійних рівнянь методом Крамера:
Вважати, що її визначник не дорівнює нулю. Скласти алгоритм, який обчислює координати точки А(X,Y) при повороті системи координат на кут Alfa і паралельному переносі на вектор a = (u, v). Скласти алгоритм, який обчислює корінь степени n і n-ний степінь додатнього дійсного числа a.