Язык С.С/С++ (лекция 1)

Содержание

Слайд 2

Язык С был разработан Деннисом М. Ритчи в 1972 году. Реализация С,

Язык С был разработан Деннисом М. Ритчи в 1972 году. Реализация С,
в соответствии с изложенными правилами, рассматривается как K&R стандарт (Брайн В. Керниган и Ритчи). K&R – минимальная стандартная реализация. В 1983 году Американский институт национальных стандартов (ANSI) разработал новый стандарт, названный стандартом ANSI языка С.
С++ - это надмножество языка С. Реально он включает все операторы и средства языка С, добавив только некоторые новые. Преимущество С++ в том, что он позволяет с большой легкостью разрабатывать большие сложные программы за счет модульного подхода и некоторых других усовершенствований. Кроме того, С++ является языком ООП.

Слайд 3

Логические структуры языка.


Программа состоит из лексических элементов.
1. Элементы
Программа на С представляет

Логические структуры языка. Программа состоит из лексических элементов. 1. Элементы Программа на
собой строки, состоящие из лексических элементов пяти типов: ключевые слова, константы, операции, ограничители, идентификаторы.
Смежные элементы отделяются друг от друга разделителями или комментариями.
Разделители: пробелы, символы табуляции, возврата каретки, перевода строки.
2. Комментарии
Они служат для документирования программы
Формат /* текст комментария */
Пример
/* Программа выводит сообщение на экран */

Слайд 4

3. Ограничители
Символы – ограничители: ( ), [ ], { }, : ,

3. Ограничители Символы – ограничители: ( ), [ ], { }, :
, , ;
4. Операции
Перечень операций приведен ниже:
Одно символьные операции: = ! ^ & * - : . < > / ? + %
Двух символьные операции: = = != && :: -> ++ -- << >> <= >= += -= *= /= %= ^= := &=
Трехсимвольные операции: <<= >>=
5. Идентификаторы
Они служат для именования типов, переменных, констант и функций. Идентификатор состоит из букв и цифр и может содержать символы подчеркивания. Значащие – первые 32 символа. Начинается идентификатор с буквы. В идентификаторах прописные и заглавные буквы различаются.

Слайд 5

6. Зарезервированные слова
В С используются зарезервированные слова, которые нельзя использовать в качестве

6. Зарезервированные слова В С используются зарезервированные слова, которые нельзя использовать в
идентификаторов. Они задаются прописными буквами. Фрагмент таблицы зарезервированных слов.

Слайд 6

Константы

В С имеется четыре типа констант: целые, вещественные, символьные и строковые.
Константы целого

Константы В С имеется четыре типа констант: целые, вещественные, символьные и строковые.
типа
Константы целого типа могут задаваться в десятичной, 8-ой или 16-ой системах счисления.
Десятичные целые константы образуются из цифр. Первой цифрой не должен быть 0.
Восьмеричные константы начинаются с цифры 0, за которой следуют цифры 0-7.
Шестнадцатеричные константы начинаются с цифры 0 и символа , за которыми может стоять одна или более 16-ых цифр 0-9,A-F.

Слайд 7

Пример
#include
main()
{
int a=3478,
b=06626,
c=0xD96;
printf(“a=%d b=%d c=%d\n”,a,b,c);
}
На экране
a=3478 b=3478 c=3478

Пример #include main() { int a=3478, b=06626, c=0xD96; printf(“a=%d b=%d c=%d\n”,a,b,c); }

Слайд 8

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

Константы вещественного типа Константы этого типа состоят из цифр, десятичной точки и
десятичного порядка
Примеры
1. 2е1 .1234 .1е3
.1 2Е1 1.234 0.0035е-6
1.0 2е-1 2.1е-12 0.234

Слайд 9

Символьные константы
Символьные константы заключаются в одиночные кавычки (апострофы)
Например
if (ch>=’a’&&ch<=’z’)
Одни символьные константы

Символьные константы Символьные константы заключаются в одиночные кавычки (апострофы) Например if (ch>=’a’&&ch
соответствуют символам, которые можно вывести на экран, другие – управляющим символам, задаваемым с помощью esc-последовательности, третьи – форматирующим символам, также задаваемым с помощью esc – последовательности.
Например
Символ “апостроф” → ‘\’’;
Переход на новую строку → ‘\n’;
Обратный слэш → ‘\\’.

Слайд 10

Управляющие коды

В следующей таблице приведены управляющие коды. Каждая esc – последовательность

Управляющие коды В следующей таблице приведены управляющие коды. Каждая esc – последовательность
должна быть заключена в кавычки

Слайд 11

Строковые константы

Строковые константы состоят из нуля или более символов, заключенных в двойные

Строковые константы Строковые константы состоят из нуля или более символов, заключенных в
кавычки. В строковых константах управляющие коды задаются с помощью esc-последовательности.
Замечания к использованию констант
Для задания констант можно использовать их непосредственное написание (обозначение). Кроме того, существуют следующие способы задания константы:
a) Макроопределение
Формат
#define <имя константы> <значение константы>
Например
#define PI 3.14
#define CHARACTER_B 'B'
#define version_oct 020 // для восьмеричного числа
#define version_dec 16 // для десятичного числа
#define version_hex 0x10 // для 16-го числа
#define NAME “ALEKS”

