Мал. 20. Типові частини структури алгоритму
Лінійні алгоритми складаються з лінійної послідовності дій.
Алгоритми , що розгалужуються, поряд з іншими діями містять логічні умови, у залежності від виконання яких проводиться вибір визначеної гілки алгоритму.
Циклічні алгоритми дозволяють за допомогою умовного або безумовного переходу неодноразово виконувати ряд дій, створюючи цикл. При зміні вхідних даних циклічний алгоритм дозволяє багаторазово відтворювати дії, що входять у цикл.
На практиці в чистому вигляді вказані типи алгоритмів майже не зустрічаються, але вони в різних сполученнях входять у реальні алгоритми. Так, наприклад, алгоритм, що розгалужується, може містити і лінійний, і циклічний алгоритми, у тому числі цикл у циклі і т.д.
Переходячи до реалізації побудованого алгоритму на комп'ютері ІС, варто враховувати одну важливу обставину. Він повинний розроблятися таким чином, щоб бути пристосованим для програмування на будь-якому комп'ютері. Проте при складанні алгоритму для комп'ютера конкретного типу ІС необхідно орієнтуватися на його особливості. Це, головним чином, стосується порядку використання оперативної пам'яті та швидкодії комп’ютерів, що складають архітектуру ІС.
Після етапу алгоритмізації йде етап перекладу алгоритму на мову, зрозумілу комп’ютерам ІС - складання програми. Процес написання програми одержав назву програмування. При вирішенні складних задач, що потребують розробки великих програм, цю операцію, як правило, здійснюють програмісти-професіонали. Більш того, донедавна тільки їм і було практично під силу скласти програму, оскільки мови програмування були важкі для непідготовленого користувача.
В міру розвитку обчислювальної техніки удосконалювалися і мови програмування, що забезпечило на теперішній час простоту спілкування із сучасними ІС і для широкого кола людей, що не є професіоналами в області програмування. Це дає можливість користувачу при вирішенні порівняно простих задач самостійно або після короткого навчання, освоївши необхідний обсяг знань і отримавши деякі практичні навички в упорядкуванні програм, запрограмувати задачу, не звертаючись по допомогу до програмістів. Крім того, знання принципів і методів програмування необхідне кожному фахівцю для правильного підготування задач, що автоматизуються, і врахування особливостей обробки інформації ІС .
У зв'язку з цим далі викладаються головні поняття в області програмування, розраховані на непідготовленого користувача.
Перший рівень. Кожний рядок програми являє собою команду, що складається з коду операції і адреси операндів (чисел, що беруть участь в операції). При введенні в машину усі числа перетворюються в нулі та одиниці. Для першого і частково другого поколінь ЕОМ програми писалися тільки в машинних кодах. Робота ця трудомістка і малопродуктивна. При упорядкуванні програми легко припуститися помилки і важко її виявити. Для полегшення і прискорення процесу програмування були розроблені мови другого рівня.
Другий рівень. Замість машинних кодів на цьому рівні використовуються символічні позначення операцій і операндів, тому написання програми спростилося.
Для того, щоб зробити ці символічні позначення зрозумілими комп'ютеру ІС, а також щоб робити автоматичну нумерацію комірок пам’яті, у яких зберігаються числа, використовуються спеціальні програми - транслятори. Вони дозволяють здійснювати автоматичний переклад символьного запису в машинні коди. Чим вище рівень мови, тим складніші транслятори. Самий процес автоматичного перекладу програми, написаної на якійсь мові, на мову машинних кодів одержав назву трансляції.
До мов другого рівня відносяться Автокоди, Асемблери, Макроасемблери і інші. Мови 1-го та 2-го рівнів розроблені для конкретних типів комп'ютерів і тому їх також називають машинно-орієнтованими мовами. Перевагою цих мов є висока швидкість вирішення задач і оптимальний розподіл пам'яті комп'ютера, тому що при складанні програми враховуються особливості окремих пристроїв комп'ютера. Їхньою хибою є велика працездатність при написанні і налагодженні програми. Програмуванням на машинно-орієнтованих мовах займаються переважно фахівці-програмісти. Вони складають для нових моделей машин програми, призначені для запуску комп'ютера й обслуговування процесу обчислень. Крім того, усі транслятори пишуться на машинно-орієнтованих мовах.
Третій рівень. Мови третього рівня призначені для вирішення визначеного класу задач і не залежать від конкретного типу комп’ютерів ІС. Поява мов третього рівня істотно полегшила роботу програмістів.
Ці мови згідно своїх правил написання близькі до математичних виразів і містять елементи природної мови. Починаючи з третього рівня, мови програмування називають мовами високого рівня або алгоритмічними мовами.
Транслятори перекладають програми мов високого рівня на машинні мови. У кожного типу комп'ютера є свій набір трансляторів, тому програма на мові високого рівня може використовуватися на будь-яких комп’ютерів ІС, що має транслятор із даної мови. Зараз існує багато мов третього рівня. Найбільшого поширення одержали в минулому: АЛГОЛ, ФОРТРАН - для математичних і фізичних моделей, КОБОЛ - для обробки економічної інформації. ПЛ/1 - велика і складна мова для наукових розрахунків і обробки великих масивів інформації, ПАСКАЛЬ - проста і компактна мова для обробки соціально-економічної інформації, інженерно-технічних та інших розрахунків. У навчальних цілях широко використовуються мови БЕЙСІК, ФОКАЛ і інші. Дані мови зручні та прості в використанні.
Велике значення для розвитку програмування мало створення мови високого рівня БЕЙСІК. В даний час БЕЙСІК є одною із головних мов у програмному забезпеченні персональних комп'ютерів. Простота й універсальність мови БЕЙСІК дали можливість непідготовленим користувачам швидко і легко оволодіти нею та застосовувати її для самостійного вирішення задач.
Мови третього рівня застосовуються на машинах 3-го і 4-го поколінь, що складають сьогодні головний фонд парку обчислювальної техніки у світі.
Четвертий рівень. Мови цього рівня максимально наближені до людської мови. Вони призначені для прямого спілкування людини та комп’ютера. Мови цього рівня будуть реалізовані в головному на комп’ютерах п'ятого покоління.
На мовах четвертого рівня можуть працювати як фахові програмісти, так і не знаючі основ програмування звичайні користувачі.
Процес написання програм при доброму знанні мови програмування і при наявності докладного алгоритму не є складним і займає порівняно невелику частину в загальних витратах часу на створення математичної моделі та реалізації її ІС. Труднощі виникають на етапі налагодження і дослідної реалізації програми. Ці труднощі пов'язані з необхідністю виявлення та усунення похибок, допущених на попередніх етапах. Пошук та усунення похибок являє собою складний, трудомісткий процес , що, в цілому, погано піддається автоматизації. Особливу складність тут викликає виправлення логічних похибок, допущених у ході постановки та алгоритмізації задачі. Тому даний етап потребує спільних зусиль усіх фахівців, що приймали участь у постановці, розробці та рішення задачі. Найчастіше він займає до 30 - 40% від загального часу автоматизації вирішення задачі.
Після введення програми в пам'ять комп'ютера ІС за допомогою дисплея або пристроїв вводу починається трансляція програми. Трансляція являє собою автоматизований переклад програми з мови високого рівня в коди машинної мови. Транслятор перевіряє наявність у програмі синтаксичних помилок. У машині зберігаються таблиці усіх команд мови високого рівня і машинні коди , що відповідають їм. Якщо користувач помилився у написанні команди, то комп’ютер видає йому повідомлення про похибку у відповідному місці програми. Трансляція при цьому припиняється. На жаль, поки комп'ютер ІС виявляє лише частину синтаксичних помилок, а логічні помилки при трансляції взагалі не можуть бути знайдені.
Програміст аналізує помилки , що виявляються, виправляє їх, вводить зміни в програму і проводить процес трансляції доти, поки комп’ютер не повідомить про відсутність помилок у програмі.
У мовах високого рівня для забезпечення широкого застосування програмного забезпечення в різноманітних країнах прийнято використовувати англійські слова. Це не створює великих перешкод для непрофесійного програміста, оскільки кількість службових слів у мовах високого рівня невелика, що дозволяє їх швидко запам'ятати.
Після закінчення трансляції програма виявляється записаною в пам'ять комп'ютера ІС на мові машинних кодів і може по команді оператора почати виконуватись комп'ютером .
Під налагодженням програми розуміється процес усунення помилок, що виявляються в ході безпосередньої роботи програми над вирішенням поставленої задачі.
Налагодження програми починається з прорахунку контрольного варіанта, результати вирішення якого відомі заздалегідь. Контрольний варіант складається користувачем і є спрощеним варіантом вирішення задачі. Цей варіант повинний дозволити провести порівняння ручних і машинних розрахунків по можливості на усіх головних елементах алгоритму. Іноді використовують декілька контрольних варіантів, кожний із який перевіряє окрему ділянку алгоритму, але і тоді вихідні дані беруться в спрощеному виді, зручному для ручних розрахунків.
Як правило, не буває програм, для яких контрольний варіант задачі з першого разу пройшов би на комп'ютері та були б отримані результати, що збігаються з результатами ручних розрахунків. Тому розроблювачі моделі, алгоритму і програми щоразу старанно аналізують причини похибок або видачі неправильних результатів і усувають похибки в програмі, алгоритмі та моделі. Причиною похибок може бути і невдало вибраний контрольний варіант. Тільки після того, як результат ручних і машинних розрахунків збіглися, програма вважається готовою до експлуатації.
У процесі експлуатації програми замість даних контрольного прикладу вводяться вхідні дані поставленої задачі та проводяться розрахунки.
Після налагодження програми програміст і постановник задачі складають документацію на програму, до складу якої входять: інструкція для користувача, керівництво діяльністю програміста, оператора і т.д. Контрольний варіант разом із виданими комп'ютером ІС результатами додається до опису програми. Надалі цей варіант використовується для перевірки працездатності програми перед початком досліджень і служить як зразок завдання вихідних даних і одержання результатів. Програма звичайно зберігається на магнітній стрічці або диску разом із документацією. Експлуатація програми здійснюється користувачем самостійно або за допомогою операторів ІС.
Крім написання і налагодження програми у функції програміста також входить її супровід, тобто зміна програми в процесі експлуатації. Зміни програми відбуваються в результаті виявлення помилок, що не були виявлені у ході налагодження, або уточнення моделі і постановки задачі, що проводяться користувачами.
Процес автоматизації вирішення задачі значно скорочується, коли самий постановник задачі створює модель, алгоритм, програму, налагоджує програму за підтримкою професіонала-програміста і проводить за готовою програмою дослідження. Практична реалізація такого підходу стала можливою з появою персональних комп'ютерів, укомплектованих “дружнім” програмним забезпеченням, орієнтованим на користувача-нефахівця. Це ознаменувало настання нового етапу в інформаційній технології - етапу автоматизації персональних знань, коли сам користувач реалізує процес автоматизації вирішення задачі з початку і до кінця.
Як показала практика, цей шлях є найкращим для користувача. При цьому модель швидше реалізується на ІС, процес налагодження скорочується. У результаті в програмі допускається менше помилок, особливо схованих, що можуть бути виявлені в ході її експлуатації. У процесі автоматизації знань на долю професіонала-програміста припадає консультаційна поміч користувачу, розробка базових засобів і універсальні пакети програм, що полегшують процес самостійної роботи користувача.
Дата добавления: 2014-12-04; просмотров: 1085;