Смекни!
smekni.com

Курс лекции по Информатике (стр. 3 из 11)

Наиболее распространенными языками программирования сегодня являются объектно-ориентированные я.п. Основным понятием в таких языках является объект или класс, который описывается набором свойств (данных) и функций (операций). Между различными объектами могут устанавливаться отношения различного типа, например, А вызывает функции из B, А создает несколько экземпляров В, А включает B в качестве элемента, А – это одно из В и т.д. Таким образом, основной задачей программиста, использующего объектно-ориентированный язык, является определение ключевых понятий прикладной задачи, описание их в виде объектов и в установлении взаимосвязи между ними.

Во время дефицита машинного времени к я.п. пре­дъявлялось, как одно из основных, требование возможности построения таких трансляторов с них, которые могли бы со­ставлять эффективные рабочие программы, сравнимые с про­граммами, составляемыми искусными программистами. В на­стоящее время критерием эффективности использования ЭВМ становится время, затрачиваемое на решение задачи от ее постановки до получения результатов в надлежащей форме. Объектно-ориентированными языками являются C++, последние версии языка PASCAL.

В связи с этим перед языками программирования, вы­двигается новая цель - упростить программирование, быть может, даже за счет известной потери эффективности исполь­зования ЭВМ. Задача оптимизации тем самым отделяется от задачи составления работающей программы. Для реализации обширных средств, представляемых новыми объектно-ориентированными языками, первостепенное значение приобретает задача автоматизации процесса проектирова­ния программ и создания соответствующих систем автоматического программирования, а также проблема построения автомати­зированных систем обучения языкам пользователей ЭВМ. Такие системы получили название интегрированной среды разработчика приложений. Наиболее известны такие из них как BORLAND C++, BORLAND DELFI, BORLAND C++ BUILDER, MICROSOFT VISUAL C++, MICROSOFT VISUAL BASIC и другие. Каждая из этих систем включает в себя редактор исходных текстов программ, компилятор, компоновщик, отладчик, библиотеки классов и функций, справочную систему помощи и другие элементы.

Лекция 4

Понятие программы и процедуры

Программа вычислительной машины - описание алгоритма решения задачи, заданное на языке вычислительной машины. Это описание представляет собой задаваемую вычислительной машине инструкцию, указывающую, в какой после­довательности, над какими данными и какие операции дол­жна выполнить машина и в какой форме выдать результат.

Программа на языке вычислительной машины представляет собой последовательность числовых кодов, и ее составляют вручную или при помощи трансляторов, для которых алгоритм задачи записывается на соответствующем языке программирования.

Процедура в программировании - понятие, исполь­зуемое в большинстве языков программирования высокого уровня и соответствующее понятию подпрограммы. Исполь­зование каждой процедуры связано с ее описанием и обра­щением к ней. Описание процедуры состоит обычно из за­головка и ее тела. Заголовок содержит идентификатор, совокупность формальных параметров и, возможно, некото­рые их характеристики. Тело процедуры - это некоторая последо­вательность операторов. Обращения к процедуре осуществляется из соответствующих точек программы посредством указания ее идентификатора и фактических параметров. Особый случай представляет рекурсивная процедура и процедура без параметров, обращение к которой содержит лишь ее идентификатор.

Рекурсивная процедура - процедура в программировании, в описании которой содержится явное обращение к ней самой непосредственно или с помощью другой процеду­ры. Использование рекурсивной процедуры во многих случа­ях позволяет придавать алгоритмам компактную и наглядную форму. Рекурсивные процедуры, в частности, используются для описания алгоритмов вычисления значений функций, за­даваемых рекуррентными соотношениями, например, вычисление факториала n!=F(n); F(n)=n×F(n-1); F(0)=1.

Использование рекурсивных процедур связано с многократным (рекурсивным) входом в процессе выполнения программы в один и тот же блок до выхода из него. Число рекурсивных входов называется уровнем рекурсии. На разных уровнях рекурсии одинаковые величины, локализованные в блоке, имеют, вообще говоря, разные значения. Эта особенность рекурсивных процедур затрудняет их реализацию.

