Контрольные по информатике

Контрольные по информатике

Отечественное программирование зародилось в 50-х годах 20 века в

крупных научных центрах, осваивавших первые советские вычислительные машины

БЭСМ и «Стрела».

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

ступенями становления программиста:

Бэйсик — первая ступень, школьная информатика;

Паскаль — вторая ступень, информатика в специализированных школах и

большинстве ВУЗов;

Си, Си++ — третья ступень, стандартное профессиональное образование;

Visual Basic — четвертая ступень, программирование в среде Windows.

Однако при более глубоком анализе можно заметить очень тесное

взаимопроникновение современных версий алгоритмических языков и сближение

их функциональных возможностей. В развитых современных системах

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

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

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

языка). Иногда тот или иной язык вырывается вперёд. Например, появление и

развитие элементов объектно-ориентированного программирования в Си++

моментально вызвало к жизни аналогичные изменения в других языках.

Революционная идея общедоступного «визуального» программирования,

предложенная в системе Visual BASIC, сразу же была подхвачена в среде

Visual Сив той или иной мере нашла своё отражение в новых версиях Borland

C++.

Поэтому, в каком-то смысле, все достаточно универсальные алгоритмические

языки одинаковы. Хорошее знание одного из них позволяет сравнительно просто

разобраться с изобразительными средствами другого. Это напоминает ситуацию

с полиглотами, знающими один-два десятка иностранных языков, для которых

овладение очередным языком требует не более одного-двух месяцев. В

подтверждение этого тезиса в книге даётся параллельное изложение

соответствующих компонентов трёх алгоритмических языков - Бейсика, Си и

Паскаля, при этом лишь изредка обращается внимание на небольшие или

принципиальные различия между ними.

Программирование в среде Visual BASIC вынесено в отдельный раздел, т. к.

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

специфика структуры программы, работающей под управлением Windows, и

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

диалогового взаимодействия с пользователем.

Своим названием BASIC обязан сокращению фразы Beginner's All-purpose

Symbolic Instruction Code, которая дословно переводится как многоцелевой

код (язык) символических инструкций для начинающих. Авторство и первая

реализация языка Бейсик принадлежат группе преподавателей и студентов

Дартмутского колледжа во главе с профессорами Дж. Кемени и Т. Куртцем,

которые 1 мая 1964 вдохнули жизнь в первый Бейсик-интерпретатор.

Бейсик открыл эру диалогового программирования. До него культивировался

пакетный

режим, при котором бумажные или магнитны носители с программами сдавались

дежурному оператору и упорядочивались в соответствии с приоритетами их

владельцев. Составленный таким образом пакет программ поступал в ЭВМ на

последовательную обработку. При этом достигалась максимальная загрузка

оборудования, но каждая программа выполнялась либо до первой автоматически

обнаруженной ошиб. ки, либо до истечения лимита заказанного времени.

Информация о результатах прохождения программ выдавалась их авторам 2-3

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

многие месяцы.

Системы коллективного доступа, работавшие в диалоговом режиме,

обеспечивали одновременное обслуживание нескольких пользователей,

запускавших свои программы с электромеханических или электронных

терминалов. Оперативно получив сообщение об очередной ошибке, пользователь

имел возможность тут же исправить текст исходной программы и снова

выполнить её. Диалоговый режим, естественно, был связан с дополнительными

накладными расходами на многотерминальное обслуживание. Загрузка ЭВМ при

этом снижалась, но оперативность в отладке программ приводила к

существенному сокращению календарных сроков их разработки.

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

изначально присутствовали операторы общения пользователя с пошагово

выполняющейся программой. Одновременно с текстом сообщения об ошибке Бейсик-

система сообщала номер строки программы, нарушившей синтаксис языка или

приведшей к аварийной ситуации. Первые Бейсик-системы, совмещавшие в себе

возможности ввода, редактирования, исполнения и отладки программ, послужили

прототипами современных интегрированных сред.

Вторая особенность, привлекающая массового потребителя к Бейсику, кроется

в простоте начального освоения и краткости его изобразительных средств.

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

вопрос, чему равно 2-2, состоит всего из четырёх символов1:

?2*2

Аналогичная программа на Паскале содержит, минимум, три строки, а её длина

превышает 20 символов:

begin

(writein 2*2);

end.

Примерно вдвое больше символов требуется для аналога на Си:

