Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Лекц. №1. ВВЕДЕНИЕ

Некоторые общие замечания и пропедевтика. | Программа. Программа состоит из одной или более единиц трансляции, которые компонуются (линкуются) вместе. | Компиляторы в семействе ОС Windowss |


Читайте также:
  1. I. Актуализация знаний, введение учащихся в тему классного часа
  2. Push or Fold в хедз-апе 1.1. Введение
  3. VI. ВВЕДЕНИЕ В АНАТОМИЮ МАССОВОГО ЧЕЛОВЕКА
  4. VIII. ВВЕДЕНИЕ В ОБРАЩЕНИЕ ЧАСТНЫХ ДЕНЕЖНЫХ ЗНАКОВ
  5. Альтернатива: Введение белка в утробу матери
  6. БЛОК 1: ОСНОВЫ СО ВВЕДЕНИЕ В СПЕЦИАЛЬНОСТЬ
  7. Введение в Java Урок 34. Класс File

Содержание.

История создания C и C++. Стандарты языков. Структура простой программы – первое знакомство. Функция main().Заголовочные файлы и директивы препроцессора. Аргументы командной строки. “Новые” заголовочные файлы. Первое представление о ввод-выводе. Общие замечания и пропедевтика. Объекты и объектно-ориентированное программирование (Г. Буч). Некоторые термины. Алфавит и лексемы языка C++. Символы и идентификаторы. Выражения, лево-допустимые и право-допустимые значения. Аргументы и параметры. Термины: модуль, единица трансляции, программа. Компиляция. Создание программы: Linux, Windows.

C и C++ - два наиболее важных языка программирования.

Они - фундамент современного программирования.

C придуман Денизом Ричи (Dennis Ritchie) в 1970 г.. C – это язык среднего уровня, т. е. он объединяет управляющие структуры языка высокого уровня с возможностью манипулировать битами, байтами и указателями (адресами). С дает программисту почти полный контроль над машиной. Первый ANSI-стандарт С - конец 1989 г. (American National Standards Institute): ссылаются как на C89. Этот стандарт был также принят ISO (International Standards Organization). C89 слегка подправлен в 1995г..

C++ (начиная с 1979г). Автор языка Бьярн Страуструп (Bjarne Stroustrup). Развитие и шлифовка C++ продолжались в 1980-е и большую часть 1990-х годов. Наконец, в 1998г. был принят стандарт С++ ANSI/ISO. C++, первоначально, можно было считать объектно=ориентированной версией языка C. C++ построен на основе стандарта C89, включая его уточнения, сделанные в 1995 г. Фактически, на версию С стандарта C89 ссылаются как на “C-подмножество C++.” Скоро С++ вырос до языка программирования с “собственными правами”. На сегодня, С++ - наиболее мощный язык для компьютеров из когда-либо разработанных языков.

В 1999 г. принят новый ANSI/ISO стандарт языка C. Эта версия называется C99. В нем некоторые из новых черт взяты из C++, а некоторые полностью новые. Таким образом, С99 уже не совместимым с C++ (не является чистым подмножеством языка С++). Однако, все еще не трудно писать код совместимый как с С, так и с С++. До 2003 года не было компиляторов, которые бы обрабатывали все новшества стандарта С99.

Следующая таблица дает синопсис соотношений между C89, C99 и C++.

C89 Первоначальный ANSI/ISO стандарт C. C89 – то, что имеют ввиду большинство программистов, когда говорят о языке С.
C++ Объектно-ориентированная версия C. Текущий ANSI/ISO стандарт C++ есть надстройка над С89. Таким образом, C89 образует подмножество C++.
C99 Последний стандарт для С. Включает весь C89, но добавляет несколько новых функциональных возможностей. Некоторые из них не поддерживаются текущим стандартом C++.

 

C и C++ - очень большая тема. C++ поддерживает процедурное, объектно-ориентированное и обобщенное программирование. Невозможно охватить за “один присест” все аспекты программирования на этих важных языках. Поэтому, начнем с простейших примеров и понятий, изучая прежде всего С++, а С изредка будем упоминать там, где это посчитаем необходимым.

Структура C++ программы

Считается, что лучший способ первого знакомства с языком программирования - изучить какую-нибудь простую программу. Так и поступим (традиция).

// наша первая программа на C++ #include <iostream.h> int main (){ cout << "Типа,Hello Bill!"; return 0;} Типа, Hello Bill!

Слева показан исходный код нашей первой программы, назовем ее, скажем, hello.cpp. Справа – результат ее работы после компиляции и выполнения. Слово “Типа” является ключевым словом Нового Русского языка, а не языка С++, хотя вульгарно актуализирует в обиходной речи основное понятие С++ как языка ООП: понятие Типа Данных. Когда нам трудно точно описать объект, о котором идет речь, мы говорим, что объект имеет Тип такой-то, т.е., объект типа, например, Гладкий Оператор (Smooth Operator). Как программу откомпилировать – зависит от используемого компилятора. Компилятор – это программа, транслирующая исходные коды в коды машины.

Консольная программа – это программа, которая общается с пользователем через консоль, т.е. данные вводятся с клавиатуры, а текст выводится, в основном, на экран монитора.

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

