Содержание
- 2. Программирование (C++) § 17. Введение
- 3. Что такое программирование? Программирование — это создание программ для компьютеров. Этим занимаются программисты. Чем занимаются программисты:
- 4. Направления в программировании
- 5. Простейшая программа на C++ int main() { // это основная программа /* здесь записывают операторы */
- 6. Вывод на экран #include using namespace std; int main() { cout cin.get(); // ждать Enter }
- 7. Вывод на экран Оператор — это команда языка программирования. cout оператор вывода cout cout cout cout
- 8. Переход на новую строку cout cout ожидание: реальность: Привет, Вася! Привет, Петя! Привет, Вася!Привет, Петя! Решение:
- 9. Системы программирования Системы программирования — это средства для создания новых программ. Транслятор — это программа, которая
- 10. Системы программирования Отладчик — это программа для поиска ошибок в других программах. пошаговый режим — выполнение
- 11. Задачи «B»: Вывести на экран текст «лесенкой» Вася пошел гулять «C»: Вывести на экран рисунок из
- 12. Программирование (C++) § 18. Линейные программы
- 13. Пример задачи Задача. Ввести два числа и вычислить их сумму. int main() { // ввести два
- 14. Зачем нужны переменные? int main() { // ввести два числа // вычислить их сумму // вывести
- 15. Имена переменных Идентификатор — это имя программы или переменной. int a, b, c; МОЖНО использовать латинские
- 16. Типы переменных int – целые int a = 1, b, c = 0; float – вещественные
- 17. Работа с переменными Присваивание (запись значения) a = 5; = оператор присваивания a = 5; a
- 18. Работа с переменными Изменение значения i = i + 1; увеличить на 1 a = 4;
- 19. Ввод с клавиатуры Цель – изменить исходные данные, не меняя программу. cin >> a; 5 a
- 20. Ввод с клавиатуры через пробел: 25 30 через Enter: 25 30 cin >> a >> b;
- 21. Программа сложения чисел int main() { int a, b, c; cin >> a >> b; //
- 22. cout 5+7=12 значение a значение с значение b cout cout cout cout cout cout
- 23. Программа сложения чисел int main() { int a, b, c; cout cin >> a >> b;
- 24. Задачи «A»: Ввести три числа, найти их сумму. Пример: Введите три числа: 4 5 7 4+5+7=16
- 25. Задачи «C»: Ввести три числа, найти их сумму, произведение и среднее арифметическое. Пример: Введите три числа:
- 26. Арифметические выражения Линейная запись (в одну строку): a = (c+b-1)/2*d; Операции: + – * – умножение
- 27. Сокращённая запись операций Полная запись: a = a + b; a = a + 1; a
- 28. Особенность деления int a = 7, b = 8; float x = a / b; int
- 29. Частное и остаток при делении целых / – деление нацело (остаток отбрасывается) % – остаток от
- 30. Частное и остаток при делении целых n = 123 d = n / 10; // 12
- 31. Форматирование вывода int a = 1, b = 2, c = 3; cout 123 cout 1
- 32. Задачи «A»: Ввести число, обозначающее количество секунд. Вывести то же самое время в минутах и секундах.
- 33. Задачи «С»: Занятия в школе начинаются в 8-30. Урок длится 45 минут, перерывы между уроками –
- 34. Форматный вывод float x = 12.34567891; cout 12.3457 6 значащих цифр по умолчанию cout 12.346 10
- 35. Форматный вывод float x = 12.34567891; cout cout 12.34 cout 12.34 cout минимально возможное 12.3
- 36. Научный формат чисел float x = 123456789; cout 1.23457e+08 1,23457 ⋅108 float x = 0.0000123456789; cout
- 37. Операции с вещественными числами float x = 1.6; cout int – целая часть числа (дробная часть
- 38. Операции с вещественными числами sqrt – квадратный корень float x = 2.25; cout 1.5
- 39. Операции с вещественными числами 1/3 = 0,33333… бесконечно много знаков float x, y, z; x =
- 40. Задачи «A»: Ввести число, обозначающее размер одной фотографии в Мбайтах. Определить, сколько фотографий поместится на флэш-карту
- 41. Задачи «B»: Оцифровка звука выполняется в режиме стерео с частотой дискретизации 44,1 кГц и глубиной кодирования
- 42. Задачи «С»: Разведчики-математики для того, чтобы опознать своих, используют числовые пароли. Услышав число-пароль, разведчик должен возвести
- 43. Случайные и псевдослучайные числа Случайные явления встретил слона – не встретил слона жеребьёвка на соревнованиях лотерея
- 44. Случайные и псевдослучайные числа Псевдослучайные числа — похожи на случайные, но строятся по формуле. Xn+1= mod(a*Xn+b,
- 45. Датчик случайных чисел #include random – случайный int n; n = rand(); // отрезок [0; RAND_MAX]
- 46. Случайные числа на отрезке int K, L; K = rand() % 6; // отрезок [0,5] L
- 47. Случайные вещественные числа Вещественные числа на [a, b]: X = 1.*rand()/RAND_MAX; // [0; 1] float a
- 48. Задачи «A»: В игре «Русское лото» из мешка случайным образом выбираются бочонки, на каждом из которых
- 49. Задачи «С»: + Игральный кубик бросается три раза (выпадает три случайных значения). Из этих чисел составляется
- 50. Задачи «D»: + Получить случайное трёхзначное число и вывести в столбик его отдельные цифры. Пример: Получено
- 51. Программирование (C++) § 19. Ветвления
- 52. Выбор наибольшего из двух чисел полная форма ветвления if( a > b ) M = a;
- 53. Вариант 1. Программа int main() { int a, b, M; cout cin >> a >> b;
- 54. Выбор наибольшего из двух чисел-2 неполная форма ветвления
- 55. Вариант 2. Программа int main() { int a, b, M; cout > a M = a;
- 56. Примеры if( a M = a; if( b M = b; if( a { c =
- 57. В других языках программирования Паскаль: if a c = a; a = b; b = c;
- 58. Вложенные условные операторы Задача. В переменной a записан возраст Антона, а в переменной b – возраст
- 59. Задачи «A»: Ввести два целых числа, найти наибольшее и наименьшее из них. Пример: Введите два целых
- 60. Задачи «C»: Ввести последовательно возраст Антона, Бориса и Виктора. Определить, кто из них старше. Пример: Возраст
- 61. Сложные условия Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и
- 62. Плохое решение int main() { int v; cout cin >> v; if( v >= 25 )
- 63. Хорошее решение (операция «И») int main() { int v; cout cin >> v; if( v >=
- 64. Примеры Задача. Вывести "Да", если число в переменной a – двузначное. if( 10 cout Задача. Вывести
- 65. Сложные условия Задача. Самолёт летает по понедельникам и четвергам. Ввести номер дня недели и определить, летает
- 66. Ещё пример Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и
- 67. Простые и сложные условия Простые условия (отношения) >= == != Сложное условие – это условие, состоящее
- 68. Порядок выполнения операций выражения в скобках НЕ (not) И (and) ИЛИ (or) 1 if( not(a >
- 69. Сложные условия Истинно или ложно при a = 2; b = 3; c = 4; not
- 70. Задачи «A»: Напишите программу, которая получает три числа - рост трёх спортсменов, и выводит сообщение «По
- 71. Задачи «B»: Напишите программу, которая получает номер месяца и выводит соответствующее ему время года или сообщение
- 72. Задачи «C»: Напишите программу, которая получает возраст человека (целое число, не превышающее 120) и выводит этот
- 73. Логические переменные bool b; b = true; // 1 b = false; // 0 только два
- 74. Задачи «A»: Напишите программу, которая получает с клавиатуры целое число и записывает в логическую переменную значение
- 75. Задачи «B»: Напишите программу, которая получает с клавиатуры трёхзначное число и записывает в логическую переменную значение
- 76. Задачи «С»: Напишите программу, которая получает с клавиатуры трёхзначное число и записывает в логическую переменную значение
- 77. Экспертная система Экспертная система — это компьютерная программа, задача которой — заменить человека-эксперта при принятии решений
- 78. Дерево решений хищник ? птица да да нет нет млекопитающее Кормит детей молоком? Имеет перья? Ест
- 79. Программирование экспертной системы Ответы пользователя: да и нет – символьные строки. string otvet; ... cout cin
- 80. Заглавные и строчные буквы string otvet; ... if( otvet == "да" ) ... не сработает на
- 81. Программирование (C++) § 23. Отладка программ
- 82. Виды ошибок Синтаксические ошибки – нарушение правил записи операторов языка программирования. Обнаруживаются транслятором. Логические ошибки –
- 83. Пример отладки программы int main() { float a, b, c, D, x1, x2; cout cin >>
- 84. Тестирование Тест 1. a = 1, b = 2, c = 1. x1=-1 x2=-1 x1=-1 x2=-1
- 85. Отладочная печать cin >> a >> b >> c; cout D = b*b - 4*a*a; cout
- 86. Отладка программы Тест 1. a = 1, b = 2, c = 1. x1=-1 x2=-1 x1=-1
- 87. Задачи «A»: Загрузите программу, которая должна вычислять сумму цифр трёхзначного числа: int N, d1, d2, s;
- 88. Задачи «B»: Доработайте программу из п. А так, чтобы она правильно работала с отрицательными трёхзначными числами:
- 89. Задачи «С»: Загрузите программу, которая должна вычислять наибольшее из трёх чисел: int a, b; cin >>
- 90. Программирование (C++) § 20. Программирование циклических алгоритмов
- 91. Зачем нужен цикл? Задача. Вывести 5 раз «Привет!». cout cout cout cout cout Цикл «N раз»:
- 92. Как организовать цикл? // счётчик = 0 // пока счётчик cout // счётчик = счётчик +
- 93. Как организовать цикл? int count = 5; while( count > ??? ) { cout ??? }
- 94. Цикл с предусловием условие проверяется при входе в цикл как только условие становится ложным, работа цикла
- 95. Сумма цифр числа Задача. Вычислить сумму цифр введённого числа. 123 → 1 + 2 + 3
- 96. Сумма цифр числа выделяем последнюю цифру числа (%) увеличиваем сумму на значение цифры (sum+=d;) отсекаем последнюю
- 97. Сумма цифр числа начало конец нет да N != 0? sum = 0; d = N
- 98. Сумма цифр числа int main() { int N, d, sum; cout cin >> N; sum =
- 99. Задачи «A»: Напишите программу, которая получает с клавиатуры количество повторений и выводит столько же раз какое-нибудь
- 100. Задачи «C»: Напишите программу, которая получает с клавиатуры натуральное число и находит наибольшую цифру в его
- 101. Алгоритм Евклида Задача. Найти наибольший общий делитель (НОД) двух натуральных чисел. Евклид (365-300 до. н. э.)
- 102. Алгоритм Евклида a == b? да нет a > b? да a=a-b; нет b=b-a; начало конец
- 103. Алгоритм Евклида while( a != b ) if( a > b ) a = a –
- 104. Модифицированный алгоритм Евклида НОД(a,b)= НОД(a%b, b) = НОД(a, b%a) Заменяем большее из двух чисел остатком от
- 105. Модифицированный алгоритм while( a != 0 and b != 0) if( a > b ) a
- 106. В других языках программирования while a!=0 and b!=0: if a > b: a = a %
- 107. Задачи «A»: Ввести с клавиатуры два натуральных числа и найти их НОД с помощью алгоритма Евклида.
- 108. Задачи «C»: Ввести с клавиатуры два натуральных числа и сравнить количество шагов цикла для вычисления их
- 109. Обработка потока данных Задача. На вход программы поступает поток данных — последовательность целых чисел, которая заканчивается
- 110. Обработка потока данных int x, sum; ... sum = 0; cin >> x; // ввести первое
- 111. Задачи «A»: На вход программы поступает неизвестное количество чисел целых, ввод заканчивается нулём. Определить, сколько получено
- 112. Цикл с постусловием условие проверяется после завершения очередного шага цикла цикл всегда выполняется хотя бы один
- 113. Задачи «A»: Напишите программу, которая предлагает ввести пароль и не переходит к выполнению основной части, пока
- 114. Задачи «D»: Напишите программу, которая получает с клавиатуры натуральное число и вычисляет целый квадратный корень из
- 115. Цикл по переменной Задача. Вывести на экран степени числа 2 от 21 до 210. k =
- 116. Цикл по переменной Задача. Найти сумму чисел от 1 до 1000. int sum = 0; for(
- 117. Цикл по переменной Задача. Найти сумму чётных чисел от 2 до 1000. int sum = 0;
- 118. В других языках программирования Sum = 0 for i in range(1, 1001): Sum += i Python:
- 119. Задачи «A»: Ипполит задумал трёхзначное число, которое при делении на 15 даёт в остатке 11, а
- 120. Программирование (C++) § 21. Массивы
- 121. Что такое массив? Массив – это группа переменных одного типа, расположенных в памяти рядом (в соседних
- 122. Выделение памяти (объявление) int A[5] = {1, 2, 0, 8, 5}; float V[6] = {1.2, 4.3};
- 123. Индекс элемента — это значение, которое указывает на конкретный элемент массива. Обращение к элементу массива A
- 124. Что неправильно? int A[10]; ... A[5] = 4.5; A[15] = 8; A[1] = "Вася"; дробная часть
- 125. Обращение к элементу массива int i = 2; A[2]= A[i-1] + 2*A[i] + A[2*i]; cout A[2]=
- 126. Что неверно? int A[5] = {1, 2, 3, 4, 5}; int x = 2; cout A[x+4]=A[x-1]+A[2*x];
- 127. Перебор элементов массива Перебор элементов: просматриваем все элементы массива и, если нужно, выполняем с каждым из
- 128. Заполнение массива for( int i=0; i A[i] = i; В развёрнутом виде A[0]= 0; A[1]= 1;
- 129. X = N; Заполнение массива в обратном порядке A[0]= N; A[1]= N-1; A[2]= N-2; ... A[N]=
- 130. Заполнение массива в обратном порядке A[i]= X; –1 +1 i + X = N X =
- 131. Вывод массива на экран for(int i=0; i cout или так: for(int i=0; i cout интервал между
- 132. Ввод с клавиатуры for(int i=0; i cout cin >> A[i]; } A[1] = A[2] = A[3]
- 133. В других языках программирования Паскаль: var A: array[0..N-1] of integer; var i: integer; for i:=0 to
- 134. Задачи «A»: а) Заполните все элементы массива из 10 элементов значением X , введённым с клавиатуры.
- 135. Задачи «C»: а) Заполните массив из 10 элементов степенями числа 2, начиная с конца, так чтобы
- 136. Заполнение случайными числами #include ... for(int i=0; i A[i] = 20 + rand() % 81; cout
- 137. Задачи-2 «A»: Напишите программу, которая заполняет массив из 10 элементов случайными числами в диапазоне [0,10], выводит
- 138. Задачи-2 «C»: Напишите программу, которая заполняет массив из 10 элементов случайными числами в диапазоне [100,500] и
- 139. Программирование (C++) § 22. Алгоритмы обработки массивов
- 140. Сумма элементов массива int sum = 0; for(int i=0; i sum += A[i]; cout const int
- 141. Сумма не всех элементов массива int sum = 0; for(int i=0; i sum= sum + A[i];
- 142. Задачи «A»: Напишите программу, которая заполняет массив из 10 элементов случайными числами на отрезке [–5; 5]
- 143. Подсчёт элементов по условию Задача. Найти количество чётных элементов массива. int count = 0; for(int i=0;
- 144. Среднее арифметическое Задача. Найти среднее арифметическое элементов массива, которые больше 180 (рост в см). int sum
- 145. Среднее арифметическое Задача. Найти среднее арифметическое элементов массива, которые больше 180 (рост в см). int sum
- 146. Задачи «A»: Напишите программу, которая заполняет массив из 20 элементов случайными числами на отрезке [0; 200]
- 147. Обработка потока данных Задача. С клавиатуры вводятся числа, ввод завершается числом 0. Определить, сколько было введено
- 148. Обработка потока данных int x, count = 0; cin >> x; while( x != 0 )
- 149. Найди ошибку! int x, count = 0; cin >> x; while( x != 0 ) if(
- 150. Найди ошибку! int x, count; cin >> x; while( x == 0 ) { if( x
- 151. Обработка потока данных Задача. С клавиатуры вводятся числа, ввод завершается числом 0. Найти сумму введённых чисел,
- 152. Обработка потока данных Задача. С клавиатуры вводятся числа, ввод завершается числом 0. Найти сумму введённых чисел,
- 153. Найди ошибку! int x, sum = 0; cin >> x; while( x != 0 ) {
- 154. Задачи «A»: На вход программы поступает неизвестное количество целых чисел, ввод заканчивается нулём. Определить, сколько получено
- 155. Задачи «C»: На вход программы поступает неизвестное количество целых чисел, ввод заканчивается нулём. Найти среднее арифметическое
- 156. Перестановка элементов массива с = a; a = b; b = c; элементы массива: с =
- 157. Перестановка пар соседних элементов Задача. Массив A содержит чётное количество элементов N. Нужно поменять местами пары
- 158. Перестановка пар соседних элементов for(int i=0; i поменять местами A[i] и A[i+1] } ? выход за
- 159. Перестановка пар соседних элементов for( int i=0; i // переставляем A[i] и A[i+1] int с =
- 160. Реверс массива Задача. Переставить элементы массива в обратном порядке (выполнить реверс). A[0]↔A[N-1] A[1]↔A[N-2] A[i]↔A[N-1-i] A[N-1]↔A[0] 0+N-1
- 161. Реверс массива for(int i=0; i поменять местами A[i] и A[N+1-i] } i=0 i=1 i=2 i=3 ;
- 162. Конец фильма ПОЛЯКОВ Константин Юрьевич д.т.н., учитель информатики ГБОУ СОШ № 163, г. Санкт-Петербург [email protected] ЕРЕМИН
- 164. Скачать презентацию