Основные понятия программирования презентация

Содержание

Слайд 2

Классификация языков программирования

Машинные коды
Ассемблер
Языки высокого уровня
Универсальные
Прикладные
С++ - универсальный язык высокого уровня

Слайд 3

Этапы создания программы

Написание исходного текста
Препроцессорная подготовка
Трансляция (компиляция)
Компоновка
Загрузка
Исполнение
Отладка

Слайд 4

Факторы, учитываемые при написании программ

Тип процессора и его разрядность
Операционная система
Где хранятся данные
Оперативная память
Внешняя

память

Слайд 5

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

Оперативная память состоит из пронумерованных ячеек.
Каждая ячейка хранит 1

байт информации и рассматривается как двоичный 8-ми битовый вектор.
Данные могут занимать несколько последовательно расположенных ячеек
Программа и данные хранятся в одной памяти
Память разбивается на порции, называемые сегментами
Номер ячейки, с которой начинается порция данных называется физическим адресом

Слайд 6

Алфавит языка

Алфавит C++ включает:
прописные и строчные латинские буквы и знак подчеркивания;
арабские цифры от

0 до 9;
специальные знаки:
“ { } , | [ ] ( ) + - / % * . \ ‘ : ? < = > ! & # _ ; ^
пробельные символы: пробел, символы табуляции, символы перехода на новую строку.
Из символов алфавита формируются лексемы (лексема или элементарная конструкция - минимальная единица языка, имеющая самостоятельный смысл)

Слайд 7

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

ключевые (зарезервированные) слова;
идентификаторы;
знаки операций;
константы;
разделители (скобки, точка, запятая, пробельные символы);
комментарии.

Слайд 8

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

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

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

Слайд 9

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

Идентификаторы – это имена различных программных объектов (имена переменных, констант, функций и т.д.).
Синтаксически

правильный идентификатор – это последовательность латинских букв, цифр и символов «_» - нижнее подчеркивание, начинающаяся с буквы или символа «_».
Важно помнить, что в C++ различается строчное и прописное написание букв. То есть, например, идентификаторы ABC, Abc и abc представляют в программе не один и тот же объект, а три разных объекта.

Слайд 10

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

Использование в собственных идентификаторах в качестве первого символа «_» нежелательно, так как так

обычно именуются различные системные объекты, и в ряде случаев может помешать переносимости программ с одного компилятора на другой. Обычно этот символ используется для выделения отдельных частей идентификаторов с целью обеспечения более удобного их восприятия.

Слайд 11

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

Пользовательские идентификаторы не должны совпадать с ключевыми словами языка. При таком совпадении компилятор

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

Слайд 12

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

Имена программных объектов (идентификаторов) должны отражать назначение именуемых объектов. Простые (обезличенные) идентификаторы следует

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

Слайд 13

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

Служат для указания действий над операндами. В зависимости от количества операндов в

C++ имеются унарные, бинарные и одна тернарная операции.
Знаки операций могут изображаться одним или несколькими символами. Если операция содержит в своем изображении несколько символов, то между символами не должно быть пробелов.
Некоторые операции в C++ в зависимости от контекста могут выполнять разные действия.
Большинство стандартных операций можно переопределять (перегружать).

Слайд 14

Выражения и операторы

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

операндов могут использоваться константы, переменные, функции и другие выражения (константы и переменные считаются частными случаями выражений).
Выражение, после которого стоит символ точки с запятой считается оператром, т.е. законченным действием.
Несколько операторов могут объединяться в составной оператор с помощью фигурных скобок, например,
{a=b+3; c=a+k};

Слайд 15

Константы

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


Константы могут задаваться конкретными значениями или именами (идентификаторами).
При формировании строковых (текстовых) констант: в них можно использовать не только символы алфавита языка C++, но и все другие символы, имеющиеся в используемой таблице символов (символы национальных алфавитов, символы псевдографики и т.д.).

Слайд 16

Комментарии

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

текстах программ используются для различных пояснений к тексту программы, а также для исключения временно не нужных фрагментов текста программы (например, отладочных кодов или вариантов реализации).
В комментариях допускается использование символов любого национального языка
В C++ имеются комментарии двух видов: однострочные и многострочные.

Слайд 17

Комментарии

Однострочный комментарий начинается двумя символами // (прямой косой черты) и заканчивается в конце

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

Слайд 18

Понятия, которые следует различать