Слайд 12

a) Макроопределение
Формат
#define<имя константы><значение константы>
Например
#define PI 3.14
#define CHARACTER_B 'B'
#define version_oct 020 // для

a) Макроопределение Формат #define Например #define PI 3.14 #define CHARACTER_B 'B' #define
восьмеричного числа
#define version_dec 16 // для десятичного числа
#define version_hex 0x10 // для 16-го числа
#define NAME “ALEKS”

Слайд 13

б) типизированные константы
Можно определить константу, описать тип данных и присвоить значение, использую

б) типизированные константы Можно определить константу, описать тип данных и присвоить значение,
ключевое слово const
Например
main()
{
const int CHILDREN=8;
const char INIT=’C’;
const float NUMBER=1.65;
}

Слайд 14

Скалярные типы данных, операции, преобразование типов.

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

Скалярные типы данных, операции, преобразование типов. Используются различные типы данных для представления
и обрабатываемой информации.
Типы данных и элементы памяти.
Тип задается набором допустимых значений и набором действий, которые можно совершать над каждой переменной рассматриваемого типа. Переменные типизируются посредством их описаний. Выражения типизируются посредством содержащих в них операций.
Есть предопределенные типы данных: целые, вещественные, указатели, переменные, массивы, функции, объединения, структуры и void (отсутствие типа).
Скалярные типы: указатель, арифметический (целый, вещественный), перечисляемый.

Слайд 15

Агрегатные типы: массив, структура, объединение.
В следующей таблице представлены типы С, их размеры

Агрегатные типы: массив, структура, объединение. В следующей таблице представлены типы С, их размеры и диапазоны
и диапазоны

Слайд 16

2. Переменные целого типа

Переменная описываются с помощью спецификатора типа (см. таблицу) и

2. Переменные целого типа Переменная описываются с помощью спецификатора типа (см. таблицу)
при описании ей может быть присвоено начальное значение.
Пример
int age=20, height=170; // возраст, рост
unsigned weight=height/2; // вес
long index; // индекс
Замечание Если используются спецификаторы unsigned, short, long, то int можно опускать.
Допустимые операции над целочисленными операндами указаны в таблице

Слайд 19

3. Переменные вещественного типа
Для описания таких переменных используются спецификаторы float, double, long

3. Переменные вещественного типа Для описания таких переменных используются спецификаторы float, double,
double.
Пример
float force=12.78, /* сила */
acceleration=1.234; /* ускорение */
double height; /* высота */
Операции над вещественными операндами, аналогичны арифметическим и логическим операциям над целочисленными операндами (см. предыдущую таблицу). Исключение – операция % (остаток от деления).

Слайд 20

4. Символьные переменные

Для описания символьных переменных используются спецификаторы char, signed char, unsigned

4. Символьные переменные Для описания символьных переменных используются спецификаторы char, signed char,
char.
Можно задавать начальные значения.
Пример
char ch=’$’, ans=’n’, ascii_value=65;
Замечание
В выражениях переменные типа char могут смешиваться с переменными типа int, поскольку те и другие принадлежат к целому типу.

Слайд 21

