- •Оглавление
- •1.2. Свойства языков программирования
- •1.3. Основные парадигмы программирования Процедурное программирование
- •Модульное программирование
- •Абстракция данных
- •Объектно-ориентированное программирование
- •Непечатные символы
- •Тема 2 Типы данных
- •2.1. Понятие переменной и объявление переменных
- •Объявление переменных
- •Встроенные типы данных
- •Размер памяти, выделяемой под встроенные типы данных
- •2.2. Константы и перечисления Константные переменные
- •Перечисления
- •2.3. Операции и выражения
- •Мультипликативные операции
- •Операции сравнения
- •Побитовые логические операции
- •Побитовые операции
- •Комментарии
- •Оператор while(пока)
- •Оператор do/while(выполнять/пока)
- •Оператор for(цикл)
- •Оператор множественного выбора switch
- •Операторы breakиcontinue
- •Тема 4 Массивы
- •4.1.Определение, объявление и инициализация массивов
- •Объявления и инициализация массивов в программе
- •4.2. Сортировка массивов Пузырьковая сортировка
- •Сортировка вставками
- •4.3. Поиск в массивах Линейный поиск
- •Двоичный поиск
- •4.4. Многомерные массивы
- •Тема 5 Указатели Объявления и инициализация переменных указателей
- •5.1. Операции над указателями
- •5.2. Выражения и арифметические действия с указателями
- •5.3. Взаимосвязи между указателями и массивами
- •5.4. Массивы указателей
- •5.5. Динамическое выделение памяти под массивы
- •Тема 6 Функции
- •6.2. Определения функций
- •Генерация случайных чисел
- •6.3. Классы памяти и область действия Классы памяти
- •Область действия
- •6.4. Рекурсия
- •6.5. Ссылки и ссылочные параметры
- •Вызов функций по ссылке с аргументами указателями
- •6.6. Использование спецификатораconstс указателями
- •6.7. Перегрузка функций
- •Аргументы по умолчанию
- •6.8. Передача массивов в функции
- •6.9. Указатель на функцию
- •6.10. Командная строка аргументов
- •6.11 Неопределенное количество аргументов
- •Тема 7 Введение в обработку строк
- •7.1. Работа со строками в с
- •Понятие символов и строк в с
- •Функции для работы со строками
- •Определение длины строки
- •Сложение двух строк (конкатенация)
- •Добавление к исходной строке указанного количества символов.
- •Копирование строки в другую строку
- •Сравнение строк
- •Получение строки от пользователя
- •Тема 8 Работа с файлами
- •Открытие файла
- •Чтение из файла символа или строки символов
- •Запись символа или строки символов в файл
- •Смещение внутри файла
- •Значения параметра fromwhereфункцииfseek
- •Закрытие файла
- •Тема 9 Компоновка программ и препроцессор
- •9.1. Компоновка программ
- •Проблема использования общих функций и имен
- •Использование включаемых файлов
- •9.2. Препроцессор
- •Определение макросов
- •Условная компиляция
- •Дополнительные директивы препроцессора
- •Тема 10 Структуры
- •10.1. Определение структур и доступ к элементам
- •Доступ к элементам структур
- •Использование структур
- •10.2. Битовые поля
- •10.3. Объединения
- •10.4. Построение связных списков на основе структур с самоадресацией
- •Создание простого связного списка
- •Очереди
- •Деревья
- •Список рекомендуемой литературы
Оператор do/while(выполнять/пока)
Структура do/whileпохожа на структуруwhile. В структуреwhileусловие продолжения цикла проверяется в начале цикла, до того, как выполняется тело цикла. В структуреdo/whileпроверка условия продолжения циклов производится после того, как тело цикла выполнено, т.е. тело цикла будет выполнено по крайней мере один раз.
Задача.Определить количество цифр в числе, введенном пользователем.(рис. 3.3.)
#include <iostream>
using namespace std;
int main()
{
int num =0, step = 0, del=1;
cout<<"Введите число:\t";
cin>> num;
do
{
del*=10;
step++;
} while(num/del);
cout<<"Количество цифр:\t"<< step<<endl;
return 0;
}
Рис. 3.3. Определение количества цифр в числе
Оператор for(цикл)
Структура повторения forсодержит все элементы, необходимые для повторения, управляемого счетчиком. Инструкция цикла состоит из трех операторов. Первый оператор задает начальное значение переменной цикла, второй содержит условие продолжения цикла, а третий - шаг цикла.
Задача.Вывести на экран значения степеней двойки от 0 до 16.
#include <iostream>
using namespace std;
int main()
{
int step = 1;
cout<<"Степень:\t\tЗначение:"<<endl;
for(int i = 0; i<=16; i++)
{
cout<<i<<"\t\t"<<step<<endl;
step*=2;
}
return 0;
}
Рис. 3.4. Вывод на экран таблицы степеней двойки
Оператор множественного выбора switch
Программа в следующем примере осуществляет преобразование дюймов в сантиметры и сантиметров в дюймы; предполагается, что будут указаны единицы измерения вводимых данных, добавляя iдля дюймов иcдля сантиметров (через пробел).(рис. 3.5.)
#include <iostream>
using namespace std;
int main(){
const float fac = 2.54;
float x, in, cm; char ch = 0;
cout << "введите длину: "; cin >> x >> ch;
switch (ch) {
case 'i':
in = x;
cm = x*fac; break;
case 'c':
in = x/fac;
cm = x; break;
default:
in = cm = 0;
break;}
}
Рис. 3.5. Программа, выполняющая преобразования дюймов в сантиметры и наоборот
Оператор breakвызывает передачу программного управления на первый оператор после структурыswitch. Если не использоватьbreak, тогда каждый раз, когда одно из условийcaseудовлетворяется, будут выполняться операторы всех последующих метокcase. Если ни одно условие не выполнено, то выполняются действия после меткиdefault.
Структура switchотличается от всех других структур тем, что при нескольких действиях послеcaseне требуется заключать их в фигурные скобки.
Операторы breakиcontinue
Операторы breakиcontinueизменяют поток управления. Когда операторbreakвыполняется в структурахwhile,for,do/whileилиswitch, происходит немедленный выход из структуры. Программа продолжает выполнение с первого оператора после структуры. Обычное назначение оператораbreak– досрочно прерывать цикл или пропустить оставшуюся часть структурыswitch.
Оператор continueв структурахwhile,forилиdo/whileвызывает пропуск оставшейся части тела структуры и начинается выполнение последующей итерации цикла. В структурахwhileиdo/whileнемедленно после выполнения оператораcontinueпроизводится проверка условия продолжения цикла. В структуреforвыполняется выражение приращения, а затем осуществляется проверка условия продолжения. Поэтому при использовании оператораcontinueв циклахwhileиdo/whileвыражение приращения должно стоять до этого оператора.