#include main()

{printf("%d",2*2);

}

Второе поколение Бейсик-систем ведёт свой отсчёт от появления первых ПК на

базе 8-разрядных микропроцессоров Intel-8080 и Z-80, для которых в середине

70-х гг. был разработан компактный интерпретатор BASIC-80. Именно с него

началась карьера самого молодого амер. миллиардера Б. Гейтса, основавшего

корпорацию Microsoft.

Появление 16-разрядных IBM-совместимых ПК ознаменовалось конкурентной

борьбой между компаниями Borland International и Microsoft Corporation.

Первая из них выпустила на рынок удобную интегрированную среду с

компилятором Turbo BASIC, которая быстро привлекла на свою сторону

многочисленных любителей Бейсика. Однако вторая, более мощная компания, не

могла смириться с таким положением. На смену тихоходному интерпретатору GW-

BASIC пришла целая серия скоростных систем Quick 'BASIC, в составе которых

наряду с интегрированной средой поставлялись автономные компиляторы и

достаточно мощные библиотеки программ. Соревнование Бейсик-систем третьего

поколения закончилось поражением фирмы Borland, прекратившей свои

разработки и передавшей права на Turbo BASIC одному из авторов, вышедшему

из состава компании. О дальнейших попытках реанимировать Turbo BASIC под

названием Power BASIC (Мощный Бейсик) кроме рекламных сообщений ничего не

известно.

А фирма Microsoft продолжила совершенствование своего любимого детища,

выпустив в конце 80-х гг. мощные системы для профессиональных разработок

(Professional Development System) BASIC PDS-6 и PDS-7.

Наконец, четвёртое поколение Бейсика связано с появлением в 1991 системы

программирования Visual BASIC и её последующим совершенствованием

сотрудниками Microsoft. К началу 1995 поступили сообщения об опытной

эксплуатации версии 4.0.

Алгоритмический язык Паскаль был придуман в 1968 профессором Института

информатики при Швейцарской высшей технической школе Н. Виртом. В 1970 под

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

появилась и первая публикация. Своё название язык получил в честь

известного Франц. математика Б. Паскаля, который в 19-летнем возрасте

изобрёл первую суммирую-щую машину.

1

Новый язык, являясь продолжателем традиций алгоритмического языка АЛГОЛ-

60, был ориентирован, главным образом, на обучение курсу систематического

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

типы данных и средства для создания пользовательских структур. К числу

элементов, способствующих созданию надёжных программ, относились блочные

конструкции и требование обязательного описания (объявления) всех объектов

- типов данных, констант, переменных, меток, функций и процедур.

Заметную роль в разработке стандарта языка Паскаль и совершенствовании его

средств ввода/вывода сыграла рабочая группа Британского института

стандартов во главе с А. Эддиманом. Британский стандарт был принят в 1982,

а несколько позднее его утвердила международная организация ISO. Однако к

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

от сотрудничества по совершенствованию Паскаля и переключился на новый

проект Модула.

Язык Паскаль довольно долго оставался средством для изучения

программирования в университетах, т. к. ни одна серьёзная компьютерная

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

1984, когда молодой француз Ф. Кан привёз в США необычайно скоростной

компилятор Turbo-Pascal для IBM-совместимых ПК и начал торговать им по цене

49 долларов 95 центов. Удачная реклама и «бросовая» цена позволили ему

продать за первый месяц более 3000 копий системы и заложить основы фирмы

Borland International. Последующие 8 лет Turbo Pascal оставался наиболее

опекаемым продуктом фирмы, которая сумела выпустить более 9 различных

версий. Самая свежая из них (7.0; 1992) включает две системы - Turbo

Pascal, функционирующую под управлением MS-DOS, и расширенную версию

Borland Pascal, работающую в среде Windows. Возможно, что после ухода в

1995 Кана с поста президента фирма Borland изменит свою политику в

отношении языка Паскаль.

Язык Си был придуман в 1972 сотрудником Bell Laboratories (отделение

известной телефонной компании AT&T) Д. Ритчи, одним из первых пользователей

операционной системы Unix, и задумывался не как универсальный

алгоритмический язык, а, скорее, как инструмент для развития операционной

системы и создания новых обслуживающих программ (утилит). Такой подход

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

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

процедуры, макрокоманды и т. п. По завер-я