Тип данных – что это за данные
Переменная – где хранятся

эти данные
Значения – конкретное значение этих данных

Слайд 19

Тип данных

Тип данных для каждого программного объекта, представляющего данные, определяет:
характер данных (число, со

знаком или без знака, целое или с дробной частью, одиночный символ или текст, представляющий последовательность символов и т.д.);
объем памяти, который занимают в памяти эти данные;
диапазон или множество возможных значений;
правила обработки этих данных (например, допустимые операции).

Слайд 20

Тип данных

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

типы данных представляют неразделимые данные, не имеющие внутренней структуры (это, например, числа, символы и т.д.).
Структурированные типы данных, как это вытекает из их названия, имеют внутреннюю структуру. Структурированные типы строятся на основе простых типов данных.
Другой уровень классификации разделяет все типы данных на предопределенные (изначально встроенные в язык программирования) и пользовательские (типы данных, определяемые программистом) типы данных.

Слайд 21

Простые предопределенные типы данных языка С++

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

их можно использовать в арифметических операциях.
Для описания основных типов определены следующие ключевые слова:
int (целый);
float (вещественный);
double (вещественный тип с двойной точностью);
bool (логический);
char (символьный).

Слайд 22

Простые предопределенные типы данных языка С++

Типы int, bool и char относят к группе

целочисленных (целых) типов, а float и double - к группе вещественных типов - типов с плавающей точкой.
Код, который формирует компилятор для обработки целых величин, отличается от кода для величин с плавающей точкой.

Слайд 23

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

Существует четыре спецификатора типа, уточняющих внутреннее представление и диапазон значений стандартных типов:
short

(короткий);
long (длинный);
signed (знаковый);
unsigned (без знаковый).
Спецификаторы добавляются слева к названию типа, например, так: 
short int – короткое целое;
unsigned short int - короткое целое без знака.
Спецификаторы могут в произвольном порядке. Например: unsigned short int эквивалентно short unsigned int.

Слайд 24

Переменные

Переменная — это именованная область памяти, в которой хранятся данные определенного типа.
Каждая

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

Слайд 25

Описание переменных

Общее правил определения переменной можно сформулировать так:
[класс памяти] <тип данных> <идентификатор -

имя> [инициализатор];
Понятие класс памяти определяет такие важные характеристики как время жизни и область видимости переменных. Эти понятия будет рассмотрено позднее.

Слайд 26

Примеры описания переменных
int а; // переменная a типа int (целого типа)
double х; //

переменная х типа double (вещественного типа с двойной точностью)
unsigned short int d; // переменная d – короткое целое без знака 
Однотипные переменные можно определять в одной строке:
int i, j, k;
(Что здесь не так?)

Слайд 27

Инициализация переменной

Описание переменной можно совместить с ее инициализацией: 
int а = 1213; // переменная

a инициализирована значением 1213
double х = 0.003; // переменная х инициализирована значением 0.003
unsigned short int d = 13; /* переменная d инициализирована значением 13 */
Существует альтернативный способ инициализации переменных. Следующие примеры эквивалентны предыдущим: 
int а (1213); // переменная a инициализирована значением 1213
double х (0.003); // переменная х инициализирована значением 0.003
unsigned short int d (13); /* переменная d инициализирована значением 13  */
Определения неинициализированных и инициализированных однотипных переменных можно совмещать в одной строке: 
int i = 0, j, k (10);

Слайд 28

Инициализация переменной

В качестве инициализирующего значения можно использовать любые допустимые выражения. Например: 
double y =

a * x; /* переменная y инициализирована значением равным произведению значений переменных a и x */

Слайд 29

Константы в языке С++

Константы бывают двух видов: константы – литералы и именованные константы.
Константы

– литералы представляют собой сами значения. Например: 
123 -245 0.003 -12.45 ’R’ ”Это текст”  
Тип данных, которому принадлежит констант – литера, определяется компилятором автоматически по виду самого значения. Способы записи констант – литералов разных типов будет рассмотрены позже при изучении соответствующих типов данных.
Именованные константы задаются с помощью ключевого слова const: 
const double Pi = 3.14;
const int c1 = 1000, c2 = 2000;
const char point = ’.’;

Слайд 30

Целочисленные данные

Размер типа int не определяется стандартом, а зависит от компьютера и компилятора.

