- •Содержание работы
- •1 Элементы языка с
- •1.1 Символы
- •2 Простые типы данных
- •3 Операции над числовыми данными
- •4 Объявление переменных
- •5 Структура программы на с
- •7 Директива #define
- •9 Библиотека математических функций
- •Содержание работы
- •1 Условный оператор if
- •Пример 1 Поиск наибольшего значения
- •Пример 2 Определение принадлежности точки фигуре
- •2 Составной оператор
- •Пример 3 Проверка условия существования треугольника
- •3 Вложенный оператор
- •Пример 4 Вложенное ветвление
- •4 Оператор выбора switch
- •Содержание работы
- •1 Определение цикла
- •Пример 1 Виды циклов
- •Задание 1
- •2 Оператор цикла for
- •3 Оператор цикла while
- •4 Оператор цикла do while
- •5 Табулирование функций
- •Пример 2 Табулирование непрерывной функции
- •Пример 3 Табулирование сложной функции
- •6 Вычисление конечных сумм и произведений
- •Пример 4 Вычисление суммы
- •Пример 5 Вычисление произведения
- •7 Управляющие конструкции break, continue, return, goto
- •Содержание работы
- •1 Понятие и описание массивов
- •Пример 1 Объявление одномерного массива
- •Пример 2 Объявление двумерного массива
- •2 Одномерные массивы Пример 3 Ввод элементов одномерного массива
- •Пример 4 Нахождение суммы и среднего значения элементов массива
- •Пример 5 Нахождение наибольшего элемента массива и его номера
- •3 Двумерные массивы (матрицы)
- •Пример 6 Суммирование матриц
- •4 Символьные массивы
- •Пример 7 Описание символьного массива
- •Пример 8 Сравнение строк
- •5 Указатели и операции над указателями
- •Пример 9 Описание указателей
- •Пример 10 Операции над указателями
- •Пример 11 Сравнение указателей
- •6 Связь между массивом и указателем
- •Содержание работы
- •1 Модульное программирование
- •2 Объявление функции
- •Пример 1 Объявление функции
- •Задание 1
- •Это важно
- •2 Формальные и фактические параметры функции
- •Задание 3
- •Содержание работы
- •1 Создание класса
- •Пример 1 Объявление класса
- •Задание 1
- •Пример 2 Доступ к членам класса
- •Задание 2
- •2 Полиморфизм
- •Пример 3 Перегрузка функций
- •Задание 3
- •Содержание работы
- •1 Понятие формы. Конструктор форм Windows Forms
- •2 Элементы управления
- •3 Создание приложений с помощью Windows Forms Application Пример 1 Создание простейшего оконного приложения
- •Пример 2 Создание идентификационной формы
- •Пример 3 Изменение параметров MessageBox.Show
- •5 Анализ кода
- •6 Расчетные формы Пример 4 Создание расчетной формы
- •Пример 5 Создание простейшего меню
- •7 Создание оконных приложений на базе mfc
2 Простые типы данных
Язык С является строго типизированным языком. Любая величина, используемая в программе, принадлежит к тому или иному типу. При любом использовании переменных в программе проверяется, применимо ли выражение или операция к типу переменной.
Для обозначения типа используются ключевые слова, которые определяют диапазон значений и размер области памяти, выделяемой под переменные.
Простые базовые типы:
-
Целочисленные типы – char (символьный), int (числовой)
-
Вещественные типы – float (числовой), double (числовой)
Таблица 3 – Базовые типы данных в С/С++ для 32-разрядной среды
Базовые целочисленные типы |
Базовые вещественные типы |
||||
Тип |
Размер памяти в байтах |
Диапазон значений |
Тип |
Размер памяти в байтах |
Диапазон значений |
char (символьный) |
1 |
от -128 до 127 |
float (вещественный) |
4 |
±(3.4Е-38...3.4Е38) |
int (целый) |
4 |
от -2 147 483 648 до 2 147 483 647
|
double (вещественный с двойной точностью) |
8 |
±(1.7Е-308...1.7Е308) |
Диапазон значений вещественных типов данных представлен в формате числа с плавающей точкой. После буквы Е указывается направление сдвига относительно десятичной точки: вправо, если после Е плюс, и влево, если минус.
Пример 2 Формат числа с плавающей точкой
2.437Е+02=2.437*102=243.7
Для образования типов, производных от простых, имеются модификаторы типа, которые (для числовых типов) бывают двух видов:
-
модификаторы знака – signed (знаковый), usingned (безнаковый);
-
модификаторы размера – short (короткий), long (длинный);
Это важно
-
модификатор записывается перед названием типа;
-
если не указан модификатор знаков, то по умолчанию подразумевается signed;
-
с базовым типом float модификаторы не употребляются;
-
модификатор short применим только к базовому типу int.
Некоторые синтаксически допустимые комбинации типов и модификаторов:
-
целые типы с модификаторами
unsigned сhar (1 бит, oт 0 до 255)
unsigned int (4 бита, от 0 до 4 294 967 295)
short int (2 бита, от -32 768 до 32 767)
unsigned short int (2 бита, от 0 до 65 535)
-
вещественные типы
long double (10 бит, ±(3.4Е-4932...1.1Е+4932))
Задание 2
Расположите целые (long, int, char, shot) и вещественные (long double, float) типы по старшинству типов по следующему принципу: старший тип включает в себя все значения младшего типа как подмножество.
3 Операции над числовыми данными
Над числовыми данными определены следующие группы операций (рисунок 1).
Рисунок 1 – Операции над числовыми данными
1.1 Арифметические операции определены как над данными целочисленных типов, так и вещественных (таблица 4).
Таблица 4 – Арифметические операции
Арифметические операции над данными целочисленных типов |
Арифметические операции над данными вещественных типов |
+ (сумма) - (разность) * (произведение) / (целочисленное деление) % (взятие остатка) ++ (инкремент) -- (декремент) |
+(сумма) - (разность) *(произведение) / (деление) % (взятие остатка) ++ (инкремент) -- (декремент) |
Операции ++ и -- применяются только к переменным и, соответственно, увеличивают или уменьшают значение переменной на 1.
Примечание
Наличие в С/С++ операций ++ и -- связано с тем, что в системе команд микропроцессора имеются специальные операции для увеличения и уменьшения значения (обычно в регистре) именно на 1. Поэтому запись а++; предпочтительнее записи а=а+1; поскольку в большинстве случаев операции инкремента выполняются быстрее.
Операции ++ и -- могут быть префексными и постфиксными. Постфиксные операции выполняются после того, как значение переменной было использовано в выражении. А префиксные – до того.
Пример 3 Операция ++ в постфиксной и префексной формах
1) int a=3, b=2;
c=a++*b++;
В результате получим с=6, а=4, b=3
2) int a=3, b=2;
c=++a*++b;
В результате получим с=12, а=4, b=3
Задание 3
Определите значение переменной d:
int a=5, b=1, c=4, d;
d=++a*b++-++c;
Над данными целочисленных типов определены также битовые (поразрядные) операции, которые применяются только к двоичному представлению числа. Это
>> (сдвиг влево)
<< (сдвиг вправо)
1.2 Операция присваивания = – это операция, вырабатывающая значение, которое может использоваться в выражениях. Например, a=a+b; или a+=b;
Множественное присваивание – присваивание одного и того же значения нескольким переменным. Например, a=b=c=1; или a=1; b=1; c=1;
Выражения – это переменные, функции и константы объединенные знаками операций. Переменные, функции и константы в записи выражения называются операндами. Например, в записи y=cos(x)+x выражением является cos(x)+x, где функция cos(x) – первый операнд, переменная x – второй операнд.
1.3 Операции отношения будут рассмотрены в лабораторной работе №2.
1.4 Логические операции будут рассмотрены в лабораторной работе №2.
1.5 Операция запятая (,) или операция последовательного вычисления используется для связывания нескольких выражений в одно. Применение будет рассмотрено при изучении управляющих конструкций.
По количеству операндов, участвующих в операции, операции подразделяются на унарные, бинарные и тернарные.
Унарные операции (один операнд) выполняются справа налево.
Некоторые унарные операции приведены в таблице 5.
Таблица 5 – Унарные операции
Знак операции |
Операция |
- |
арифметическое отрицание |
~ |
побитовое логическое отрицание |
! |
логическое отрицание |
+ |
унарный плюс |
++ |
увеличение (инкремент) |
-- |
уменьшение (декремент) |
В отличие от унарных, бинарные операции (два операнда), список которых приведен в таблице 6, выполняются слева направо.
Таблица 6 – Бинарные операции
Знак операции |
Операция |
Группа операций |
* |
Умножение |
Арифметические мультипликативные |
/ |
Деление |
|
% |
Остаток от деления |
|
+ |
Сложение |
Арифметические аддитивные |
- |
Вычитание |
|
<< |
Сдвиг влево |
Операции сдвига |
>> |
Сдвиг вправо |
|
< |
Меньше |
Операции отношения |
<= |
Меньше или равно |
|
>= |
Больше или равно |
|
= = |
Равно |
|
!= |
Не равно |
|
& |
Битовая операция И |
Битовые (поразрядные) операции |
| |
Поразрядное ИЛИ |
|
^ |
Поразрядное исключающее ИЛИ |
|
&& |
Логическое И |
Логические операции |
|| |
Логическое ИЛИ |
|
, |
Последовательное вычисление |
Последовательного вычисления |
= |
Присваивание |
Операции присваивания |
*= |
Умножение с присваиванием |
|
/= |
Деление с присваиванием |
|
%= |
Остаток от деления с присваиванием |
|
-= |
Вычитание с присваиванием |
|
+= |
Сложение с присваиванием |
|
<<= |
Сдвиг влево с присваиванием |
|
>>= |
Сдвиг вправо присваиванием |
|
&= |
Поразрядное И с присваиванием |
|
|= |
Поразрядное ИЛИ с присваиванием |
|
^= |
Поразрядное исключающее ИЛИ с присваиванием |
Тернарной операцией (три операнда) является операция «условие ?», которая реализует алгоритмическую структуру ветвления (не рассматривается в рамках лабораторного практикума).