Hello.cpp одна из простейших программ, которая может быть написана на C++, но она уже включает в себя базовые компоненты, присутстствующие в каждой C++-программе. Рассмотрим их последовательно:

// наша первая программа на C++

Это строка комментария. Все строки, начинающиеся двумя прямыми слэшами (двумя “косыми” линиями) в C++ считаются комментариями и не влияют на поведение программы (пропускаются компилятором). Программист использует комментарии для краткого документирования исходного программного кода. В нашем случае мы просто сообщаем, что пока “ходим пешком под стол и радуемся жизни”.

#include <iostream.h>

Предложения начинающиеся со знака “фунт” (#) являются директивами для препроцессора.

Препроцессор – “часть” компилятора, которая выполняет некие предварительные операции над входным текстом программы и передает его на дальнейшую обработку. Директивы препроцессора не рассматриваются как исполняемый код, а лишь передают указания компилятору. В конкретном случае предложение #include <iostream.h> сообщает препроцессору, что нужно включить в текст программы заголовочный файл (header) стандартной библиотеки ввода-вывода iostream. Этот специальный файл содержит объявления основной библиотеки ввода-вывода в C++. Нам он необходим для вывода текста на экран..

 

В общем случае, директивы препроцессора представляют собой инструкции, записанные в тексте программы на С++, и выполняемые до трансляции программы. Директивы препроцессора позволяют изменить текст программы, например, заменить некоторые лексемы в тексте, вставить текст из другого файла, запретить трансляцию части текста и т.п. Все директивы препроцессора начинаются со знака #. После директив препроцессора точка с запятой не ставится.

 

int main ()

Эта линия кода констатирует, что мы имеем функцию, называемую main() . Вместе с телом функции, т.е. той частью текста, которая заключена в фигурные скобки, { и }, мы получим определение функции. Таким образом, определение состоит из двух частей: заголовка функции тела функции. Тело функции – это последовательность объявлений, определений и инструкций (операторов). Функция main является точкой входа, с которой любая C++-программа начинает свое выполнение. Сама программа может состоять из многих функций и других программных элементов, функция main() только одна, и программа стартует с обращения к ней. Круглые скобки пишутся для всех функций в С++, и могут заключать список аргументов (или параметров). Сами круглые скобки трактуются (и являются) как операция обращения к функции.

В ОС Windows существует аналог функции main() – WinMain(). Различие между MS-DOS программой и Windows программой в способе взаимодействия программы и ОС: первая, при необходимости, вызывает операционную систему, вторая использует поступающие от ОС сообщения.

 

Рис. В-1. Функция main() .

 

 

cout << " Типа , Hello Bill"; // Gates, естественно

 

Эта инструкция делает основную работу в нашей программе. В С++ полную инструкцию мы будем называть оператором, непутать с операцией. Операторы завершаются точкой с запятой. Распространенная ошибка– забыть про символ;.

cout – это, так называемый, стандартный выходной поток (обычно, на экран), и все предложение помещает в выходной поток последовательность символов (наше приветствие).

cout объявлен в заголовочном файле iostream.h , который включен в программу директивой #include.

Поток – это некая абстракция, отражающая перемещение данных от источника к приемнику. Операция << называется операцией вставки. Существует и операция ввода >>

Ввод с терминала, называемый стандартным вводом, он обеспечивается объектом (входным потоком) cin, например: cin >> n;. Операция >> называется операцией извлечения.

 

return 0;

Инструкция return приводит к завершению функции main() и возвращает код завершенияцелое число (в нашем случае 0). Это самый обычный путь завершения программы, выполненной без ошибок.

---------------------------------------------------------------------------------------------------------------

Итак, в нашей программе имеются: комментарий (//), указание для препроцессора (#), формальное объявление функции (функция main) и, наконец, оператор обращения к выходному потоку cout << и оператор завершения функции (return 0;), эти последние образуют тело функции, заключенное в блок, ограниченный фигурными скобками ( {} ). Директивы препроцессора не завершаются точкой с запятой, они не являются истинными операторами, т.е. сами по себе не продуцируют никакого кода.

---------------------------------------------------------------------------------------------------------------

Наша программа записана в виде отдельных строк, чтобы облегчить ее восприятие. В общем случае, формат написания исходного кода – свободный, но без нарушения целостности лексем языка и правил синтаксиса. Т.е.:

int main (){ cout << " Hello Billy "; return 0;}

эквивалентно одной линии кода int main () { cout << " Hello Billy "; return 0; }.

А код int main (){ cout << "Hello Bill!\n"; cout << "Я учусь объектному ориентированию в С++."; return 0;

}

эквивалентен

int main () { cout << " Hello Bill!\n"; cout << " Я учусь объектному ориентированию в С++. "; return 0; }.

 

Здесь, “символ” \n – “перевод строки”, специальный управляющий символ (escape -последовательность). Он “сообщает” объекту cout, что последующий вывод на экран нужно начинать с новой строки. “Пробельные” символы служат; в основном, для форматирования текста программы.


Дата добавления: 2015-11-16; просмотров: 43 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Множественное наследование.| Новые” заголовочные файлы.

mybiblioteka.su - 2015-2024 год. (0.01 сек.)