Основные типы алгоритмов

Как отмечалось выше, правила преобразования информации в различных алгоритмах весьма разнообразны и качественно различны. Однако все конкретные алгоритмы могут быть составлены из весьма небольшого числа элементарных предписаний.

Рассмотрим пять типовых алгоритмов:

1) СЛЕДОВАНИЕ – это алгоритм, в котором действия (операторы) следуют (выполняются) одно за другим: P1, P2 и т.д.

2) ЕСЛИ-ТО-ИНАЧЕ – это алгоритм, в котором задано некоторое условие. Если это условие выполняется (то есть оно истинно), то выполняется оператор P1. Если это условие не выполняется (то есть оно ложно), то выполняется оператор P2. Допускается укороченный вариант этого типового алгоритма. ЕСЛИ-ТО – это алгоритм, в котором при выполнении условия выполняется оператор P1, а при невыполнении условия управление просто передается на следующий за данным блок (в данном случае типовой алгоритм ЕСЛИ-ТО не производит никаких действий).

3) ДЕЛАТЬ-ПОКА – это алгоритм, в котором оператор P (или группа операторов) выполняется многократно, пока выполняется условие и управление передается на следующий за данным блок, в случае если условие не выполняется. В данном алгоритме возможен случай, когда оператор P не выполняется ни одного раза. В этом случае условие сразу ложно.

4) ДЕЛАТЬ-ПОКА-НЕ – это алгоритм, в котором оператор P выполняется всегда хотя бы один раз, а затем, пока выполняется условие, выполнение оператора P повторяется. Как только условие станет ложным, повтор выполнения оператора P прекращается и управление передается на следующий блок.

5) ВЫБОР – это алгоритм, в котором в зависимости от значения некоторой наперед определенной переменной (величины) M выбирается один из операторов P1,P2,…,PN и после его выполнения управление передается на следующий по порядку блок.

Эти типовые алгоритмы могут быть использованы при проектировании алгоритмов обработки информации (данных) на ЭВМ. Именно эти типовые алгоритмы и реализованы в современных языках программирования, например, в языке Си.

Способы описания алгоритмов

Существует несколько способов для описания алгоритмов, например, операторный способ, в виде блок-схем, на алгоритмических языках, на языках программирования и т.д. Большое распространение получила графическая запись структу­ры алгоритмов в виде блок-схем. Алгоритм в этом случае представляется графически в виде последовательности блоков, выполняющих определенные функции. Ниже представлены основные символы блок-схем:

Блоки соединяются линиями со стрелками, показывающими связь между ними. Если соединения слева направо и сверху вниз, то стрел­ки на линиях соединения не рисуются. Внутри блоков указывается информация, характеризующая выполняемые ими функции, ко­торая записывается словесно или с помощью формул. Все блоки блок-схемы алгоритма имеют сквозную нумерацию.

Лекция 5

Этапы решения задач на ЭВМ

Решение задач на ЭВМ представляет сложный процесс, кото­рый состоит из ряда этапов:

1. Математическая формулировка задачи;

2. Выбор численного метода решения задачи;

3. Разработка алгоритма решения задачи;

4. Описание алгоритма решения задачи на языке конкретной машины или на языке программирования в виде программы,

5. Отладка программы;

6. Решение задачи на ЭВМ.

Математическая формулировка задачи. Сама задача возника­ет, когда в реальном мире складывается новая ситуация и человек осознает это изменение. Возможно, при этом прихо­дится вырабатывать целую систему новых понятий, но гораздо чаще ситуация описывается в терминах уже сложившихся поня­тий. В результате этого процесса возникает постановка зада­чи. Если задача должна быть решена математически, а только такие задачи мы и рассматриваем, то постановка задачи должна быть формализована, то есть, выражена в терминах математи­ческих понятий. Не исключено, конечно, что задача с самого начала возникла как математическая задача, т.е. уже в фор­мальной постановке. Итак, на этом этапе устанавливаются в конечном виде те формулы и математические зависимости, ко­торые подлежат решению.