Для 16-разрядного процессора под величины этого типа отводится 2 байта – в этом случае диапазон возможных значений составляет -32 768 ... 32 767 (2 в степени 16 различных значений). Для 32-разрядного - 4 байта – диапазон значений -2 147 483 648 ... 2 147 483 647 (2 в степени 32 различных значений)

Слайд 31

Целочисленные данные

Спецификатор short перед именем типа указывает компилятору, что под число требуется отвести

2 байта независимо от разрядности процессора.
Спецификатор long означает, что целая величина будет занимать 4 байта. Таким образом, на 16-разрядном компьютере эквиваленты int и short int, а на 32-разрядном — int и long int.
При определении переменных вместо short int или long int можно использовать более короткие обозначения: short или long соответственно: 
short a; long b;

Слайд 32

Целочисленные данные

Использование типов int, short int (short), long int (long) подразумевает представление целых

чисел со знаком, поэтому спецификатор signed можно не указывать.
Внутреннее представление величины целого типа — целое число в двоичном коде. Например, число +22 типа short int (short) представляются в памяти так: 
Номера разрядов: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Значения разрядов: 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 Отрицательное число -22 выглядит следующим образом: 
Номера разрядов: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Значения разрядов: 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0

Слайд 33

Целочисленные константы

Целые константы литералы можно задавать в трех форматах: в десятичном, восьмеричном и

в шестнадцатеричном.
В десятичном формате целые значения записываются в обычном виде: 
1345 +34 -245 
В восьмеричном формате сначала записывается 0 (нуль), а за ним восьмеричные разряды самого числа: 
011 07345 -0456 
В шестнадцатеричном формате значащим разрядам числа должны предшествовать символы 0x или 0X: 
0x12B5 -0xAF2B 0X1FF02

Слайд 34

Целочисленные константы

Константам, встречающимся в программе, приписывается тот или иной тип в соответствии с

их видом. Если этот тип по каким-либо причинам не устраивает программиста, он может явно указать требуемый тип с помощью суффиксов L, l (long) и u, U (unsigned). Например, константа 32L будет иметь тип long и занимать 4 байта. Можно использовать суффиксы L и U одновременно, например, Ox22UL или 05LU.

Слайд 35

Операция присваивания

Формат операции: 
<Переменная> = <Выражение>  
Например: a = b; b = 3 *

a; c = 1.234;
Сначала вычисляется значение выражения с правой стороны, а затем полученное значение присваивается переменной в левой части операции (значение выражения записывается в область памяти переменной). Старое значение переменной при этом безвозвратно теряется.
В языке C++ возможно множественное присваивание: 
<Переменная1> = <Переменная2> = … = <ПеременнаяN> = <Выражение>

Слайд 36

Операция присваивания

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

операнда (к типу данных переменной в левой части). При этом возможны потери данных или точности
int i = 100000, k;
short j = 10000, m;
k = j; // Короткое целое преобразуется к целому без потерь
m = i; // Преобразование целого к короткому целому приводит к искажению данных. На экран будет выведено: -31072

Слайд 37

Арифметические операции

Унарный плюс (+) и унарный минус (-) Единственный операнд любого арифметического типа.

Формат записи:
 + < Выражение >
- < Выражение > 
Унарный плюс возвращает значение операнда без изменений.
Унарный минус (его иногда называют арифметическим отрицанием) меняет знак операнда на обратный.

Слайд 38

Арифметические операции

Сложение (+) и вычитание (-) – бинарные операции. Операнды могут быть любых

арифметических типов данных. Примеры записи: 
a + b a – b 
При выполнении операций возможны ошибки переполнения и некорректного преобразования типов данных операндов. Например: 
unsigned short n = 0, m;
m = n - 1; //На экран будет выведено 65535
n = m + 1; // На экран будет выведено 0

Слайд 39

Арифметические операции

Инкремент (++) и декремент (--) – унарные операции увеличения и уменьшения операнда

на 1 соответственно. Операнд может быть любого арифметического типа данных.
Операции имеют две формы – префиксную (++a, --a) и постфиксную (a++, a--).
Независимо от формы операция инкремента эквивалентна следующему оператору:
 a = a + 1; 
а операция декремента следующему: 
a = a - 1;

Слайд 40

Арифметические операции

Разница между префиксной и постфиксной формами этих операций заключается в том, что

