Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции (опорный конспект)

.pdf
Скачиваний:
52
Добавлен:
09.06.2015
Размер:
2 Мб
Скачать
☆

1.6.Подготовка программы к выполнению

1.6.1.Компиляторы

•Компилятор – транслятор, преобразующий код программы на языке высокого уровня в эквивалентный код на машинном языке (либо, на языке виртуальной машины)

Исходный код программы

____________

____________

____________

____________

____________

____________

____________

____________

____________

____________

Сообщения об ошибках в коде

Компилятор

Объектные

 

 

модули

 

 

 

 

Исполнимый

Obj

 

файл

 

 

 

Компоновщик

Exe

 

 

Obj

 

 

11

1.6.2.Интерпретаторы

•Интерпретатор – транслятор, осуществляющий пооператорную (покомандную) обработку и выполнение исходной программы

–Простой

–Компилирующего типа

Исходный код программы

____________

____________

____________

____________

____________

Оператор

 

Выполнение

программы

Интерпретатор

 

 

 

 

 

Сообщения об ошибках в коде

12

1.7.Технологии программирования

•Технология программирования – это совокупность методов и средств разработки (написания) программ и порядок применения этих методов и средств

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

–Объектно-ориентированное программирование – программирование, основанное на представлении предметной области в виде системы

взаимосвязанных классов и их реализаций – объектов.

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

–Логическое программирование – программирование, основанное на автоматическом доказательстве теорем. Логическое программирование исходит из того, что компьютер должен уметь работать по логическим построениям, присущим человеку.

–Функциональное программирование – методология программирования, основанная на создании совокупностей функций. Вычисления начинаются с вызова некоторой функции, которая в свою очередь вызывает функции, входящие в ее определение и т. д. в соответствии с иерархией определений и структурой условных предложений.

13

1.7.1. Структурное программирование

•функция (процедура) должна иметь один вход и один выход

•функция должна решать самостоятельную задачу

•функция может вызывать другую функцию

•работа функции не должна зависеть

–от входных данных;

–от того, какой функции предназначены ее выходные данные;

–от предыстории вызовов функции;

•функция должна возвращать управление той функции, которая ее вызывала;

•модульность

•иерархическое

строение

•нисходящая

разработка

14

1.7.2. Пример структурной программы

f(a,b) =

a2 + b

a + b2

ab

13

2 8

7 -3

Главный алгоритм

Алгоритм расчета значения функции

f(a,b) =

a2

+ b

=

f

2

(a,b)

a + b2

f2

(b,a)

 

 

Алгоритм расчета значения функции f2 (x, y) = x2 + y

15

2. Язык С/С++. Основные понятия

•Язык С

–язык

программирования общего назначения

–является

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

–создан во второй половине 70-х годов Брайаном Керниганом и Деннисом Ритчи

•Язык С++

–создан Бьерном Страуструпом в начале 80-х годов

–расширяет возможности языка С:

•поддержка объектноориентированного программирования

•новые типы данных

•механизм обработки исключительных ситуаций

•операторы управления свободной памятью

•дополнения к стандартной библиотеке

•пространства имен

16

2.1.Алфавит языка С++

2.2.Лексемы языка С++

•Алфавит:

–прописные и строчные латинские буквы

–знак подчеркивания

–арабские цифры от 0 до 9

–пробельные символы (пробел, табуляция, переход на новую строку)

–специальные символы

•Лексемы языка:

–идентификаторы

–ключевые слова

–константы

–знаки операций

–комментарии

"

{ }

,

|

[ ]

( )

'

:

?

<

=

>

+

-

/ \

%

* .

!

&

#

~

;

^

17

2.2.1Идентификаторы

2.2.2.Ключевые слова

2.2.3.Комментарии

•Идентификаторы – имена программных объектов

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

–могут начинаться с латинской

буквы или знака

подчеркивания

–чувствительны к регистру

•Комментарии – примечания к тексту программы, игнорируемые компилятором

1.Строчные – начинаются с символов \\ и заканчиваются переходом на новую строку

2.Блочные – заключены между символами /* и */. Могут распространяться на несколько строк

•Ключевые слова –

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

asm auto bool break case catch char class const const_cast continue default delete do double dynamic_cast else enum explicit export extern false float for friend goto if inline int long mutable namespace new operator private protected public register reinterpret_cast return short signed sizeof static static_cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while

18

2.2.4.Знаки операций

2.2.5.Константы

•Знаки операций – последовательность символов, определяющих действия над операндами

•Константы – неизменяемые величины, представленные своим значением

Константа

Формат

 

 

 

 

Пример

 

 

 

Целая

Десятичная: последовательность десятичных цифр,

8, 0, 199226

 

начинающаяся не с нуля, если это не число ноль.

01, 020, 07155

 

Восьмеричная:

ноль,

за

которым

следуют

0хА, 0x1В8, 0X00FF

 

восьмеричные цифры (0,1,2,3,4,5,6,7)

 

 

 

Шестнадцатеричная: 0х или 0Х,

 

 

 

 

за которым следуют шестнадцатеричные

 

 

 

цифры (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)

 

 

 

 

 

 

 

Вещественная

Десятичная: [цифры].[цифры]

 

 

5.7, .001, 35.

 

Экспоненциальная:

 

 

 

0.2Е6, .11е-З, 5Е10

 

[цифры][.][цифры]{Е|е}[+|-][цифры]

 

 

 

 

 

Символьная

Один или два символа, заключенных в апострофы

'А', 'ю', '*', '\0'

 

 

 

Строковая

Последовательность символов, заключенная в кавычки

"Hello, world"

 

 

 

 

 

 

 

19

2.3. Типы данных

•Тип данных определяет:

–внутреннее

представление данных в памяти компьютера

–множество

значений, которые могут принимать величины этого типа

–операции и функции, которые можно применять к данным этого типа

•Типы данных:

–int (целый)

–char (символьный)

–wchar_t (расширенный символьный)

–bool (логический)

–float (вещественный)

–double (вещественный с двойной точностью)

–void («пустой» тип)

•Спецификаторы типов:

–short (короткий)

–long (длинный)

–signed (знаковый)

–unsigned (беззнаковый)

20