- •Программирование и основы алгоритмизации Методические указания к лабораторным работам
- •Введение
- •Порядок выполнения лабораторных работ
- •Оформление отчетов к лабораторным работам
- •Лабораторная работа 1
- •Директивы препроцессора
- •Комментарии
- •Простые типы
- •Операции над простыми типами
- •Функции
- •Ввод-вывод в стиле с
- •Массивы
- •Варианты индивидуальных заданий
- •Лабораторная работа №2 Указатели. Связь массивов и указателей
- •Понятие указателя
- •Связь между массивами и указателями
- •Динамическое формирование массивов
- •Варианты индивидуальных заданий
- •Лабораторная работа №3 Обработка строк текста
- •Примеры программ
- •Варианты индивидуальных заданий
- •Лабораторная работа №4 Работа с файлами
- •Примеры программ
- •Варианты индивидуальных заданий
- •Заключение
- •Библиографический список
Простые типы
К ним относятся:
char short int long float double bool
Первые четыре типа используются для представления целых (в том числе и тип char, так как представление символа – его код), последние два - для представления чисел с плавающей точкой, bool – для представления логических значений (только С++).
Переменная типа char обычно имеет размер 1 байт (1 символ), а переменная типа int имеет размер 2 или 4 байта (в зависимости от компилятора).
Перед типами short, int и long можно поставить прилагательное unsigned, что обозначает беззнаковый.
К основному типу можно добавить const. Это дает тип, имеющий те же свойства, что и исходный тип, за исключением того, что значение переменных типа const не может изменяться после инициализации.
const float pi = 3.14;
const char plus = '+';
Символ, заключенный в одинарные кавычки, является символьной константой.
Константа должна инициализироваться при описании. Для переменных инициализация не обязательна, но настоятельно рекомендуется.
Операции над простыми типами
Арифметические операции:
+ (плюс, унарный и бинарный)
- (минус, унарный и бинарный)
* (умножение)
/ (деление)
% (остаток от деления)
Следует заметить, что целое деление дает целый результат: 7/2 есть 3. Над целыми может выполняться операция % получения остатка: 7%2 равно 1.
При присваивании и арифметических операциях C++ выполняет все осмысленные преобразования между основными типами, чтобы их можно было сочетать без ограничений.
Логические операции:
& (поразрядная операция И), && (логическое И)
| (поразрядная ИЛИ), || (логическое ИЛИ)
^ (исключающее ИЛИ)
<< (логический сдвиг влево)
>> (логический сдвиг вправо)
В языке C логические операции применяются к целым, так как в С нет отдельного логического типа данных. При этом значение 0 интерпретируется как «Ложь», а все значения, отличные от нуля – «Истина». В языке C++ имеется тип данных bool, однако логические операции также могут применяться и к целочисленным типам.
Операции сравнения:
== (два подряд идущих знака равно – сравнение на равенство)
!= (не равно)
< (меньше) > (больше)
<= (меньше или равно) >= (больше или равно)
В C++ есть операция присваивания =, а не оператор присваивания, как в некоторых языках, например, Турбо Паскале. Операция не только присваивает значение справа левому аргументу, но и возвращает это значение. Таким образом, присваивание может встречаться в неожиданном контексте; например, x=3*(a=2*x); Это бывает полезно: a=b=c; означает присвоение c переменной b, а затем переменной a.
Другим свойством операции присваивания является то, что она может совмещаться с большинством бинарных операций, таким образом, появляются операции +=, -=, *=, /=, %= (например, x+=5; то же самое, что x=x+5; ).
Операция ‘,’ (запятая) – операция последовательного вычисления. Вычисляет значение левого и правого операнда, возвращает значение правого операнда. Например: x=2, b=3 – то же самое, что и x=2; b=3;
Унарные операции:
Операция sizeof(объект) – возвращает размер в байтах того объекта, к которому применяется.
Операции -- и ++ - декремент и инкремент – уменьшают или увеличивают значение аргумента на 1. Могут быть записаны как перед операндом (префиксная форма), так и после операнда (постфиксная форма). Если знак операции записан перед операндом, то изменение операнда происходит до его использования в выражении. Например:
x=3; a=++x; //a=4, x=4
Ещё пример:
x=3; a=++x+ ++x; //a=10, x=5
В данном примере x увеличивается на единицу два раза, после чего вычисляется выражение.
В языке C++ имеется одна тернарная операция – условная операция, которая имеет следующий формат:
операнд1 ? операнд2 : операнд3
Если операнд1 не равен 0, то результатом операции будет являться значение операнда 2, иначе – операнда 3.
Операторы-выражения
Оператор-выражение состоит из выражения, за которым следует точка с запятой. Например: a = b*3+c; b*8; x++;
Блоки (составные операторы)
Блок - это список операторов, заключенный в фигурные скобки: { a=b+2; b++; }
Блок позволяет рассматривать несколько операторов как один.
Условные операторы
Оператор if имеет стандартный формат:
if (выражение) оператор [else другой оператор]
Пример:
if(i<j) i++; else j++;
if(i==0) {i++;f(i+j);} else {i--;g(i+j);}
Оператор switch. Предназначен для организации выбора из нескольких вариантов. Например:
int i=2;
switch(i)
{case 1: i+=2;break;
case 2: i*=3;break;
case 0: i/=2;break;
case 4: i-=5;break;
default:;
}
Циклы
Оператор for – наиболее общий способ организации цикла. Имеет следующий формат:
for(выражение1;выражение2;выражение3) тело цикла
Выражение1 обычно используют для установки начального значения переменных, управляющих циклом. Выражение2 – это выражение, определяющее условие, при котором тело цикло будет выполняться. Выражение3 определяет изменения переменных, управляющих циклом, после каждого тела цикла. Например:
#include <iostream.h>
main()
{int i,b; //выведем квадраты чисел от 1 до 9
for(i=1;i<10;i++)
{b=i*i; cout <<i<<” “<< b << end;
} return 0;
}
Оператор while - цикл с предусловием.
while (выражение) оператор
аналогичен такому же оператору в Турбо Паскале.
Оператор do while – цикл с постусловием.
do оператор while(выражение);
Тело цикла выполняется хотя бы один раз. Если выражение ложно, выполнение цикла заканчивается, иначе продолжается. Аналогичен циклу repeat в Турбо Паскале, но, в отличие от него, в данном случае после while записывается не условие окончания, а условие продолжения цикла.
Пример:
int i=2;
do i+=2; while(i<10); cout << i;
В теле циклов можно использовать операторы break и continue. break выходит из тела цикла, continue передаёт управление на очередную итерацию цикла.