
- •Часть 2 13
- •Часть 1 15
- •Часть 2 17
- •Пример 1
- •Пример 2
- •Организация повторения программы
- •Выполнение программы в пошаговом режиме
- •Задание для самостоятельного выполнения
- •Часть 2 Ветвление в программе с помощью оператора switch
- •Задание для самостоятельного выполнения
- •Программа, которая проверяет, является ли число простым
- •Программа, которая проверяет, является ли число палиндромом
- •Часть 2 Программы, использующие рекуррентные соотношения
- •Программа, которая находит числа Фибоначчи в заданном диапазоне.
- •Программа, которая находит значение квадратного корня из заданного числа, используя рекуррентное соотношение:
- •Программа, которая вычисляет сумму ряда с заданной точностью.
- •Пример – программа, которая вычисляет сумму ряда для заданного количества слагаемых.
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 3 Тема: “Программы, использующие вспомогательные функции”.
- •1. Программа, которая считывает координаты вершин треугольника на плоскости и находит все углы этого треугольника в градусах.
- •2. Программа, которая находит заданное количество чисел, содержащих цифру 3
- •3. Программа, которая находит на заданном отрезке натуральные числа, которые можно представить в виде суммы квадратов двух натуральных чисел.
- •Программа, которая находит первое автоморфное число справа от заданного.
- •6. Программа для вычисления биноминальных коэффициентов
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 4 Тема: “Программы, использующие строки символов ”.
- •Программа, которая считывает строку символов и сортирует ее по возрастанию кодов символов
- •Программа перевода числа из десятичной системы счисления в двоичную
- •Первый вариант (с использованием указателя)
- •Программа перевода числа из двоичной системы в десятичную
- •Программа перевода числа из 16-ой системы счисления в 2-ую.
- •Программа перевода числа из 2-ой системы счисления в 16-ую.
- •Программа, которая выводит на экран треугольник Паскаля (треугольник биноминальных коэффициентов)
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 5 Тема: “Программы, использующие файлы ”.
- •Программа, которая считывает имя файла, открывает его и подсчитывает количество скобок каждого вида, содержащихся в файле.
- •Программа, инвертирующая файл (переставляющая символы в обратном порядке)
- •Программа выводит на экран n-ую строку файла
- •Программа, которая переписывает текст из одного файла в другой, удаляя лишние пробелы между словами и делая ширину текста максимум 70 символов
- •5. Программа, которая считывает текст файла и создает новый файл, заменив во всем тексте заданное слово на новое (не изменяя деление на строки и количество пробелов между словами)
- •6. Программа, которая считывает данные для структуры Man из файла.
- •Программа создающая новый текстовый файл из двух данных, в котором 1-я строка –строка из первого файла, 2-я строка – строка из 2-го файла, 3-я строка – содержит общие символы первых 2-х строк.
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 6 Тема: “Программы, использующие массивы ”.
- •Программа заполняет массив a(50) случайными целыми числами из диапазона [-20, 30] и упорядочивает его по возрастанию. Исходный и упорядоченный массивы выводятся на экран дисплея.
- •Программа, которая по заданным корням многочлена степени n восстанавливает все коэффициенты многочлена.
- •Программа считывает линейный массив из файла, выводит его на экран, и подсчитывает количество элементов массива, находит min и max элементы и их индексы.
- •Программа заполняет массив a[5][5] случайными целыми числами из диапазона [-3, 3] и находит произведение элементов, стоящих на побочной диагонали.
- •Программа считывает матрицу из файла, выводит ee на экран, сортирует элементы в каждом столбце и отсортированную матрицу записывает в файл.
- •Программа, сортирующая файл по длине строки методом быстрой сортировки.
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 7 Тема: “Программы, использующие динамические структуры”.
- •Программа, которая создает очередь символов.
- •Программа, которая создает закольцованный список и затем последовательно удаляет из списка каждый m-й элемент до тех пор, пока не будут удалены все.
- •Программа, которая работает со стеком.
- •Программа, которая работает с деревом.
- •Задания для самостоятельного выполнения
Содержание
Типы данных С++ 7
Пример 1 10
Пример 2 11
Организация повторения программы 12
Выполнение программы в пошаговом режиме 12
Задание для самостоятельного выполнения 13
Часть 2 13
Ветвление в программе с помощью оператора switch 13
Задание для самостоятельного выполнения 14
Лабораторная работа №2 15
Тема: “Программы, использующие команды повторения (циклы). Рекуррентные соотношения“ 15
Часть 1 15
Программы, работающие с натуральными числами 15
1. Программа, которая находит наибольший общий делитель двух натуральных чисел m и n 15
2. Программа, которая проверяет, является ли число простым 16
3. Программа, которая проверяет, является ли число палиндромом 17
Часть 2 17
Программы, использующие рекуррентные соотношения 17
4. Программа, которая находит числа Фибоначчи в заданном диапазоне. 18
5. Программа, которая находит значение квадратного корня из заданного числа, используя рекуррентное соотношение: 18
6. Программа, которая вычисляет сумму ряда с заданной точностью. 19
7. Пример – программа, которая вычисляет сумму ряда для заданного количества слагаемых. 21
Задания для самостоятельного выполнения 21
Лабораторная работа № 3 23
Тема: “Программы, использующие вспомогательные функции”. 23
1. Программа, которая считывает координаты вершин треугольника на плоскости и находит все углы этого треугольника в градусах. 24
2. Программа, которая находит заданное количество чисел, содержащих цифру 3 25
3. Программа, которая находит на заданном отрезке натуральные числа, которые можно представить в виде суммы квадратов двух натуральных чисел. 26
4. Программа, которая находит первое автоморфное число справа от заданного. 27
5. Программа находит точки пересечения линий y= ax+b и y = c/x +d 28
6. Программа для вычисления биноминальных коэффициентов 30
Задания для самостоятельного выполнения 31
Лабораторная работа № 4 34
Тема: “Программы, использующие строки символов ”. 34
1. Программа, которая считывает строку символов и сортирует ее по возрастанию кодов символов 36
2. Программа перевода числа из десятичной системы счисления в двоичную 37
3. Программа перевода числа из двоичной системы в десятичную 38
4. Программа перевода числа из 16-ой системы счисления в 2-ую. 39
5. Программа перевода числа из 2-ой системы счисления в 16-ую. 40
6. Программа, которая выводит на экран треугольник Паскаля (треугольник биноминальных коэффициентов) 42
Задания для самостоятельного выполнения 44
Лабораторная работа № 5 47
Тема: “Программы, использующие файлы ”. 47
1. Программа, которая считывает имя файла, открывает его и подсчитывает количество скобок каждого вида, содержащихся в файле. 47
2. Программа, инвертирующая файл (переставляющая символы в обратном порядке) 48
3. Программа выводит на экран n-ую строку файла 49
4. Программа, которая переписывает текст из одного файла в другой, удаляя лишние пробелы между словами и делая ширину текста максимум 70 символов 51
5. Программа, которая считывает текст файла и создает новый файл, заменив во всем тексте заданное слово на новое (не изменяя деление на строки и количество пробелов между словами) 52
6. Программа, которая считывает данные для структуры Man из файла. 54
7. Программа создающая новый текстовый файл из двух данных, в котором 1-я строка –строка из первого файла, 2-я строка – строка из 2-го файла, 3-я строка – содержит общие символы первых 2-х строк. 56
8. Программа создаёт из двух файлов третий, в котором содержатся максимальные по длине слова из соответствующих строк исходных файлов, причём все слова длиннее 5-ти символов заключаются в квадратные скобки. 58
Задания для самостоятельного выполнения 61
Лабораторная работа № 6 64
Тема: “Программы, использующие массивы ”. 64
1. Программа заполняет массив A(50) случайными целыми числами из диапазона [-20, 30] и упорядочивает его по возрастанию. Исходный и упорядоченный массивы выводятся на экран дисплея. 64
2. Программа, которая по заданным корням многочлена степени n восстанавливает все коэффициенты многочлена. 65
3. Программа считывает линейный массив из файла, выводит его на экран, и подсчитывает количество элементов массива, находит min и max элементы и их индексы. 66
4. Программа заполняет массив A[5][5] случайными целыми числами из диапазона [-3, 3] и находит произведение элементов, стоящих на побочной диагонали. 68
5. Программа считывает матрицу из файла, выводит ee на экран, сортирует элементы в каждом столбце и отсортированную матрицу записывает в файл. 69
6. Программа, сортирующая файл по длине строки методом быстрой сортировки. 71
Задания для самостоятельного выполнения 74
Лабораторная работа № 7 77
Тема: “Программы, использующие динамические структуры”. 77
1. Программа, которая создает очередь символов. 77
2. Программа, которая создает закольцованный список и затем последовательно удаляет из списка каждый m-й элемент до тех пор, пока не будут удалены все. 78
3. Программа, которая работает со стеком. 80
4. Программа, которая работает с деревом. 81
Задания для самостоятельного выполнения 82
Типы данных С++
Концепция типа данных
Основная цель любой программы состоит в обработке данных. Данные различного типа хранятся и обрабатываются по-разному. В любом алгоритмическом языке каждая константа, переменная, результат вычисления выражения или функции должны иметь определенный тип.
Тип данных определяет:
внутреннее представление данных в памяти компьютера;
множество значений, которые могут принимать величины этого типа;
операции и функции, которые можно применять к величинам этого типа.
Исходя из этих характеристик, программист выбирает тип каждой величины, используемый в программе для представления реальных объектов. Обязательное описание типа позволяет компилятору проводить проверку допустимости различных конструкций программы. От типа величины зависят машинные команды, которые будут использоваться для обработки данных.
Все типы языка С++ можно разделить основные и составные. В языке С++ определенно шесть основных типов данных для представления целых (int, long), вещественных (float, double), символьных (char, wchar_t) и логических величин (bool). На основе этих типов программист может вводить описание составных типов. К ним относятся массивы, перечисления, функции, структуры, ссылки, указатели, объединения и классы. Существуют также четыре спецификатора типов: signed - знаковый, unsigned – без знаковый, short - короткий, long - длинный.
Ниже приведена таблица основных типов данных (Fundamental Types – по спецификации Microsoft).
Имя типа |
Размер в байтах |
Другое имя |
Диапазон значений |
int |
4 |
signed |
–2,147,483,648 ; 2,147,483,647 |
unsigned int |
4 |
unsigned |
0 ; 4,294,967,295 |
__int8 |
1 |
char |
–128 ; 127 |
unsigned __int8 |
1 |
unsigned char |
0 ; 255 |
__int16 |
2 |
short, short int, signed short int |
–32,768; 32,767 |
unsigned __int16 |
2 |
unsigned short, unsigned short int |
0 ; 65,535 |
__int32 |
4 |
signed, signed int, int |
–2,147,483,648 ; 2,147,483,647 |
unsigned __int32 |
4 |
unsigned, unsigned int |
0 ; 4,294,967,295 |
__int64 |
8 |
long long, signed long long |
–9,223,372,036,854,775,808 ; 9,223,372,036,854,775,807 |
unsigned __int64 |
8 |
unsigned long long |
0 ; 18,446,744,073,709,551,615 |
bool |
1 |
нет |
false или true |
char |
1 |
нет |
–128 ; 127 по умолчанию 0 to 255 при компиляции с ключём /J |
signed char |
1 |
нет |
–128 ; 127 |
unsigned char |
1 |
нет |
0 ; 255 |
short |
2 |
short int, signed short int |
–32,768 ; 32,767 |
unsigned short |
2 |
unsigned short int |
0 ; 65,535 |
long |
4 |
long int, signed long int |
–2,147,483,648 ; 2,147,483,647 |
unsigned long |
4 |
unsigned long int |
0 ; 4,294,967,295 |
long long |
8 |
нет (но эквивалентно __int64) |
–9,223,372,036,854,775,808 ; 9,223,372,036,854,775,807 |
unsigned long long |
8 |
нет (но эквивалентно unsigned __int64) |
0 ; 18,446,744,073,709,551,615 |
float |
4 |
нет |
3.4E +/- 38 (7 знаков) |
double |
8 |
нет |
1.7E +/- 308 (15 знаков) |
long double |
также как и double |
нет |
также как и double |
wchar_t |
2 |
__wchar_t |
0 ; 65,535 |