Информатика - Борисов
.pdf3.Информационное моделирование, понятие «алгоритм»
5.Изменить надписи на элементах блок-схемы, для чего выделить элемент, дважды кликнуть по нему и затем в появившемся окошке сделатьнужныекоррекции.
6. Итоговуюблок-схемусравнитьсобразцом.
7.Проанализировать реализацию алгоритма в виде программы на языкеС/С++.
8.Самостоятельно ознакомиться с другими возможностями и осо- бенностямипрограммыalgorithm.exe.
РЕЗУЛЬТАТЫ РАБОТЫ ПРЕДЪЯВИТЬ ПРЕПОДАВАТЕЛЮ.
31
Раздел II. Алгоритмизацияимоделирование
4. ЯЗЫКИ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ
Вопросы:
4.1.Понятие языка программирования.
4.2.Классификация языков программирования.
4.3.Состав системы программирования.
4.4.Этапы создания программы.
4.5.Тестирование и отладка программы.
4.1. Понятие языка программирования
Под термином «программирование» понимается процесс созда- ния и отладки компьютерных программ. Программирование нача- лось с момента появления электронных вычислительных машин (ЭВМ). Первые ЭВМ имели небольшой набор команд и встроенных типов данных, поэтому позволяли писать программы на машинном языке (коде). Машинный код является двоичным, т.е. представляет собой последовательность нулей и единиц. Использование такого языка неудобно и трудоемко, так как программист должен знать чи- словые коды всех машинных команд и сам распределять память под команды программы и данные. Поэтому возникла идея записывать программу на так называемом алгоритмическом языке, или языке программирования.
Языки программирования – искусственные формализованные язы- ки, предназначенные для записи алгоритмов и выполнения их на ЭВМ. Язык программирования является средством создания про- граммных моделей объектов и явлений внешнего мира и служит для общения человека и машины. В отличие от человеческого (естест- венного) язык программирования не допускает двусмысленностей и неопределенностей. Для языка программирования характерно нали- чие ограниченного набора «слов» и строгих правил записи команд (операторов). Вместе с тем, как и в любом другом, в языке програм- мирования можно выделить четыре основных элемента – символы, слова, словосочетания, предложения.
Язык программирования, как и «естественный», образуют три со- ставляющие: алфавит, синтаксис и семантика.
Алфавит – фиксированный для данного языка набор символов (букв, цифр, специальных знаков и т.д.), которые могут быть ис- пользованы при написании программы.
Синтаксис – правила построения из символов алфавита специ- альных конструкций, с помощью которых составляется алгоритм.
Семантика – система правил толкования конструкций языка.
32
4. Языки исистемы программирования
Программа составляется с помощью соединения символов алфа- вита в соответствии с синтаксическими правилами и с учетом правил семантики. Неправильная запись программы приводит к тому, что транслятор (программа, выполняющая перевод на машинный язык) не может понять назначение оператора и выдает сообщение о син- таксической ошибке, а правильно написанное, но не соответствую- щее алгоритму использование операторов языка приводит к семан- тическим ошибкам.
Существует два основных вида трансляторов: интерпретаторы и компиляторы. Интерпретаторы сканируют и проверяют исходный код в один шаг (по одному оператору). Компиляторы сканируют весь исходный текст программы и генерируют машинный код.
4.2.Классификация языков программирования
Взависимости от того, насколько приближен язык программиро- вания к машинному языку, все языки программирования делят на две основные группы: низкоуровневые и высокоуровневые.
Языки низкого уровня, или машинно-ориентированные, – это языки, средства которых существенно зависят от архитектуры ЭВМ,
аоператоры близки к машинному коду. К языкам этого типа отно- сятся:
• машинный язык (язык машинных кодов) – совокупность ко- манд, интерпретируемых и исполняемых компьютером; каждый оператор программы на этом языке является машинной командой;
• ассемблер (макроассемблер) – язык символического кодирова- ния – операторами языка являются машинные команды, которым приписываются мнемонические обозначения.
Преимуществами языков низкого уровня являются возможность доступа ко всем аппаратным ресурсам, детализация управления и максимальная эффективность программы. Недостатки – необходи- мо знать систему команд данного процессора, процесс написания программы очень сложен, невозможно перенести данную программу на компьютер с другим типом процессора. Языки низкого уровня используются в основном системными программистами – профес- сионалами для разработки относительно небольших программ, вхо- дящих в состав системного программного обеспечения: драйверов, утилит и других.
Языки высокого уровня – это языки программирования, понятия и структура которых удобны для восприятия человеком. Программы на языках высокого уровня близки к естественному (английскому) языку. Эти языки не зависимы от конкретных компьютерных архи- тектур, на них пишется большинство прикладных программ.
33
Раздел II. Алгоритмизацияимоделирование
По функциональному назначению языки программирования вы- сокого уровня подразделяют на проблемно-ориентированные и уни- версальные. Первые предназначены для решения каких-то специфи- ческих задач из некоторой отрасли знаний. Примерами являются язык FORTRAN – язык решения сложных научных и инженерных задач (кстати, это был первый язык программирования высокого уровня); COBOL – язык для решения экономических и коммерче- ских задач; LISP– язык, используемый в решении задач искусствен- ного интеллекта.
К универсальным языкам относятся PASCAL, BASIC, C (C++), Java и др. Эти языки позволяют решить, вообще говоря, любую задачу, хотя трудоемкость решения конкретной задачи в разных языках бу- дет различаться.
Другим признаком, в соответствии с которым возможна класси- фикация языков программирования, является парадигма (концеп- ция) программирования, т.е. совокупность основополагающих идей и подходов, определяющих стиль программирования. Существуют следующие стили: процедурный, функциональный, логический, объектно-ориентированный.
Начинать изучение программирования чаще всего рекомендуют с языка Паскаль. Этот универсальный язык, и разрабатывался он как средство обучения программированию. Достоинствами Паскаля яв- ляются логичность, четко реализованные принципы структурного программирования, работа с динамической памятью, возможность создания своих типов данных. Его автор – швейцарский профессор Никлаус Вирт. Дата создания – 1971 г. Несмотря на то, что с момен- та появления Паскаля прошло уже более 40 лет, этот язык не потерял своей актуальности и значимости и продолжает активно использо- ваться многими программистами в виде современных, более мощ- ных версий
4.3. Состав системы программирования
Огромную роль в массовом распространении Паскаля сыграла компания Borland International. Она сумела создать знаменитую Turbo-среду разработки. Это был значительный шаг вперед в облег- чении процесса программирования. Широкая популярность Турбо- Паскаля определила тот факт, что со временем все разработчики компиляторов обратились к созданию интегрированных сред разра- ботки. Интегрированная среда объединила в себе возможности тек- стовых редакторов исходных программ и командный язык компиля- ции. Дальнейшее развитие средств графического интерфейса поль- зователя привело к созданию систем программирования.
34
4. Языки исистемы программирования
Система программирования – комплекс программных средств, предназначенных для кодирования, тестирования и отладки про- грамм на конкретном языке программирования. Современные сис- темы программирования обычно предоставляют пользователям мощные и удобные средства разработки программ. Основными ком- понентами систем программирования являются:
•компилятор или интерпретатор;
•интегрированная среда разработки IDE (Integrated Development Environment) – многооконная система с управляющими элементами;
•текстовый редактор (Edit);
•редактор связей (Linker – компоновщик);
•библиотеки стандартных программ и функций (VCL, QT);
•отладчики программ (Debug);
•программы – утилиты (Tools);
•встроенный ассемблер (Asm);
•встроенная справочная служба (HELP – система);
•библиотеки примеров программ, файлы документации.
4.4. Этапы создания программы
Система программирования предоставляет пользователю сервис- ные возможности в удобном, диалоговом режиме организовать про- цесс создания и выполнения программы, который включает пять основных этапов.
1.Написание и редактирование исходного текста программы с дальнейшим сохранением в виде исходного файла. Эти функции осу- ществляеттекстовыйредактор.
2.Компиляция программы, т.е. перевод в машинный код и сохра- нение в виде объектного файла. Если обнаружены синтаксические ошибки, то сообщения о них выводятся в соответствующее окно ин- тегрированнойсреды.
3.Объединение (компоновка) полученного объектного файла с другимиобъектными файламистандартных испециальных библиотек
иполучениеисполнимогофайла.
4.Обнаружение и устранение ошибок – отладка программы, по- мощьвэтомможетоказатьпрограмма– отладчик.
5.Выполнение и тестирование (проверка) на большом количестве входныхнаборовданных.
В настоящее время наиболее популярными являются универсаль- ные языки программирования Си++ (C++), Паскаль (Pascal), VBA, Си#. Для каждого из этих языков разработаны системы программи- рования, выпускаемые разными фирмами и ориентированные на различные типы операционных систем. В последнее время получили
35
Раздел II. Алгоритмизацияимоделирование
распространение системы программирования, ориентированные на создание Windows-приложений (VBA, Borland Delphi, Borland C++ Builder, Microsoft Visual C++ и др.).
4.5. Тестирование и отладка программ
Тестирование – процесс выполнения программ с целью обнару- жения факта наличия ошибок. Существующие на сегодняшний день методы тестирования программ не позволяют однозначно и полно- стью выявить все дефекты и установить корректность функциониро- вания анализируемой программы. Поэтому все существующие мето- ды тестирования действуют в рамках формального процесса провер- ки исследуемой или разрабатываемой программы.
Такой процесс формальной проверки, или верификации, может доказать, что дефекты отсутствуют с точки зрения используемого метода. Существует множество подходов к решению задачи тестиро- вания и верификации программ. Однако эффективное тестирование сложных программных продуктов – это процесс творческий, не сво- дящийся к следованию строгим и четким процедурам или созданию таковых. Эффективно «пройтись» по программе можно с помощью отладчика, если такой имеется в составе интегрированной среды разработки.
Всоставе пакета MS Office в программах Word, Excel, PowerPoint
идр. есть возможность воспользоваться Редактором Visul Basic, От- ладчиком Debug, а также целиком выполнить программу, написан- ную на языке программирования VBA. Рассмотрим эти возможности на примере, изложенном в Задании 4.1.
36
4. Языки исистемы программирования
Задание 4.1. Тестировать программу с циклом
Исходные данные.
На диске D имеется папка d:\1\, в которой содержится 52 файла (кадра) движущегося объекта (бурундука). Файлы названы от 0.gif до 51.gif. Если показать эти файлы в виде картинки (например, на листе Excel) друг за другом, то создается иллюзия движения объекта.
Алгоритм программы на языке VBA следующий:
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub Макрос1()
'
Dim S As String
Dim intIndex As Integer Dim intMax As Integer
intMax = 51
For intIndex = 0 To intMax ' Цикл по кадрам изображения
Range("A1").Select ActiveCell.FormulaR1C1 = intIndex 'intMax -
Selection.NumberFormat = "@" ' Преобразование из числа в текст
' Формирование имени файла с рисунком
S = "D:\123\Adv Gif Anim\1\" + ActiveCell.FormulaR1C1 + ".gif" ' Отображение рисунка на листе
ActiveSheet.Pictures.Insert(S).Select
DoEvents ' Задержка
Sleep 100
Selection.Cut ' Удалить рисунок
Next
Range("A1").Select
Selection.ClearContents
End Sub
Задача.
Протестировать алгоритм анимации в интегрированной среде разработки программы Excel.
Решение.
1. ЗапуститьпрограммуExcel.
37
Раздел II. Алгоритмизацияимоделирование
2. С помощью меню Формы создать в районе ячейки К1 кнопку «Старт» какпоказанонарисункениже.
3. Начатьзаписьмакроса:
4.Выделить ячейку В1, затем с помощью кнопки остановить записьмакроса.
5.ВызватьРедакторVisual Basic:
38
4. Языки исистемы программирования
6. Убедиться, чтополученкодмодуля:
При отсутствии окна Project-ProgressBars вызвать командой View→Project Explorer. Раскрыть папку Modules и затем дважды щелкнуть по Module1. Наблюдать на поле (General) содержимое мак- роса с именем Макрос1.
7. Перейти на лист , с помощью правой кнопки мыши вызвать контекстное меню на созданной кнопке и назначить для кнопки «Старт» на выполнение Макрос1. Убедиться, что макрос запускается
39
Раздел II. Алгоритмизацияимоделирование
(например, выделить ячейку А5 и нажать на кнопку «Старт», выделе- ниевернетсякячейкеВ1).
8. Заменить содержание макроса от Sub Макрос1() до End Sub на код программы, приведенной выше (в исходных данных). Набрать остановнапротивоператораActiveSheet.
9. С помощью кнопки Run запустить программу на выполне- ние. Программаначнетвыполнятьсядонабранногоостанова.
40