Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Черновик_пособия_ВСиС.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
643.58 Кб
Скачать

1.2Внешняя обработка данных

1.2.1Алгоритмы и структуры данных

Любая программа составлена в соответствии с некоторым алгоритмом. Алгоритм [algorithm] – это конечный набор предписаний, для которого указано, как и в какой последовательности эти предписания необходимо применять к исходным данным задачи, чтобы получить её решение. Алгоритм – это общий метод решения задачи, конкретное выражение которого будет оформлено в виде программы. Алгоритм даёт возможность чисто механически решать любую задачу из некоторого класса однотипных задач. К алгоритмам предъявляется целый ряд условий, например, алгоритм должен быть корректным, алгоритм должен решать задачу за определённое время и расходовать определённый размер памяти и т.д.

С алгоритмами любой человек имеет дело с детства. Алгоритмы изучаются в начальной школе.

Пример

Здесь представлены различные алгоритмы для сложения чисел.

1) сложение в десятичной системе

53625

+ 345

------

53970

2) сложение в двоичной системе

011

+ 01

-----

100

3) сложение дробей

5/3 + 7/2 = 31/6

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

Пример

Алгоритм сложения чисел зависит от того, как эти числа представлены. Например, целые числа можно представит как набор чёрточек (подобно латинским цифрам). Алгоритм сложения будет очень простым, но вместе с тем очень громоздким для больших чисел.

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

Алгоритм может быть описан различными способами: формульно, графически, посредством некоторого языка программирования. Язык программирования [algorithmic language] – это система обозначений, предназначенная для точного описания алгоритмов для ЭВМ.

Пример

Рассмотрим задачу вычисления квадратного корня из некоторого положительного вещественного числа:

.

Такая задача решается с помощью алгоритма Герона. В формульной записи этот алгоритм будет иметь вид:

.

Имея некоторое начальное приближение, можно уточнить значение корня, а затем вновь повторить этот процесс. Алгоритмы такого рода имеют название циклических.

В графическом представлении алгоритм будет иметь более наглядную форму.

На алгоритмическом языке BASIC алгоритм может быть реализован следующим образом:

while(1)

y=y0

y=(y0+x/y0)/2

y0=y

wend

Разумеется, в реальной программе должен быть обеспечен выход из цикла. Алгоритм Герона используется при реализации библиотек стандартных математических функций.

1.2.2Программирование и языки программирования

Программирование [programming] в самом простом понимании представляет собой создание программ. Программирование есть реализация алгоритмов. Более точно программирование заключается в отображении в памяти ЭВМ цифровых данных о реальных объектах и в описании инструкций по управлению этими данными на некотором языке программирования.

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

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

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

На сегодня имеется более 1000 языков программирования. В процессе своего развития языки программирования в значительной степени были адаптированы к алгоритмам. Если ранее (до 80-х гг.) языки использовались для решения конкретных задач в различных специализированных областях (Algol, Fortran – для научно-технических вычислений, LISP – для символьной обработки, Cobol – для коммерческих вычислений, Simula – для моделирования и т.д.) и в значительной степени отличались друг от друга, то существующие сегодня универсальные языки программирования (Pascal, Modula-2, Ada, Fortran-80) имеют гораздо меньшие различия.

Главными критериями при различии языков программирования являются уровень и стиль программирования.

До настоящего времени отсутствуют чёткие теоретические определения уровня программирования, однако можно выделить следующий практический принцип, по которому для любого языка этот уровень может быть указан. Если при программировании используются средства работы с данными во внутреннем представлении или средства, которые могут учитывать конструктивные особенности ЭВМ, то такое программирование является низкоуровневым или системным. Заметим, что многие языки высокого уровня имеют в своём составе такие средства, поэтому говорить об уровне языка программирования можно, лишь имея в виду те программы, для написания которых он используется.

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

  • процедурное;

  • функциональное;

  • логическое;

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]