Раздел 3. Основы алгоритмизации и программирования
Определение 1. ПРОГРАММА – это логически упорядоченная последовательность команд, необходимых для управления компьютером при решении определенной задачи или комплекса задач.
Команды, поступающие в компьютер, являются электрическими сигналами, которые представляются как совокупность двух цифр: 0 и 1. Т.е. разным командам соответствует разная совокупность чисел. Поэтому в компьютере программа представляет собой последовательность чисел, называемую машинным кодом.
Управление компьютером происходит по определенному алгоритму.
Определение 2. АЛГОРИТМ – это последовательность операций конкретного способа решения задачи.
Этапы решения задач на ЭВМ:
- Постановка задачи (словесное описание задачи, определение целей, искомых и исходных данных).
- Формализация задачи (от словесной формулировки к мат. Модели)
- Выбор метода решения задачи.
- Описание алгоритма и построение его блок-схемы
- Программирование задачи (выбор языка программирования и написание программы)
- Ввод программы в компьютер и ее отладка
- Получение и анализ результатов.
В основе решения любой задачи лежит понятие алгоритма. Под алгоритмом принять понимать « точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату». Таким образом, алгоритм должен содержать конечную последовательность шагов или операций, однозначно определяющих процесс переработки исходных и промежуточных данных в искомый результат.
Свойства алгоритма:
- Алгоритм должен быть однозначным, исключающим произвольность толкования любого из предписаний, и заданного порядка исполнения. Это свойство алгоритма называется определенностью.
- Реализация вычислительного процесса, предусмотренного алгоритмом, должна через определенное число шагов привести к выдаче результатов или сообщения о невозможности решения задачи. Это свойство алгоритма называется результативностью.
- Решение однотипных задач с различными исходными данными можно осуществлять по одному и тому же алгоритму, что дает возможность создавать типовые программы для решения задач при различных вариантах задания значений исходных данных. Это свойство алгоритма называется массовостью.
- Предопределенный алгоритмом вычислительный процесс можно расчленить на отдельные этапы, элементарные операции. Это свойство алгоритма называется дискретностью.
Блок-схема алгоритма — графическое представление алгоритма с помощью определенных обозначений.
Основные типы вычислительных процессов.
- Линейным называется такой вычислительный процесс, в котором самостоятельные этапы вычислений выполняются в линейной последовательности их записи (т.е. в естественном порядке).
- Вычислительный процесс называется ветвящимся, в зависимости от исходных условий или промежуточных результатов он реализуется по одному из нескольких, заранее предусмотренных ( возможных) направлений. Каждое направление называется ветвью вычисления
- Алгоритм, в котором предусмотрено неоднократное выполнение одной и той же последовательности действий, называется циклом.
Для представления алгоритма в виде, понятном компьютеру служат языки программирования.
В начале всегда разрабатывается способ решения задачи и по нему определяется алгоритм действия, а затем этот алгоритм записывается на одном из языков, понятном компьютеру. В итоге получается законченное и детальное описание алгоритма на языке программирования. Затем текст этой программы специальными служебными программами, которые называются ТРАНСЛЯТОРАМИ, переводится в машинный код и исполняется.
Определение 3. Язык программирования – это искусственный язык с ограниченным числом слов, значения которых строго и однозначно фиксированы транслятором и подчинены строгим правилам записи команд.
Совокупность таких требований по языку программирования составляет синтаксис языка, а смысл каждой команды представляет семантику языка. Любое нарушение формы записи программы приводит к тому, что транслятор не понимает назначение команды и выдает сообщение об ошибке.
Определение. 4. Процесс поиска ошибок в программе называется тестированием, а процесс устранения ошибок называется отладкой программы.
Перевод всего текста программы на машинный код и автоматический поиск ошибок в ней, а также ее оптимизация с целью повышения быстродействия осуществляется программой – компилятором.
Если программа не переводится в машинный код, сразу происходит исполнение ее команд, то для осуществления такой операции служат программы – интерпретаторы.
В реальных машинах технологии компиляции и интерпретации перемешаны или обобщены одной программой – транслятором.
Алгоритмические языки. Классификация языков программирования
Для написания программы существуют различные языки программирования, которые подразделяются на языки низкого и высокого уровня.
Язык программирования — формализованный язык для описания алгоритма решения задачи на компьютере.
Определение. 5. Язык программирования низкого уровня близок к машинному коду и ориентирован на конкретный тип процессора.
Примером языка низкого уровня является язык АССЕМБЛЕР, созданный по принципу: «одна инструкция – одна строка».
Определение. 6 . Язык программирования высокого уровня ближе и понятен человеку и особенности архитектуры конкретных вычислительных систем в нем не учитываются.
С помощью языка программирования создается не готовая программа, а только ее текст, описывающий ранее разработанный алгоритм. Чтобы получить работающую программу, надо этот текст перевести в машинный код (для этого служат программы – компиляторы) и затем использовать отдельно от исходного текста, либо сразу выполнять команды языка, указанные в тексте программы (этим занимаются программы- интерпретаторы).
Языки программирования, если в качестве признака классификации взять синтаксис образования его конструкций, можно условно разделить на классы:
- машинные языки- языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);
- машинно-ориентированные языки- языки программирования, которые отражают структуру конкретного типа компьютера (ассемблеры);
- алгоритмические языки — не зависящие от архитектуры компьютера языки программирования для отражения структуры алгоритма (Паскаль, Бейсик, Фортран и др.);
- процедурно-ориентированные языки- языки программирования, где имеется возможность описания программы как совокупности процедур (подпрограмм);
- проблемно-ориентированные языки- языки программирования, предназначенные для решения задач определенного класса (Лисп, РПГ, Симула и др.);
- интегрированные системы программирования.
К языкам высокого уровня можно отнести следующие языки программирования:
Fortran (фортран) – это первый компилируемый язык, у которого удобство написание программ было принесено в жертву получения эффективного машинного кода. Для написано большое количество различных библиотек программ.
Cobol (кобол) – это компилируемый язык, предназначенный для решения экономических задач. Его операторы имеют вид обычных английских фраз. На этом языке организованы программные средства работы с большими объемами данных, хранящихся на различных ванешних носителях.
Algol (алгол) — компилируемый язык предназначался для замены фортрана, но из-за более сложной структуры не получил широкого распространения.
Pascal (паскаль) — во многом похож на Алгол, но имеет более жесткие требования к структуре программы и имеет более широкие возможности по созданию крупных проектов
Basik (бэйсик) – язык, имеющий и компиляторы и интерпретаторы , занимающий первое место по популярности.
C (Си) – создан был для замены ассемблера с целью создания программ независимо от типа используемого процессора.
Макрос — это набор команд на языке Visual Basic, и создать его можно либо автоматически (когда приложение просто регистрирует выполняемые вами действия), либо написать вручную.
Языки программирования баз данных
Определение 7. База данных – это отдельный файл или группа файлов, представляющих собой упорядоченный набор записей, имеющий единообразную структуру и организованных по единому шаблону, как правило в табличном виде. Базы данных используются для хранения сведений из справочников, картотек, журналов бухгалтерского учета.
При работе с базами данных часто используются следующие операции:
1. Сохранение и удаление таблиц или их частей.
2. Поиск и сортировка записанной информации по различным признакам
Для работы с базами данных созданы следующие языки:
СУБД – система управления базами данных, предназначен для управления и эффективной обработки баз данных.
SQL — структурированный язык запросов, манипулирующий группами записей.
Языки программирования для Интернета
Эти языки имеют интерпретаторы и разработаны специально для Интернета, называются скрипт-языками.
НТМL – Язык для оформления документов.
Perl – язык для работы с массивами данных и системной информацией.