Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИиП. Контент для студ-ов (фрагмент).docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
82.33 Кб
Скачать

Остаток по Теме 1

Представление алгоритма на языке программирования.

В этом случае учитываются строгие правила и особенности построения конструкций конкретного алгоритмического языка, на котором ведется программирование, а также допустимый набор функций и др.

Например, приведенный выше алгоритм на языке Турбо-Паскаль может быть реализован следующим образом:

PROGRAM SREDN;

LABEL M1;

VAR I: INTEGER; { индекс элемента }

A, N, S, X: REAL;

{ начало тела программы }

BEGIN

WRITE(`Введите количество чисел`);

М1: READ(N);

IF N<1 THEN BEGIN WRITELN(`Неверное задание N.`);

WRITELN(` П о в т о р и те !`);

GOTO M1

END;

S:=0.0; I:=1;

WHILE I<=N DO { начало цикла }

BEGIN READ(A);

S:=S+A;

I:=I+1

END; { конец цикла }

X:=S/N;

WRITELN(`X=`,X)

ЕND. { конец программы }

5. Общая характеристика языков программирования.

В основе языков программирования лежат парадигмы программирования.

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

Известно несколько основных парадигм программирования, важнейшими из которых на данный момент времени являются:

- проблемно-ориентированные;

- процедурно-ориентированные;

- универсальные;

- объектно-ориентированные.

Для реализации процедур программирования согласно той или иной парадигмы разработаны соответствующие группы языков программирования.

Язык программирования (иначе – алгоритмический язык) – это

набор символов и система правил образования и использования

составленных из них специальных конструкций,

предназначенных для задания алгоритмов и создания программ,

воспринимаемых ЭВМ.

Структура языков программирования представлена на следующем рисунке:

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Машинные Символические

Машино-независимые (языки высокого уровня)

)

Машино-ориентированные

(Ассемблер)

Автокоды

Проблемно-

ориентированные

Процедурно-ориентированные

Универсальные

Объектно-

ориентированные

Рис.8. Структура языков программирования

Машинный язык использует в качестве операторов машинные команды, представленные цифровым кодом, который известен ЭВМ и задает для нее информацию об одной операции, включая вид операции и номера ячеек (адреса) памяти, выделенных для исходных, промежуточных и результатных данных. С помощью машинного языка реализуется т.н. «ручное программирование», свойственное ранним стадиям применения вычислительной техники и отличающееся высокой трудоемкостью, неудобством для человека и зависимостью от конкретной ЭВМ (см. пример выше).

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

Об автокодах мы уже говорили.

Машино-ориентированные языки (типа Ассемблер), как видно из названия, предназначены для использования в определенном семействе ЭВМ и учитывают их структуру команд, памяти и др. Процесс программирования существенно упрощен, т.к. используется символьное обозначение команд и ячеек памяти, привычные для человека обозначения, а также т.н. «макросредства».

Машино-независимые языки (или языки высокого уровня) позволяют создавать программы независимо от структуры конкретной ЭВМ (в определенном смысле). Их команды преобразуются в машинные с помощью вычислительной системы, точнее, с помощью компилятора – специальной программы перевода исходного текста разрабатываемой программы в ее машинную версию. В результате упрощается процесс программирования, повышается наглядность и компактность записи алгоритма, уменьшается количество ошибок. Кроме того, значительно снижается трудоемкость, появляется возможность отражения особенностей определенного класса задач в составе средств языка и др.

Вместе с тем, отмечаются недостатки: снижается скорость выполнения программ и в большем объеме расходуется память.

Проблемно-ориентированные языки используются в частной области обработки данных и характеризуются наличием непроцедурных средств, позволяющих определить что должно быть сделано алгоритмом, а не как (!). Это языки РПГ (для генерации отчетов), ДИСОД (для формирования отчетов), генераторы сортировок, GPSS, СИМУЛА, СИНСКРИТ (для моделирования различных процессов) и т.п. Цель – в перспективе достичь автоматизации программирования.

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

Эффективность этих языков достигается включением в их состав специальных средств, учитывающих особенности конкретных классов задач. Так для математических, научно-технических и инженерных задач были созданы языки ФОРТРАН, АЛГОЛ-60, БЕЙСИК; для экономических – КОБОЛ, АЛГЭК; для обработки символьной информации – ЛИСП и т.д.

Универсальные языки программирования одинаково успешно применяются для решения любых задач и имеют соответствующие возможности. Это языки АЛГОЛ-68, АДА, ПЛ/1 и ПАСКАЛЬ, СИ.

В начале 80-х годов прошлого столетия появились т.н. объектно-ориентированные языки. Первоначально они использовались как инструмент для исследовательской работы, но в настоящее время завоевывают себе все большую популярность. В них применен принципиально новый подход к программированию, имеющий своим приоритетом не процедуры (преобразования), а «объекты». Последние содержат не только обрабатываемую информацию со своей структурой, но и правила ее поведения, оформленные в виде выполняемых фрагментов. При этом первичными считаются объекты (данные), которые могут активно взаимодействовать друг с другом с помощью механизма передачи сообщений (механизма вызова методов). Функция программиста в этом случае заключается в разработке и реализации таких объектов, взаимодействие которых после старта программы приведет к достижению необходимого конечного результата.

Представителями таких языков являются: СИ++, JAVA, DELPHI, Object-ПАСКАЛЬ, Turbo-Vision.