Содержание
- 2. Программирование на языке C++ § 9. Массивы
- 3. Что такое массив? Массив – это группа переменных одного типа, расположенных в памяти рядом (в соседних
- 4. Выделение памяти (объявление) int A[5]; double V[8]; bool L[10]; char S[80]; число элементов const int N
- 5. Обращение к элементу массива A массив 2 15 НОМЕР элемента массива (ИНДЕКС) A[0] A[1] A[2] A[3]
- 6. Как обработать все элементы массива? Объявление: Обработка: const int N = 5; int A[N]; // обработать
- 7. Как обработать все элементы массива? Обработка с переменной: i = 0; // обработать A[i] i ++;
- 8. Заполнение массива main() { const int N = 10; int A[N]; int i; for ( i
- 9. Ввод с клавиатуры и вывод на экран Объявление: Ввод с клавиатуры: Вывод на экран: const int
- 10. Заполнение случайными числами for ( i = 0; i { A[i] = irand ( 20, 100
- 11. Перебор элементов Общая схема: for ( i = 0; i { ... // сделать что-то с
- 12. Перебор элементов Среднее арифметическое: int count, sum; count = 0; sum = 0; for ( i
- 13. Задачи «A»: Заполните массив случайными числами в интервале [0,100] и найдите среднее арифметическое его значений. Пример:
- 14. Задачи «C»: Заполните массив из N элементов случайными числами в интервале [1,N] так, чтобы в массив
- 15. Программирование на языке C++ § 10. Алгоритмы обработки массивов
- 16. Поиск в массиве Найти элемент, равный X: i = 0; while ( A[i] != X )
- 17. Поиск в массиве nX = -1; for ( i = 0; i if ( A[i] ==
- 18. Задачи «A»: Заполните массив случайными числами в интервале [0,5]. Введите число X и найдите все значения,
- 19. Задачи «B»: Заполните массив случайными числами в интервале [0,5]. Определить, есть ли в нем элементы с
- 20. Задачи «C»: Заполните массив случайными числами. Определить, есть ли в нем элементы с одинаковыми значениями, не
- 21. Максимальный элемент M = A[0]; for ( i = 1; i if ( A[i]> M )
- 22. Максимальный элемент и его номер
- 23. Задачи «A»: Заполнить массив случайными числами и найти минимальный и максимальный элементы массива и их номера.
- 24. Задачи «C»: Введите массив с клавиатуры и найдите (за один проход) количество элементов, имеющих максимальное значение.
- 25. Реверс массива «Простое» решение: for( i = 0; i { // поменять местами A[i] и A[N-1-i]
- 26. Реверс массива for ( i = 0; i { c = A[i]; A[i] = A[N-1-i]; A[N-1-i]
- 27. Циклический сдвиг элементов «Простое» решение: c = A[0]; for ( i = 0; i A[i] =
- 28. Задачи «A»: Заполнить массив случайными числами и выполнить циклический сдвиг элементов массива вправо на 1 элемент.
- 29. Задачи «C»: Заполнить массив случайными числами в интервале [-100,100] и переставить элементы так, чтобы все положительные
- 30. Отбор нужных элементов «Простое» решение: Задача. Отобрать элементы массива A, удовлетворяющие некоторому условию, в массив B.
- 31. Отбор нужных элементов A B выбрать чётные элементы count = 0; for ( i = 0;
- 32. Задачи «A»: Заполнить массив случайными числами в интервале [-10,10] и отобрать в другой массив все чётные
- 33. Задачи «C»: Заполнить массив случайными числами и отобрать в другой массив все числа Фибоначчи. Используйте логическую
- 34. Программирование на языке C++ § 11. Сортировка
- 35. Что такое сортировка? Сортировка – это расстановка элементов массива в заданном порядке. …по возрастанию, убыванию, последней
- 36. Метод пузырька (сортировка обменами) Идея: пузырек воздуха в стакане воды поднимается со дна вверх. Для массивов
- 37. Метод пузырька 2-й проход: 3-й проход: 4-й проход:
- 38. Метод пузырька 1-й проход: сделать для j от N-2 до 0 шаг -1 если A[j+1] //
- 39. Метод пузырька for ( i = 0; i for ( j = N-2; j >= i
- 40. Задачи «A»: Напишите программу, в которой сортировка выполняется «методом камня» – самый «тяжёлый» элемент опускается в
- 41. Метод выбора (минимального элемента) Идея: найти минимальный элемент и поставить его на первое место. сделать для
- 42. Метод выбора (минимального элемента) for ( i = 0; i { nMin = i; for (
- 43. Задачи «A»: Массив содержит четное количество элементов. Напишите программу, которая сортирует первую половину массива по возрастанию,
- 44. Задачи «B»: Напишите программу, которая сортирует массив и находит количество различных чисел в нем. Пример: Массив:
- 45. Быстрая сортировка (QuickSort) Идея: выгоднее переставлять элементы, который находятся дальше друг от друга.
- 46. Быстрая сортировка Шаг 2: переставить элементы так: при сортировке элементы не покидают « свою область»! Шаг
- 47. Быстрая сортировка Разделение: выбрать средний элемент массива (X=67) установить L = 1, R = N увеличивая
- 48. Быстрая сортировка
- 49. Быстрая сортировка const int N = 7; int A[N]; ... main() { // заполнить массив qSort(
- 50. Быстрая сортировка void qSort( int nStart, int nEnd ) { int L, R, c, X; if
- 51. Быстрая сортировка void qSort( int A[], int nStart, int nEnd ) { ... qSort ( A,
- 52. Быстрая сортировка Сортировка массива случайных значений:
- 53. Задачи «A»: Массив содержит четное количество элементов. Напишите программу, которая сортирует по возрастанию отдельно элементы первой
- 54. Задачи «B»: Напишите программу, которая сортирует массив и находит количество различных чисел в нем. Используйте алгоритм
- 55. Задачи «C»: Напишите программу, которая сравнивает число перестановок элементов при использовании сортировки «пузырьком», методом выбора и
- 56. Программирование на языке C++ § 12. Двоичный поиск
- 57. Двоичный поиск X = 7 X 8 4 X > 4 6 X > 6 Выбрать
- 58. Двоичный поиск X = 44
- 59. Двоичный поиск int X, L, R, c; L = 0; R = N; // начальный отрезок
- 60. Двоичный поиск скорость выше, чем при линейном поиске нужна предварительная сортировка Число сравнений:
- 61. Задачи «A»: Заполнить массив случайными числами и отсортировать его. Ввести число X. Используя двоичный поиск, определить,
- 62. Задачи «B»: Заполнить массив случайными числами и отсортировать его. Ввести число X. Используя двоичный поиск, определить,
- 63. Задачи «C»: Заполнить массив случайными числами и ввести число и отсортировать его. Ввести число X. Используя
- 64. Программирование на языке C++ § 13. Символьные строки
- 65. Зачем нужны символьные строки? char s[10]; // массив символов элементы массива – отдельные объекты сложно работать
- 66. Символьные строки Начальное значение: string s = "Привет!"; Вывод на экран: cout s = "Привет!"; Присваивание:
- 67. Символьные строки Ввод с клавиатуры: cin >> s; Отдельный символ: s[4] = 'a'; Длина строки: только
- 68. Символьные строки #include using namespace std; main() { string s; int i; cout getline ( cin,
- 69. Задачи «A»: Ввести с клавиатуры символьную строку и заменить в ней все буквы «а» на «б»
- 70. Задачи «B»: Ввести с клавиатуры символьную строку и определить, сколько в ней слов. Словом считается последовательности
- 71. Задачи «C»: Ввести с клавиатуры символьную строку и найдите самое длинное слово и его длину. Словом
- 72. s = "0123456789"; s1 = s.substr( 3 ); // "3456789" Операции со строками Объединение (конкатенация): string
- 73. Операции со строками Вставка: s = "0123456789"; s.insert( 3,"ABC" ); // "012ABC3456789" что куда с какого
- 74. Поиск символа в строке string s = "Здесь был Вася."; int n; n = s.find (
- 75. Поиск подстроки string s = "Здесь был Вася."; int n; n = s.find ( "Вася" );
- 76. Пример обработки строк Задача: Ввести имя, отчество и фамилию. Преобразовать их к формату «фамилия-инициалы». Пример: Введите
- 77. Пример обработки строк main() { string s, name, name2; int n; cout getline ( cin, s
- 78. Задачи «A»: Ввести с клавиатуры в одну строку фамилию, имя и отчество, разделив их пробелом. Вывести
- 79. Задачи «B»: Ввести адрес файла и «разобрать» его на части, разделенные знаком '/'. Каждую часть вывести
- 80. Задачи «C»: Напишите программу, которая заменяет во всей строке одну последовательность символов на другую. Пример: Введите
- 81. Преобразования «строка» – «число» Из строки в число: string s = "123"; int N; N =
- 82. Преобразования «строка» – «число» Из числа в строку: ostringstream ss; string s; int N = 123;
- 83. Преобразования «строка» – «число» Вещественное число в строку: ostringstream ss; string s; double X = 123.456;
- 84. Задачи «A»: Напишите программу, которая вычисляет сумму трех чисел, введенную в форме символьной строки. Все числа
- 85. Задачи «C»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются знаки
- 86. Задачи «D»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются знаки
- 87. Строки в процедурах и функциях Задача: построить процедуру, которая заменяет в строке s все вхождения слова-образца
- 88. Замена всех экземпляров подстроки
- 89. Замена всех экземпляров подстроки main() { string s = "12.12.12"; replaceAll ( s, "12", "A12B" );
- 90. Замена всех экземпляров подстроки void replaceAll ( string &s, string wOld, string wNew ) { string
- 91. Замена всех экземпляров подстроки p = s.find ( wOld ); if ( p { res =
- 92. Замена: из процедуры в функцию main() { string s = "12.12.12"; s = replaceAll ( s,
- 93. Задачи «A»: Напишите функцию, которая возвращает первое слово переданной ей строки. Пример: Введите строку: Однажды в
- 94. Задачи «B»: Напишите функцию, которая заменяет расширение файла на заданное новое расширение. Пример: Введите имя файла:
- 95. Задачи «C»: Напишите функцию, которая заменяет во всей строке все римские числа на соответствующие десятичные числа.
- 96. Рекурсивный перебор Задача. В алфавите языка племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно
- 97. Рекурсивный перебор перебор L символов w[0]='Ы'; // перебор последних L-1 символов w[0]='Ш'; // перебор последних L-1
- 98. Рекурсивный перебор main() { string word = "..."; TumbaWords ( "ЫШЧО", word, 0 ); } void
- 99. Задачи «A»: В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно вывести
- 100. Задачи «C»: В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно вывести
- 101. Сравнение строк Сравнение по кодам символов:
- 102. Сравнение строк 5STEAM steam
- 103. Сортировка строк main() { const int N = 10; string s1, S[N]; int i, j; cout
- 104. Задачи «A»: Вводится 5 строк, в которых сначала записан порядковый номер строки с точкой, а затем
- 105. Задачи «B»: Вводится несколько строк (не более 20), в которых сначала записан порядковый номер строки с
- 106. Задачи «C»: Вводится несколько строк (не более 20), в которых сначала записаны инициалы и фамилии работников
- 107. Программирование на языке C++ § 14. Матрицы
- 108. Что такое матрица? Матрица — это прямоугольная таблица, составленная из элементов одного типа (чисел, строк и
- 109. Объявление матриц const int N = 3, M = 4; int A[N][M]; double X[10][12]; bool L[N][2];
- 110. Простые алгоритмы Заполнение случайными числами: for ( i = 0; i for ( j = 0;
- 111. Задачи «A»: Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99], и находит максимальный
- 112. Задачи «B»: Яркости пикселей рисунка закодированы числами от 0 до 255 в виде матрицы. Преобразовать рисунок
- 113. Задачи «С»: Заполните матрицу, содержащую N строк и M столбцов, натуральными числами по спирали и змейкой,
- 114. Перебор элементов матрицы Главная диагональ: for ( i = 0; i // работаем с A[i][i] }
- 115. Перестановка строк 2-я и 4-я строки: for ( j = 0; j { c = A[2][j];
- 116. Задачи «A»: Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99], а затем записывает
- 117. Задачи «B»: Пиксели рисунка закодированы числами (обозначающими цвет) в виде матрицы, содержащей N строк и M
- 118. Программирование на языке C++ § 15. Работа с файлами
- 119. Как работать с файлами? файлы текстовые двоичные «plain text»: текст, разбитый на строки; из специальных символов
- 120. Принцип сэндвича хлеб хлеб начинка ifstream Fin; // поток ввода ofstream Fout; // поток вывода Fin.open
- 121. Обработка ошибок ifstream F; F.open ( "input.txt" ); if ( F ) { // здесь работаем
- 122. Ввод данных int a, b; ifstream Fin; Fin.fopen ( "input.txt" ); Fin.close(); Fin.close(); Fin.open ( "input.txt"
- 123. Вывод данных в файл int a = 1, b = 2; ofstream Fout; Fout.open ( "output.txt"
- 124. Чтение неизвестного количества данных пока не конец файла // прочитать число из файла // добавить его
- 125. Задачи «A»: Напишите программу, которая находит среднее арифметическое всех чисел, записанных в файле в столбик, и
- 126. Обработка массивов Задача. В файле записано не более 100 целых чисел. Вывести в другой текстовый файл
- 127. Обработка массивов Ввод массива: N = 0; while ( N { if ( Fin >> A[N]
- 128. Обработка массивов Вывод результата: Fout.open ( "output.txt" ); for ( i = 0; i Fout Fout.close();
- 129. Задачи «A»: В файле записано не более 100 чисел. Отсортировать их по возрастанию последней цифры и
- 130. Обработка строк Задача. В файле записано данные о собаках: в каждой строчке кличка собаки, ее возраст
- 131. Чтение строк из файла while ( getline(Fin, s) ) { // обработать строку s } Чтение
- 132. Обработка строк // найти в строке пробел // удалить из строки кличку с первым пробелом //
- 133. Задачи «A»: В файле записаны данные о результатах сдачи экзамена. Каждая строка содержит фамилию, имя и
- 135. Скачать презентацию