
- •Содержание
- •Предисловие научного редактора
- •Введение
- •1. Понятие алгоритма. Способы представления алгоритмов
- •В виде компьютерной программы:
- •2. Свойства алгоритмов
- •Язык графического представления алгоритмов
- •4. Общие принципы построения программ
- •5. Структура программы на языке паскаль
- •6. Классификация типов данных, используемых в языке паскаль
- •6.1. Символьный тип
- •6.2. Числовые типы
- •6.2.1. Целые типы
- •6.2.2. Вещественные типы
- •6.3. Логический тип
- •6.4. Типы данных, определяемые программистом
- •7. Основные операторы языка паскаль.
- •7.1. Операторы (процедуры) ввода – вывода
- •7.2. Оператор присваивания
- •7.3. Условный оператор
- •Первый вариант условного оператора:
- •If условие then оператор1 else оператор2;
- •Второй вариант условного оператора (сокращенная форма):
- •If условие then оператор1;
- •If условие1 then
- •If условие2 then оператор21 else
- •If условие3 then оператор31 else
- •7.4. Оператор выбора case
- •7.5. Операторы цикла
- •7.5.1. Оператор цикла с параметром
- •Параметр цикла I меняет свои значения только автоматически, при переходе к следующему шагу цикла. Изменения параметра цикла I в теле цикла запрещены.
- •7.5.2 Оператор цикла с предусловием оператор цикла с предусловием имеет структуру:
- •7.5.3. Оператор цикла с постусловием
- •8. Структурированные типы данных
- •8.1. Массивы
- •8.2. Записи
- •8.3. Файлы
- •2.Связать файловую переменную с именем файла на диске с помощью процедуры Assign(фп, ‘имя_файла_на диске’).
- •3. Открыть файл:
- •4. Выполнить работу с файлом.
- •Закрыть файл при окончании работы: Сlose(фп);
- •9. Процедуры и функции
- •9.1. Процедуры
- •Var I:integer; {I – локальная переменная}
- •9.2. Функции
- •2)Имя функции входит составной частью (как переменная) в некоторое выражение.
- •Задание к лабораторной работе №2.
- •Часть 1. Тема: вычисление по формулам и представление результатов с учетом форматного вывода.
- •Часть 2. Тема: Циклические вычисления с учетом диапазона типа данных и выдача результатов вычислений по шагам.
- •Задание к лабораторной работе №3.
- •Часть 1 .
- •Часть 2.
- •Задание к лабораторной работе №4.
- •Лабораторная работа №5.
1. Понятие алгоритма. Способы представления алгоритмов
Понятие алгоритма. В основе решения задач на компьютере лежит понятие алгоритма. Существует несколько определений алгоритма, раскрывающих его свойства и особенности.
В ГОСТе 19.781-74 понятие алгоритма приближено к его выполнению в виде программы на ЭВМ: «Алгоритм – это точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату».
Более общим является следующее определение: Алгоритмом называется общепонятная последовательность действий, записанная на некотором языке, приводящая к результату. Другими словами, алгоритм – это предписание того, какие действия и в какой последовательности надо выполнять, чтобы достичь результата. Кому же последовательность действий должна быть общепонятной? Алгоритм всегда формируется в расчете на конкретного исполнителя, понимающего предписания (команды) и выполняющего их точно, без каких-либо отклонений. Исполнителем может быть человек, автоматическое устройство, робот, компьютер или любой другой объект, способный воспринять предписания и выполнить указанные в них действия. В зависимости от исполнителя, то есть от средств реализации алгоритма можно различать следующие способы представления алгоритмов:
Вербальный – словесное описание на естественном человеческом языке. Например, описание того, как доехать из дома до вуза. Естественно, такое представление алгоритма должно быть понятно человеку, знающему язык, на котором излагается алгоритм.
В виде формулы – описание в символах математического языка). Вычисление по формуле позволяет найти значение некоторой величины (функции) от значений других величин – независимых параметров (аргументов). Например, зависимость силы тяжести от массы P=mg.
В виде системы условий, соотношений, в частности, уравнений – описание в символах математического языка. Проверка этих условий, соотношений при подстановке конкретных значений величин, входящих в эти условия или соотношения, позволяет установить или опровергнуть их справедливость, а для уравнений – решая систему уравнений, найти корни уравнений (предполагается, что способ решения системы уравнений известен, иначе см. следующий пункт).
В виде описания последовательности операций, обеспечивающих достижение конкретного результата (для системы уравнений – это последовательность, реализующих некоторый метод решения системы уравнений, в частности, это циклически повторяющаяся последовательность операций – для итерационных методов решения системы уравнений).
В виде схемы (графическое представление алгоритма), компонентами которой являются блочные символы, соединенные между собой стрелками, указывающими порядок выполнения операций и дополненными словесными и математическими записями (см. главу 3). Схемы алгоритма обычно предшествуют этапу программирования.
В виде компьютерной программы:
на алгоритмическом языке высокого уровня, например, на языке Паскаль, С++, Фортран, Ада, Пролог или
на машинно-ориентированном языке типа ассемблера – описание в символах и операторах команд процессора или
на внутреннем языке компьютера – в виде последовательности кодов (в двоичной или 16-тиричной системе счисления) команд процессора.
Каждый из способов представления алгоритма предполагает знание соответствующего языка и умение читать и понимать, а также выполнять действия, предписываемые алгоритмом. Таким образом, алгоритм, понятный для ЭВМ – это программа на языке процессора данной ЭВМ.
Язык процессора – это набор из нескольких сотен команд, каждая из которых выполняет некоторую элементарную операцию. В зависимости от типа выполняемой операции все команды процессора можно разделить на группы:
команды арифметических операций;
команды логических операций;
команды ввода и вывода данных;
команды пересылки информации между различными видами памяти (оперативной, дисковой, КЭШ-памяти и т.д.);
команды обращения к подпрограммам;
команды управления (изменения последовательности) выполнения команд программы (например, команды условного и безусловного перехода);
специальные команды (например, команды приостановки или прерывания выполняемой программы).
Однако разработка программы на языке процессора – дело трудоемкое, требует высокой квалификации системного программиста. Для повышения скорости программирования и независимости программы от конкретной машины, для наглядности представления и для удобства редактирования программ применяются так называемые языки высокого уровня или алгоритмические языки. Оператору языка высокого уровня, как правило, соответствует некоторая совокупность команд процессора. Преобразование программы с языка высокого уровня на язык процессора (на внутренний язык компьютера) называется в общем случае трансляцией и для большинства языков программирования (в частности, для языка Паскаль) - компиляцией.
При компиляции выполняются следующие группы действий:
проводится анализ текста программы, записанной на языке высокого уровня, с целью проверки синтаксиса:
если обнаружена хотя бы одна ошибка, то процесс компиляции прерывается, система возвращает программу в режим редактирования исходного текста программы, в которой курсор указывает на строку, в которой содержится ошибка и, кроме того, выдается выделенное цветом сообщение с указанием кода ошибки и ее содержания; программисту следует внести исправления в тексте программы и снова запустить режим компиляции программы;
если синтаксических ошибок не обнаружено, то компилятор переходит к группе действий п.2;
2) выполняется перевод операторов программы с языка высокого уровня на внутренний язык ЭВМ (см. выше п. 6 ), при этом каждому оператору языка высокого уровня соответствует определенная последовательность более простых операторов (команд процессора);
3) если в тексте компилируемой программы встречается имя стандартной подпрограммы (функции или процедуры, предусмотренной в языке), то компилятор обращается к соответствующему разделу памяти ЭВМ, в котором хранится библиотека подпрограмм на машинном языке, копирует эту подпрограмму и вставляет ее в соответствующий участок формируемой на машинном языке программы, то есть третья группа действий связывает машинную реализацию компилируемой программы с библиотекой стандартных процедур и функций.
Результатом этих действий является получение исполняемого (загрузочного) файла программы, имеющего то же имя, что и файл исходной программы (на языке высокого уровня), но с расширением .exe (о файлах и о типах расширений файлов см. 8.3). Процесс трансляции (компиляции) выполняется специальной программой, которая называется транслятором (компилятором). Программа-компилятор является частью общей системы (среды) программирования, которая имеет приставку Турбо-, то есть такие системы называются Turbo-Pascal, Turbo-C. Кроме программы-компилятора, в эту систему входят средства редактирования и отладки пользовательских программ, средства отображения процессов и результатов выполнения программы. Учитывая ограничение объема данного пособия, описание среды программирования здесь не приводится. Для изучения возможностей среды Turbo-Pascal рекомендуем [1].