при префиксной форме, переменная сначала меняет свое значение, а потом это измененное значение обрабатывается.
В постфиксной форме значение переменной сначала обрабатывается и только потом ее значение изменяется на 1.

Слайд 41

Арифметические операции

Умножение - * - бинарная операция. Примеры записи:  
a * b 2

* 3
Операнды могут быть любого арифметического типа данных. Тип данных результата операции определяется правилами неявного преобразования типов.
При выполнении возможен выход реального значения результата за допустимый диапазон значений типа данных – при этом значение результата операции трудно предсказать. Например: 
1000000 * 1000000; // Результат: -727379968

Слайд 42

Арифметические операции

Деление - / - бинарная операция. Примеры записи:
 a / b 2 /

3
 Если оба операнда являются целыми, то результат деления будет целым. В этом случае целый результат получается отбрасыванием дробной части от полученного реального значения (не округление). Например: 
5 / 3 - результат равен 1.

Слайд 43

Арифметические операции

Остаток от деления - % - бинарная операция. Операнды только целого типа.

Результат операции целого типа. Например: 
5 % 1 - результат 0
5 % 2 - результат 1
5 % 3 - результат 2
5 % 4 - результат 1
5 % 5 - результат 0
5 % 6 - результат 5…..
 Если второй операнд равен 0, возникает ошибка режима исполнения (деление на 0).

Слайд 44

Операции сдвига

Операции сдвига - << и >> - бинарные операции. Операнды целого

типа. Результат также целого типа. Формат записи: 
< Операнд 1 > << < Операнд 2 > - сдвиг влево
< Операнд 1 > >> < Операнд 2 > - сдвиг вправо
Операция сдвига влево осуществляет перемещение битов
левого операнда 1 в сторону больших разрядов на количество разрядов, равное значению правого операнда 2.
Операция сдвига вправо осуществляет перемещение битов левого операнда 1 в сторону меньших разрядов на количество разрядов, равное значению правого операнда 2.

Слайд 45

Логические операции

Слайд 46

Поразрядные логические операции

К этой группе операций относятся:
~ - побитовое отрицание (побитовое НЕ)

- унарная операция;
& - побитовая конъюнкция (побитовое И) - бинарная операция;
| - побитовая дизъюнкция (побитовое ИЛИ) - бинарная операция;
^ - побитовое исключающее ИЛИ - бинарная операция.
Операндами этих операций целочисленных типов данных. Результат также целочисленный.

Слайд 47

Логический тип данных

Величины логического типа могут принимать только значения true и false, являющиеся

зарезервированными словами. Внутренняя форма представления значения false - О (нуль). Любое другое значение интерпретируется как true. При преобразовании к целому типу true имеет значение 1 (единица).
В памяти переменные этого типа занимают 1 байт.

Слайд 48

Логический тип данных

Определения переменных этого типа выглядят, например, так:
bool b1, b2 = true,

b3 (false), b4 = 1, b5 = 0;
Константы – литералы задаются ключевыми словами true и false.

Слайд 49

Операции отношения

Операции этой группы служат для сравнения значений. Сюда входят следующие операции:
== -

равно;
!= - не равно;
> - больше;
>= - больше или равно;
< - меньше;
<= - меньше или равно.

Слайд 50

Операции отношения

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

арифметических типов данных.
Результат этих операций всегда логического типа (bool).
Примеры:
a == b, a != b, a > 10, (a - 3) >= (b + 10).

Слайд 51

Логические операции

Эти операции используются при построении сложных логических выражений.
В эту группу входят

3 операции:
! - логическое отрицание (логическое НЕ);
&& - конъюнкция (логическое И);
|| - дизъюнкция (логическое ИЛИ).

Слайд 52

Символьный тип данных

Для обозначения этого типа используется ключевое слово char.
Тип char может быть

со знаком или без знака. В величинах со знаком можно хранить значения в диапазоне от -128 до 127. По умолчанию тип char являемся знаковым, то есть спецификатор signed использовать не обязательно. При использовании спецификатора unsigned значения могут находиться в пределах от 0 до 255.

Слайд 53

Символьный тип данных

Константы - литералы символьного типа представляют собой символы, заключенные в апострофы.

Например:
’A’ ’!’ ’#’ ’f’ ’ш’ ’я’
В языке C++ существует понятие управляющих или ESCAPE – последовательностей.
Имя файла: Основные-понятия-программирования.pptx
Количество просмотров: 52
Количество скачиваний: 0