Формально-словесный способ описания алгоритма основан на записи содержания выполняемых действий с использованием изобразительных возможностей языка математики, дополненного с целью указания необходимых пояснений средствами естественного языка. Данный способ, обладая всеми достоинствами словесного способа, вместе с тем более лаконичен, а значит, и более нагляден, имеет большую формализацию, однако тоже не является строго формальным.
Графический способ описания алгоритмов представляет собой изображение логико-математической структуры алгоритма, при котором все этапы процесса обработки данных представляются с помощью определенного набора геометрических фигур (блоков), имеющих строго определенную конфигурацию в соответствии с характером выполняемых действий. (см. рис.1)
- начало, конец
- вычисления
-
ввод / вывод- проверка условия
- модификация
-
подпрограммаРис. 1. Основные графические обозначения блоков программ.
Все блоки в схеме располагаются в последовательности сверху вниз и слева направо, объединяясь между собой линиями потока.
Приведем пример: математическая постановка задачи - задано квадратное уравнение:
,где
, b, c – некоторые параметры. Вычислить его действительные корни.Решение:
;Если D³0, то уравнение имеет 2 действительных корня
.Если D<0, то уравнение не имеет действительных корней.
Блок-схема алгоритма решения:
Раздел II. Средства, используемые для создания программ
Для создания программ или программных продуктов используются аппаратное и программное обеспечение.
Под аппаратным обеспечением понимают обычно все узлы, модули и блоки, составляющие компьютер или компьютерную систему. В современных компьютерах используется так называемая «открытая архитектура», т.е. состав аппаратного обеспечения компьютера можно изменить, поменяв один из модулей, или расширить, вставив дополнительный модуль.
Аппаратное обеспечение современных ПК включает в себя следующее:
· системный блок,
· устройства ввода информации в ПК (например, клавиатура),
· устройства вывода информации из ПК (например, монитор).
Системный блок, клавиатура и монитор вместе составляют персональный компьютер в минимальной конфигурации, т.е. позволяют работать с информацией на компьютере.
О программном обеспечении, позволяющем создавать программные продукты (фактически те же программы), пойдет речь ниже.
II.1 Язык программирования – инструмент для разработки программы. Виды и классификация языков программирования
Языком программирования называют способ записи алгоритмов (решений различных задач) на языке, понятном для ЭВМ.
Процессор компьютера может обрабатывать информацию, представленную лишь в виде машинных кодов (двоичных). Запись команд непосредственно на языке, понятном процессору, довольно утомительна. Такие программы создавались программистами лишь для первых ламповых ЭВМ.
В 1950-х годах появились первые языки, называемые Автокодами, а позднее они стали называться Ассемблеры. Здесь переменные величины стали обозначаться символами, а команды зарезервированными наборами символов. Таким образом, процесс программирования стал более понятен для человека. Такое представление работы с данными было реализовано с помощью специального переводчика – транслятора – программы, переводящей текст создаваемой человеком программы в машинные команды.
Языки типа Ассемблеров (языки низкого уровня) являются машинно-ориентированными, т. е. для каждого типа процессора существует свой язык-Ассемблер.
Создание языка программирования заключается в создании программы-транслятора этого языка в машинные коды.
Различают 2 типа трансляции:
1. компиляция заключается в полном предварительном переводе всего набранного пользователем текста программы в программу машинных кодов, причем последняя сохраняется в памяти, откуда и происходит ее выполнение; такая программа-компилятор загружается в память только перед исполнением компиляции;
2. интерпретация заключается в последовательном чтении транслятором очередной команды, переводе ее в машинный код и последующем ее выполнении, при этом результаты предыдущих переводов в памяти не сохраняются; программа-интерпретатор постоянно находится в оперативной памяти компьютера.
Следует отметить, что откомпилированная пользовательская программа выполняется быстрее, чем интерпретированная. Поэтому такие языки программирования высокого уровня, как Turbo Pascal, Фортран, Си, используют компиляцию при реализации программ.
Каждый язык программирования характеризуется элементами:
1) Алфавит – набор символов, разрешенных к использованию и воспринимаемых компилятором. С помощью этих символов строятся команды, переменные, операции.
2) Синтаксис – правила записи команд и операций.
3) Семантика – смысловое содержание и способы построения конструкций языка.
Алгоритмические языки представляют собой средства описания данных и алгоритмов решения задач, они разработаны для составления программы пользователем. В настоящее время разработано большое количество языков программирования. Они отличаются друг от друга различными свойствами и областью применения.
Класс машинно-зависимых языков представлен ассемблером. Язык ассемблера делает доступными все программно-управляемые компоненты компьютера, поэтому он применяется для написания программ, использующих специфику конкретной аппаратуры. Ассемблер – это наиболее трудоемкий язык программирования, и из-за его низкого уровня не удается построить средства отладки, которые существенно снизили бы трудоемкость разработки программ. Программирование на ассемблере требует от программиста детальных знаний технических компонент персонального компьютера. Ассемблер используется в основном для системного программирования.
К классу машинно-ориентированных языков можно отнести языки группы С, С++, Турбо С. Эти языки являются результатом попытки объединить возможности ассемблера со встроенными структурами данных.
Класс универсальных языков программирования представлен наиболее широко: Бейсик, Фортран, Паскаль и др.
Исторически одним из самых распространенных языков стал Бейсик. Он прост в освоении и использовании. Написать на этом языке программу в 20-30 строк и получить результат можно за несколько минут. Для различных типов ПК разработаны различные версии языка Бейсик.
Паскаль является одним из самых распространенных, хотя он и создавался как учебный. Использование в структуре языка специального кода позволило в 4-5 раз уменьшить длину текста программы и в 4-5 раз увеличить быстродействие программы. Версия Паскаля для ПК – Турбо-Паскаль – характеризуется такими важными особенностями, как полноэкранное редактирование и управление, графика, звуковое сопровождение и развитые связи с DOS. Система программирования на Турбо-Паскале является резидентной программой. Это позволяет пользователю вводить тексты программ и немедленно их выполнять, не тратя времени на компилирование.
Язык Кобол был разработан специально для решения экономических задач. Он дает возможность составлять наиболее удобочитаемые программы, которые понятны и непрограммисту. В обработке данных сложной структуры Кобол бывает эффективнее Паскаля.
Фирмой IBM в развитие идей Фортрана, Алгола и Кобола был предложен язык PL/1, который получил наибольшее распространение на больших машинах. PL/1 разрабатывался как универсальный язык программирования, поэтому он располагает большим набором средств обработки цифровой и текстовой информации. Однако эти достоинства делают его весьма сложным для обучения и использования.
Класс проблемно-ориентированных языков программирования представлен языками Лого, РПГ и системой программирования GPSS. Язык Лого был создан с целью обучения школьников основам алгоритмического мышления и программирования. Лого – диалоговый процедурный язык, реализованный на основе интерпретатора с возможностью работы со списками и на их основе с текстами, оснащенными развитыми графическими средствами, которые доступны для детского восприятия. Этот язык реализован в большинстве ПК, применяемых в школах.
РПГ, или генератор отчетов, представляет собой язык, включающий многие понятия и выражения, которые связаны с машинными методами составления отчетов и проектирования форм выходных документов. Язык используется главным образом для печати отчетов, записанных в одном или нескольких файлах баз данных.
Система программирования GPSS ориентирована на моделирование систем с помощью событий. В терминах этого языка легко описывается и исследуется класс моделей массового обслуживания и другие системы, работающие в реальном масштабе времени.