i

t шению разработки эти инструментальные наборы, как правило, предаются

забвению или, в | лучшем случае, остаются в личных архивах | авторов. Язык

Си, однако, эта участь миновала. § Вполне возможно, что его становлению

способ-| ствовало- последующее всемирное признание •^ операционной системы

Unix.

Как алгоритмический язык сравнительно низкого уровня, т. е. достаточно

близкий к ассемблеру, Си имел предшественников в лице . аналогичных

инструментальных средств - язы-; ков CPL, BCPL (сокр. от Basic Combined Pro-

| gramming Language - базовый комбинирован-i ный язык программирования) и

В. Два первых языка разрабатывались в конце 60-х гг. в Кембриджском

университете в качестве машинно-независимых языков для создания

трансляторов1. Последний был придуман К. Томпсоном - сотрудником Bell

Laboratories и автором операционной системы Unix. В отличие от своих

предшественников, Ритчи наряду с машинно-ориентированными типами данных

(байт, слово) ввёл в состав Си объекты и операторы, присущие универсальным

языкам (числовые и символьные переменные, структурные блоки), сохранив при

этом элементы, характерные для макроассемблера MACRO-11 (логические

операции над битами, сдвиги, работа с адресами и регистрами).

Первым программным продуктом, написанным почти полностью на Си, был

компилятор с языка Си в код машинных команд PDP-11/20 (прототип СМ-4). В

1973 Ритчи и Томпсон переписали на Си большую часть операционной системы

Unix. Из 13000 машинных команд для PDP-7, на которой появилась первая

версия Unix, только 800 пришлось вручную перевести в ассемблер PDP-11. В

процессе перевода Unix из однопользовательской операционной системы,

ориентированной на работу в конкретной ЭВМ, превратилась в мобильную

операционную систему коллективного пользования. Успех этой операции в

значительной мере предопределил популярность новой операционной системы и

её базового инструмента - языка Си. Б 1976 Ритчи и Томпсон перенесли Unix с

ЭВМ фирмы DEC на компьютеры другой архитектуры (Interdata 8/32),

практически ничего не изменив в ядре операционной системы, написанном на

Си. Точно таким же образом Unix распространялся на десятках машин различных

типов.

В 1978 появилась первая книга, посвящённая описанию Си и технике

программирования не

этом языке, которая с большим запозданя была переведена на русский язык

(Ken»81* ган Б., Ритчи Д., Фьюэр А. Язык программ^ рования Си. Задачи на

языке Си. М.: Фиван и статистика, 1985). От фамилий двух перв^* авторов

произошло сокращённое обозначенм* первого, никем не утверждавшегося, но

пpивяe того всеми программистами стандарта язык Си - K&R.

а

Дальнейшая работа по совершенствованию языка Си и принятию в 1987 первого

настояше го стандарта ANSI С была выполнена на общественных началах рабочей

группой при Американском национальном институте стандартов Возглавлял эту

работу сотрудник Bell Labs Л. Рослер. Наиболее серьёзный вклад в развитие

языка Си за последние годы внёс ещё один представитель той же лаборатории

Б. Страуст-руп, который ввёл в обращение новые объекты - классы,

объединяющие данные и обрабатывающие их функции.. С 1983 за расширенной

версией языка Си с классами закрепилось название C++.

Первые версии Си подвергались серьёзной критике за отсутствие

достаточной строгости, что приводило к многочисленным ошибкам

из-за работы с неинициализированными переменными, отсутствия

контроля за выходом индексов у элементов массивов за

установленные пределы, несоответствия типов формальных и

фактических параметров функций и т. п. Перед системными

программистами Bell Labs эти проблемы остро не стояли, т. к.

они пользовались специальной программой Lint, которая

проводила тщательный анализ программ, написанных на Си, перед

их трансляцией и выполнением. Для рядовых пользователей

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

которых наибольшую популярность приобрели Турбо-системы фирмы

Borland. Первая версия Turbo С, работавшая в среде MS-DOS,

была выпущена в 1987. К середине 1995 фирма Borland вышла на

рынок с версией 4.5, предназначенной для работы под

управлением Windows. Известны и другие реализации языка Си на

IBM-совместимых ПК - Microsoft С, Lattice С, Zortech С,

Symantec С. Но в нашей стране продукция фирмы Borland получила

наибольшее распространение.