Пример
#include
main()
{
char ch=’a’, ans;
printf(“значение ch+3=%c”,ch+3);
ans=ch%3;
printf((“\n\n значение ans=%d\n”,ans);
}
Программа выводит на экран следующие строки:
Значение

Пример #include main() { char ch=’a’, ans; printf(“значение ch+3=%c”,ch+3); ans=ch%3; printf((“\n\n значение
ch+3=d
Значение ans=1

Слайд 22

5. Строковые переменные
Для определения строковой переменной необходимо использовать тип char и указать

5. Строковые переменные Для определения строковой переменной необходимо использовать тип char и
максимальное число символов, которое может содержать строка. Строка объявляется, как массив символов, но для работы с массивом символов, как со строкой имеется набор библиотечных функций.
Описание в общем случае:
char name[n];
name – имя массива;
n – размер массива.
Пример char str[80];
Работу со строковыми данными рассмотрим подробнее при изучении массивов и функций работы со строками.

Слайд 23

6. Приоритет и порядок выполнения операций.
Если в выражении не используются круглые скобки,

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

Слайд 25

7. Операции отношения
Логические выражения строятся из операций отношения и вырабатывают в качестве

7. Операции отношения Логические выражения строятся из операций отношения и вырабатывают в
результата значение типа int. Если результат равен 0, то считается, что логическое выражение ложно, в противном случае – истинно. Если в логическом выражении не используются скобки, то оно вычисляется слева направо. Вычисление прекращается, как только результат становится определенным. Такой способ вычисления логических выражений называется усечением.

Слайд 26

Например
if (a>b||c>d||e>f)
Вычисление выражения прерывается, как только выясняется, что, либо a>b,

Например if (a>b||c>d||e>f) Вычисление выражения прерывается, как только выясняется, что, либо a>b,
либо c>d, либо e>f.
Усечение с успехом может быть использовано для задания корректного порядка вычислений в логических выражениях.
Например, логическое выражение
if (b!=0.0&&a/b>12.4)
Имеет больший смысл, чем логическое выражение
if (a/b>12.4&&b!=0.0)

Слайд 27

8. Побитовые операции
Операнд или операнды побитовых операций должны быть целого типа. Побитовые

8. Побитовые операции Операнд или операнды побитовых операций должны быть целого типа.
операции используются для манипуляция с битами на нижнем уровне. Операции &,|,^ определяются следующим образом

Слайд 28

Операции << и >> служат для сдвига последовательности битов, соответственно, влево и

Операции > служат для сдвига последовательности битов, соответственно, влево и вправо. Эти
вправо.
Эти операции можно применять для деления или умножения на число, равное степени 2, в соответствии со следующими правилами:

Слайд 29

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

К ним относятся: = , += , -= , *=

9. Операции присваивания К ним относятся: = , += , -= ,
, /= , %= , и префиксные и постфиксные операции ++ и --.
Все операции присваивают переменной результат вычисления выражения. Если тип левой части отличается от типа правой части, то тип правой части приводится к типу левой. В одном операторе операция присваивания может встречаться несколько раз. Вычисление производится справа налево. Например a=(b=c)*d; Значению b присваивается значение c, затем выполняется операция умножения на d и результат присваивается a.
Типичный пример использования многократного присваивания a=b=c=d=e=f=0;
Операции += , -= , *= , /= укороченная форма, т.е.
a+=b; -> a=a+b; a-=b; -> a=a-b; a*=b; -> a=a*b; a/=b; -> a=a/b;

Слайд 30

Постфиксные и префиксные операции ++ и -- используются для увеличения (инкремент) и

Постфиксные и префиксные операции ++ и -- используются для увеличения (инкремент) и
уменьшения (декремент) на 1 значения переменной. Семантика операций следующая:
++a ,а++– увеличение значения переменной a на 1 до (после) ее использования в выражении.
--a ,а-- – уменьшение значения переменной a на 1 до (после) ее использования в выражении.
Пример
#include
main()
{
int a,b,c=3,d=4,f=3,g,h=5,z=6,i;
a=z+(b=c*d*f+(g=h+(i=3)));
printf(“%d\n”,a);
} // Программа выводит на экран значение – ?.

Слайд 31

10. Операция sizeof

Эту операцию можно применять к константе, типу или переменной. В

10. Операция sizeof Эту операцию можно применять к константе, типу или переменной.
результате будет получено число байтов, занимаемых операндом. Если операндом является тип, то такой операнд следует заключать в круглые скобки. Если операнд переменная, то скобки можно опускать.
Пример
#include
main() {
float a;
int b;
char c;
float d[500];

Слайд 32

printf(“\n Размер памяти под целое %d”, sizeof(int));
printf(“\n Размер памяти под двойную точность

printf(“\n Размер памяти под целое %d”, sizeof(int)); printf(“\n Размер памяти под двойную
%d”, sizeof(double));
printf(“\n Размер памяти под переменную a %d”, sizeof a);
printf(“\n Размер памяти под массив d %d”, sizeof d); }
Результат работы программы
Размер памяти под целое 2
Размер памяти под двойную точность 8
Размер памяти под переменную a 4
Размер памяти под массив d 2000

Слайд 33

11. Операция “запятая”
Операция “запятая” для связывания между собой выражений. Список выражений, разделенный

11. Операция “запятая” Операция “запятая” для связывания между собой выражений. Список выражений,
запятыми, трактуется как единое выражение и вычисляется слева направо. Пример
if (c=getchar(),c>’a’) Читается символ в переменную с и сравнивается с символом ‘a’, результат целое число.
12. Приведение и преобразование типов
Для выполнения однозначного преобразования (cast) объектов одного типа в другой в С имеется специальная конструкция вида:
(имя_типа) выражение;
Пример float r=3.5 int i; i=(int) r;
Имя файла: Язык-С.С/С++-(лекция-1).pptx
Количество просмотров: 23
Количество скачиваний: 0