При исполнении этой программы появляется пустой экран. После нажатия на клавишу пробел на экране появится строка из трех пунктов главного меню: Желтым цветом выделен первый пункт меню. Если нажать на клавишу Enter, то появится вертикальное подменю

Вид материалаДокументы

Содержание


Глава 4. язык программирования си++
4.2. Элементы языка Си++
4.3. Типы данных
4.4. Операции и выражения
4.5. Линейные программы на Си/Си++
4.6. Программирование ветвлений
4.7. Программирование циклов
4.11. Обработка символьных строк
4.12. Структуры и объединения
4.13. Потоковый ввод-вывод в стандарте Си
4.14. Объектно-ориентированное программирование в Си++
4.15. Форматированный ввод-вывод в Си++
Приложение 4. Библиотека функций языка Си/Си++
Графическая библиотека в C++
Глава 5. методы построения алгоритмов
5.2. Метод последовательной детализации
5.3. Рекурсивные методы
5.4. Методы перебора в задачах поиска
5.5. Эвристические методы
5.6. Сложность алгоритмов
...
Полное содержание
Подобный материал:
  1   2   3   4   5   6   7   8   9   ...   12













При исполнении этой программы появляется пустой экран. После нажатия на клавишу пробел на экране появится строка из трех пунктов главного меню:



Желтым цветом выделен первый пункт меню. Если нажать на клавишу Enter, то появится вертикальное подменю:



с выделенным цветом первым пунктом. Смена выбранного пункта (продвижение по пунктам) производится при помощи клавиши пробел. Нажатием на клавишу Enter закрывается подменю. Выход из программы выполняется при помощи клавиши Esc.


^ ГЛАВА 4. ЯЗЫК ПРОГРАММИРОВАНИЯ СИ++

4.1. Введение в Си и Си++

Язык Си был создан в 1972 г. сотрудником фирмы Bell Laboratories в США Денисом Ритчи.

По замыслу автора, язык Си должен был обладать противоречивыми свойствами. С одной стороны, это язык программирования высокого уровня, поддерживающий методику структурного программирования (подобно Паскалю). С другой стороны, этот язык должен обеспечивать возможность создавать такие системные программы, как компиляторы и операционные системы. До появления Си подобные программы писались исключительно на языках низкого уровня — Ассемблерах, Автокодах. Первым системным программным продуктом, разработанным с помощью Си, стала операционная система UNIX. Из-за упомянутой выше двойственности свойств нередко в литературе язык Си называют языком среднего уровня. Стандарт Си был утвержден в 1983 г. Американским национальным институтом стандартов (ANSI) и получил название ANSI С.

В начале 1980-х гг. в той же фирме Bell Laboratories ее сотрудником Бьерном Строуструпом было разработано расширение языка Си, предназначенное для объектно-ориентированного программирования. По сути дела, был создан новый язык, первоначально названный «Си с классами», а позднее (в 1983 г.) получивший название Си++ (Си-плюс-плюс). Язык Си++ принято считать языком объектно-ориентированного программирования. Однако этот язык как подмножество включает в себя Си и по-прежнему сохраняет свойства языка для системного программирования. Все существующие версии трансляторов для Си++ поддерживают стандарт ANSI С.

Из сказанного выше следует, что язык Си++ поддерживает как процедурную, так и объектно-ориентированную парадигмы программирования. Последующий материал пособия в большей степени посвящен процедурному программированию на Си++ и лишь в разд. 4.10 приводится краткое введение в ООП на Си++

Примеры программ. Для того чтобы получить первоначальное представление о программировании на Си/Си++, рассмотрим несколько примеров.

В литературе по программированию стало традицией приводить в качестве примера первой программы на Си следующий текст.

Пример 1.




Здесь первая строка представляет собой комментарий. Начало и конец комментария ограничиваются парами символов /* и */ Все, что расположено между этими символами, компилятор игнорирует.

Вторая строка программы содержит директиву препроцессора:

#include

Она сообщает компилятору информацию о необходимости подключить к тексту программы содержимое файла stdio.h, в котором находится описание (прототип) библиотечной функции printf() — функции вывода на экран.

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

void main()

Любая программа на Си обязательно содержит главную функцию, имя которой — main. Слово void обозначает то, что главная функция не возвращает никаких значений в результате своего выполнения, а пустые скобки обозначают отсутствие аргументов. Тело главной функции заключается между парой фигурных скобок, следующих после заголовка.

Текст программы содержит всего лишь один исполняемый оператор — это оператор вывода на экран. Вывод осуществляется путем обращения к стандартной библиотечной функции printf(). В результате его выполнения на экран выведется текст:

Здравствуй, Мир!

Впереди данной строки и после нее будет пропущено по одной пустой строке, что обеспечивается наличием управляющих символов \n.

Следующий пример содержит программу, выполняющую те же самые действия, но написанную на Си++.

Пример 2.

// Ваша первая программа на Си++

#include

void main()

{

соut:"\n3дравствуй Мир!\n";

}

Первое отличие от программы из примера 1 состоит в форме комментария. В Си++ можно использовать строчный комментарий, который начинается с символов // и заканчивается концом строки. Для организации вывода на экран к программе подключается специальная библиотека объектов, заголовочный файл которой имеет имя iostream.h. Вывод осуществляется посредством объекта cout из этой библиотеки.

В примере 1 используется механизм форматного ввода/вывода, характерный для Си. В примере 2 работает механизм потокового ввода/вывода, реализованный в Си++. Преемственность Си++ по отношению к Си выражается в том, что программа из примера 1 будет восприниматься компилятором Си++, т. е. эта программа исполнима в любой системе программирования, ориентированной на Си++.

Рассмотрим еще один пример программы на Си/Си++. Сопоставим ее с аналогичной программой на Паскале.

Пример 3. Деление простых дробей (см. разд. 3.1):

a/b : с/а = т/п



В этом примере появился целый ряд новых элементов по сравнению с предыдущим. Первая строка в теле главной функции является объявлением пяти переменных целого типа — int. Далее наряду с уже знакомым оператором форматного вывода на экран используется оператор форматного ввода с клавиатуры — scanf(). Это также стандартная функция из библиотеки ввода/вывода, подключаемая к программе с помощью файла stdio.h. Первый аргумент этой функции %d является спецификацией формата вводимых значений. В данном случае он указывает на то, что с клавиатуры будет вводиться целое число. Перед именем вводимой переменной принято писать символ &. Это необходимо делать для правильной работы функции scanf(). Смысл данного символа будет пояснен позже. В отличие от Паскаля в качестве знака присваивания используется символ =. Однако читать его надо как «присвоить». Спецификации формата %d используются и при организации вывода на экран целых чисел с помощью функции printf().

Этапы работы с программой на Си++ в системе программирования (рис. 41 — прямоугольниками отображены системные программы, а блоки с овальной формой обозначают файлы на входе и на выходе этих программ).



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

2. Осуществляется этап препроцессорной обработки, содержание которого определяется директивами препроцессора, расположенными перед заголовком программы (функции). В частности, по директиве #include препроцессор подключает к тексту программы заголовочные файлы (*.h) стандартных библиотек.

3. Происходит компиляция текста программы на Си++. В ходе компиляции могут быть обнаружены синтаксические ошибки, которые должен исправить программист. В результате успешной компиляции получается объектный код программы в файле с расширением obj. Например, example.obj.

4. Выполняется этап компоновки с помощью системной программы Компоновщик (Linker). Этот этап еще называют редактированием связей. На данном этапе к программе подключаются библиотечные функции. В результате компоновки создается исполняемая программа в файле с расширением ехе. Например, example.ехе.