Информатика. Курс лекций. Громов Ю.Ю - 169 стр.

UptoLike

граммирования параллельных процессов, а также удобные средства для обработки особых случаев (называемых исключи-
тельными ситуациями), которые могут возникать при работе систем. Самая современная версия языка Ada, известная как
Ada 95, охватывает также объектно-ориентированную парадигму программирования.
Пример программы на языке Ada приведен на рис. Г.1.
Язык С был разработан в начале 1970-х гг. Деннисом Ритчи (Dennis Ritchie), работавшим в то время в компании Bell
Laboratories. Хотя первоначально язык С создавался для разработки операционных систем и компиляторов, он быстро полу-
чил популярность в среде программистов и приобрел дополнительные преимущества благодаря его стандартизации, выпол-
ненной Американским институтом национальных стандартов (ANSI – American National Standards Institute).
Язык С сначала рассматривался просто как некоторый шаг вперед по сравнению с машинным языком. По этой причине
его синтаксис более краток и выразителен, чем синтаксис других языков высокого уровня, использующих полные слова анг-
лийского языка для выражения тех языковых конструкций, которые в языке С представляются с помощью специальных сим-
волов. Эта лаконичность является одной из причин чрезвычайной популярности языка С, поскольку позволяет программи-
стам эффективно выражать сложные алгоритмы. (Часто краткое представление алгоритма более доступно пониманию, чем
его пространное описание.)
Пример программы на языке С приведен на рис. Г.2.
--Программа обработки списка
with TEXT_IO;
usе ТЕХТ_IO;
procedure MAIN is
subtype NAME.TYPE is STRING (1..8);
LIST_LENGTH: constant:=10;
NAMES: array (1..LIST_LENGTH) of NAME_TYPE;
PIVOT: NAME_TYPE; HOLE: INTEGER;
begin
--Прежде всего получаем список имен с клавиатуры
for К in 1 .. LIST_LENGTH loop
GET(NAMES(К));
end loop;
--Сортируем список (переменная HOLE содержит номер пропуска в
--списке с момента удаления элемента из списка и до момента
--его повторной вставки)
for N in 2 .. LIST_LENGTH loop
PIVOT := NAMES(N);
HOLE := N;
for M in reverse 1 .. N-l loop
if NAMES(M) > PIVOT
then NAMES(M+l) := NAMES(M);
else exit;
end if;
HOLE := M;
end loop;
NAMES(HOLE) := PIVOT;
end loop;
--Теперь печатаем отсортированный список
for К in 1 .. LI STRENGTH loop
NEW_LINE;
PUT(NAMES(K));
end loop;
end MAIN;
Рис. Г.1. Пример программы на языке Ada