- •«Паскаль»
- •Этапы полготовки и решения задач на компьютере.
- •Алгоритм. Основные свойства. Способы представления алгоритмов
- •Язык программирования Паскаль. Структура языка. Алфавит языка. Классификация данных и операторов.
- •Встроенные процедуры и функции языка Паскаль. Структура программы на языке Паскаль.
- •Var «список- объявлений переменных»
- •Сложные типы данных
- •Var а,в : mn ; { Переменные типа: mn }
- •Обработка данных
- •Организация обработки данных
- •Ввод-вывод данных. Основные виды работ с файлами любых типов. Основные понятия. Классификация файлов
- •Модульное программирование
- •Связанные структуры
- •Очередь
- •Объектно-ориентированное программирование
- •Инкапсуляция (Определение объекта)
- •Наследование и переопределение. Принцип конструирования программ
- •Полиморфизм
Алгоритм. Основные свойства. Способы представления алгоритмов
Понятие алгоритма - одно из основных понятий математики и вычислительной техники.
Алгоритм - это точное предписание по выполнению некоторого процесса обработки данных, который через разумное конечное число шагов приводит к решению задачи данного типа для любых допустимых вариантов исходных данных. Данные - это информация (числа, факты, характеристики явлений и пр.), представленная в формализованном виде.
Алгоритм обладает тремя основными свойствами: детерминированности, массовости и результативности.
Детерминированность (определенность) означает, что метод решения задачи должен быть дан в алгоритме способом, не допускающим различных толкований человеком, транслятором, компьютером.
Массовость означает, что алгоритм должен быть пригоден для любых допустимых вариантов исходных данных.
Результативность означает, что в итоге выполнения алгоритма должен быть получен результат за конечное число шагов.
Каждый алгоритм имеет вход и выход. Вход алгоритма - это совокупность его исходных данных. Множество допустимых значений переменных на входе алгоритма называют областью определения алгоритма. Выход алгоритма - это совокупность результатов его работы.
Алгоритм может быть представлен словесным описанием, в виде схем и на алгоритмическом языке, в том числе на машинном.
Словесные описания, даже при наличии формул, могут не дать точной последовательности этапов процесса обработки данных. Словесная форма обычно используется для алгоритмов, ориентированных на исполнителя - человека.
По словесному описанию не всегда возможна формализация процесса решения задачи. Наиболее универсальное средство представления алгоритма, пригодное для использования при программировании на любых алгоритмических языках, -это схемы алгоритмов и программ.
Схема алгоритма - это графическое представление его структуры. Она представляет собою направленный граф, в котором этапы процесса обработки данных изображены в виде определенных геометрических фигур соединенных линиями со стрелками. Схемы пригодны и необходимы для разработки алгоритмов и программ любой сложности. По квалифицированно разработанной схеме легко и просто писать тексты программ.
Но получить правильную и лаконичную программу сложного алгоритма без схемы практически невозможно. Кроме того, применение схем обеспечивает высокую живучесть программ, так как упрощает освоение алгоритмов и программ в процессе их сопровождения.
Программное обеспечение компьютера. Основные понятия.
Программное обеспечение (ПО, software) компьютера - это совокупность взаимодействующих друг с другом программ, их описаний и руководств, предназначенных для эффективного использования вычислительных систем (ВС).
Для первых компьютеров программы писали в машинных командах компьютера. Затем их набивали на перфоленты, вводили в компьютер, отлаживали и выполняли. Потом появились стандартные подпрограммы и библиотеки подпрограмм. Например, для вычисления тригонометрических функций, решения систем алгебраических или дифференциальных уравнений.
Для подключения подпрограмм из библиотек были разработаны программы-компоновщики (редакторы связей). Они "собирали" программу из частей в единое целое.
Так как программирование в кодах было сложно и занимало много времени, разработали языки высокого уровня и программы-трансляторы для перевода текстов с алгоритмического языка на машинный.
Вначале появились машинно-ориентированные языки: ассемблер, автокоды. Затем процедурно-ориентированные (Фортран, Алгол, ПЛ-1, Паскаль и др.).
Усложнился процесс выполнения программ и работа оператора компьютера. Для ее упрощения были разработаны программы, частично заменяющие труд оператора компьютера. Их назвали мониторами (диспетчерами, супервизорами). Постепенно эти программы развились в современные операционные системы (ОС).
Типы программного обеспечения. Системы программирования. Качество программ.
Программы можно разделить на 3 типа: прикладные программы, системные программы, инструментальные системы.
Прикладные программы обеспечивают выполнение работ, необходимых пользователю: редактирование текстов, рисование картинок, обработку массивов данных и т. д. Это могут быть: редакторы текстов, графические редакторы, издательские системы, системы деловой и научной графики, системы автоматизированного проектирования (САПР), бухгалтерские системы и пр.
Система программирования - это язык и средства разработки прикладных программ. Современное инструментальное средство для разработки программ представляет собою интегрированную среду, которая строится на интерактивном принципе, обеспечивающем комфортную обстановку для программиста.
Она предназначена для повышения эффективности программирования и обеспечивает полный набор действий для разработки программы и анализа результатов ее выполнения. В состав современной интегрированной среды разработки программ входят: текстовый редактор, транслятор, редактор связей, библиотеки подпрограмм, программа-отладчик, развитая система помощи и подсказок.
Существующие системы программирования делятся на компилирующие и интерпретирующие в соответствии с типом их трансляторов.
Трансляторы - это программы, которые переводят текст, с языка программирования на машинный. Они могут быть двух типов: компиляторы и интерпретаторы.
Компилятор - это транслятор, в котором трансляция и выполнение программы разнесены во времени: сначала весь текст транслируется, без выполнения программы, полученной в результате ее трансляции, а затем полученная программа выполняется.
Интерпретаторы - это трансляторы, в которых текст транслируется и выполняется пооператорно, т. е. трансляция и выполнение операторов программы совмещены во времени. Примеры компиляторов - это компиляторы с языков Паскаль и Си. Пример интерпретатора - интерпретатор команд ОС.
Жизненный цикл программ в общем случае состоит из трех фаз: разработки, использования и сопровождения (продолжающейся разработки).
Как показывает опыт разработки программных систем широкого использования, основные затраты приходятся не на разработку, не на отладку программ, а на их сопровождение. На этапе сопровождения могут быть обнаружены и устранены ошибки программ и производиться адаптация ПО на новые области их применения.
Основные характеристики качества программ: правильность (соответствие техническому заданию), минимальные запросы к ресурсам ВС (оперативной памяти (ОП), времени счета), структурированность, модульность, надежность, легкость освоения, простота и удобство использования, адаптируемость на новые области применения, экономическая эффективность (минимальная стоимость разработки, освоения и сопровождения).
Периодичность использования программ может быть от многократного использования в течение дня (например, транслятора) до нескольких раз в год (например, квартальные экономические отчеты), в зависимости от области их применения.
Языки программирования.
Алгоритмический язык - это набор символов, являющихся алфавитом языка, система правил связи символов для образования "слов" и "предложений" (синтаксис языка), с помощью которых представляются компоненты языка, и система правил их истолкования (семантика).
Исходная программа - это программа, написанная на одном из языков программирования; рабочая (выполнимая) программа - это программа на машинном языке. Другими словами, исходная программа - это последовательность операторов, которая обрабатывается транслятором и редактором связей, и после декодирования команд вычислительной машиной заставляет компьютер выполнить заданную работу.
Наиболее общей классификацией языков программирования является классификация по степени зависимости от машинного языка.
Машинно-ориентированные языки - это мнемокоды, автокоды, языки ассемблера. В них коды операции и адреса операндов представляются идентификаторами и числами.
Программа при этом состоит из тех же элементарных команд, что и на машинном языке, но используются символические адреса и мнемокоманды.
Проблемно-ориентированные языки предназначены для пользователей, не умеющих программировать. Это могут быть, например, работники производственных и административных органов управления, менеджеры, врачи и пр. Эти языки направлены на решение узкого класса задач. На них определяется, что делать, а не как это делать, в терминах, характерных для данной проблемной области.
Для работы с проблемно-ориентированным языком должны быть разработаны программы для анализа запросов пользователя, контроля допустимости вводимых данных и для решения поставленной задачи.
Перспектива развития прикладного ПО, использующего проблемно-ориентированные языки, направлена на разработку программных систем для использования их непрограммистами.
Процедурно-ориентированные языки - это машинно-независимые языки для описания алгоритмов решения задачи. С их помощью описывается процесс обработки данных в терминах языка. Тексты на этих языках определяют как реализуется алгоритм обработки данных в виде процедур обработки данных. Примеры процедурно-ориентированных языков: Фортран, Алгол-60, ПЛ-1, Кобол, Паскаль, Си. Их достоинства: высокая производительность и возможность переноса программы с одного компьютера на другой (в случае наличия транслятора с этого языка). Недостаток - сложность языков.
Фортран (FORmula TRANslation language) - это первый язык программирования высокого уровня с элементами машинно-ориентированного языка. Разработан сотрудниками фирмы IBM в 1954 г. В 1957 г. разработан первый транслятор с Фортрана. Фортран имеет обширную библиотеку научных подпрограмм. Язык предназначен для решения численных задач.
Алгол-60 создан в 1960 г. Он также предназначен для решения численных задач. В середине 60-х гг. фирмой IBM разработан универсальный язык ПЛ-1.
Лекция №2
