- •Сведения об авторах
- •1. Знакомство с языком С++
- •1.1 Первая программа на С++
- •1.2 Среда программирования Qt Creator
- •2. Общие сведения о языке С++
- •2.1 Алфавит языка
- •2.2 Данные
- •2.2.1 Символьный тип
- •2.2.2 Целочисленный тип
- •2.2.3 Вещественный тип
- •2.2.4 Логический тип
- •2.2.5 Тип void
- •2.3 Константы
- •2.4 Структурированные типы данных
- •2.5 Указатели
- •2.6 Операции и выражения
- •2.6.1 Операции присваивания
- •2.6.2 Арифметические операции
- •2.6.3 Логические операции
- •2.6.4 Операции отношения
- •2.6.5 Условная операция
- •2.6.6 Операция преобразования типа
- •2.6.7 Операция определения размера
- •2.6.8 Операции с указателями
- •2.7 Стандартные функции
- •2.8 Структура программы
- •2.9 Ввод и вывод данных
- •2.9.1 Функции ввода - вывода
- •2.10 Задачи для самостоятельного решения
- •2.10.2 Операции целочисленной арифметики.
- •2.10.3 Встроенные математические функции
- •3. Операторы управления
- •3.1 Основные конструкции алгоритма
- •3.2 Составной оператор
- •3.3 Условные операторы
- •3.3.1 Условный оператор
- •3.3.2 Оператор варианта
- •3.4 Операторы цикла
- •3.4.1 Оператор цикла с предусловием
- •3.4.2 Оператор цикла с постусловием
- •3.4.3 Оператор цикла с параметром
- •3.4.4 Операторы передачи управления
- •3.5 Решение задач с использованием циклов
- •3.6 Задачи для самостоятельного решения
- •3.6.1 Разветвляющийся процесс. Вычисление значения функции.
- •3.6.2 Разветвляющийся процесс. Попадание точки в плоскость.
- •3.6.3 Разветвляющийся процесс. Пересечение линий и решение уравнений.
- •3.6.4 Циклический процесс. Вычисление значений функции
- •3.6.6 Циклический процесс. Последовательности произвольных чисел
- •3.6.7 Циклический процесс. Работа с цифрами в числе
- •3.6.8 Вложенные циклы
- •4. Использование функций при программировании на С++
- •4.1 Общие сведения о функциях. Локальные и глобальные переменные
- •4.2 Передача параметров в функцию
- •4.3 Возврат результата с помощью оператора return
- •4.4 Решение задач с использованием функций
- •4.5 Рекурсивные функции
- •4.6 Перегрузка функций
- •4.7 Шаблоны функций
- •4.8 Область видимости переменных в функциях
- •4.9 Функция main(). Параметры командной строки
- •4.10 Задачи для самостоятельного решения
- •4.10.1 Применение функций при работе с последовательностями чисел
- •4.10.2 Применение функций для вычислений в различных системах счисления
- •4.10.3 Применение функций для решения нелинейных уравнений
- •5. Массивы
- •5.1 Статические массивы в С(С++)
- •5.1.1 Описание статических массивов
- •5.1.2 Основные операции над массивами
- •5.2 Динамические массивы в С(С++)
- •5.2.1 Функция malloc
- •5.2.2 Функция calloc
- •5.2.3 Функция realloc
- •5.2.4 Функция free
- •5.2.5 Операторы new и delete
- •5.3 Основные алгоритмы обработки массивов
- •5.3.2 Вычисление суммы элементов массива
- •5.3.3 Вычисление произведения элементов массива
- •5.3.4 Поиск максимального элемента в массиве и его номера
- •5.3.5 Удаление элемента из массива
- •5.3.6 Сортировка элементов в массиве
- •5.3.6.1 Сортировка методом «пузырька»
- •5.3.6.2 Сортировка выбором
- •5.3.6.3 Сортировка вставкой
- •5.4 Указатели на функции
- •5.5 Совместное использование динамических массивов, указателей, функций в сложных задачах обработки массивов
- •5.6.1 Основные операции при работе с массивами
- •5.6.2 Применение функций для обработки массивов.
- •5.6.3 Работа с группами элементов в массиве
- •5.6.4 Сортировка элементов массива
- •6. Статические и динамические матрицы
- •6.1 Статические матрицы С(С++)
- •6.2 Динамические матрицы
- •6.2.1 Использование указателей для работы с динамическими матрицами
- •6.2.2 Использование двойных указателей для работы с динамическими матрицами
- •6.3 Обработка матриц в С(С++)
- •6.4 Решение некоторых задач линейной алгебры
- •6.5 Задачи для самостоятельного решения
- •6.5.1 Основные операции при работе с матрицами
- •6.5.2 Работа со строками и столбцами матрицы
- •6.5.3 Решение задач линейной алгебры
- •7. Организация ввода-вывода в C++
- •7.1.2 Использование манипуляторов форматирования
- •7.2 Работа текстовыми файлами в C++
- •7.2.1 Запись информации в текстовый файл
- •7.2.2 Чтение информации из текстового файла
- •7.3 Обработка двоичных файлов
- •8. Строки в языке С++
- •8.1 Общие сведения о строках в С++
- •8.2 Операции над строками
- •8.3 Тип данных string
- •8.4 Задачи для самостоятельного решения
- •9. Структуры в языке С++
- •9.1 Общие сведения о структурах
- •9.2 Библиотеки для работы с комплексными числами
- •9.3 Задачи для самостоятельного решения
- •9.3.1 Структуры. Операции над комплексными числами
- •9.3.2 Работа с библиотекой комплексных чисел
Алексеев Е.Р., Чеснокова О.В. Самоучитель по программированию на C/C++. |
255 |
#include <stdlib.h> #include <iomanip> using namespace std; int main()
{
ifstream f;
int p,j,i,kol,m,n=0; string S[10]; f.open("text.txt"); if (f)
{while (!f.eof())
{ getline(f,S[n]);
cout<<S[n]<<"\n";
n++;
}
f.close();
cout<<"Количество слов в тексте - "<<n-1<<endl; for (kol=0,i=0;i<n;i++)
{ m=S[i].length(); S[i]+=" ";
for (p=0;p<m;)
{
j=S[i].find(" ",p);
if (j!=0) {kol++; p=j+1;} else break;
}
}
cout<<"Количество строк в тексте - "<<kol<<endl;
}
else cout<<"File not found"<<endl; return 0;
}
Рисунок 8.3. Результаты работы программы к задаче 8.1
8.4Задачи для самостоятельного решения
Разработать программу на языке С++ для следующих заданий:
1.Подсчитать количество слов в каждой строке текста.
2.Подсчитать количество символов в тексте.
Алексеев Е.Р., Чеснокова О.В. Самоучитель по программированию на C/C++. |
256 |
3.Подсчитать количество точек в тексте.
4.Подсчитать количество пробелов в тексте.
5.Удалить из теста все пробелы.
6.Удалить из теста все точки.
7.Вставить вместо каждого пробела восклицательный знак.
8.Вставить перед каждым восклицательным знаком вопросительный.
9.Определить содержит ли текст хотя бы один восклицательный знак и в какой строке.
10.Подсчитать количество слов в четных строках текста.
11.Найти номер самой длинной строки текста.
12.Променять местами первую и последнюю строки текста..
13.Определить, есть ли в тексте пустые строки.
14.Определить содержит ли текст хотя бы пару соседних одинаковых строк.
15.Найти самую короткую строку текста и заменить ее фразой «Happy new year!».
16.Найти самую длинную строку текста и заменить ее пустой строкой.
17.Определить количество слов в нечетных строках текста.
18.Определить количество пробелов в четных строках текста.
19.Определить количество предложений в тексте, учитывая, что предложение заканчивается точкой, вопросительным или восклицательным знаком.
20.Поменять местами самую длинную и самую короткую строки текста.
21.Вывести на печать первое предложение текста, учитывая что оно заканчивается точкой.
22.Определить количество пробелов в нечетных строках текста.
23.Удалить из теста все восклицательные и вопросительные знаки.
24.Определить содержит ли текст хотя бы один вопросительный знак и в какой строке.
25.Добавить в начало каждой строки текста ее номер и пробел.
