Содержание
- 2. Программирование на языке Си Тема 1. Введение
- 3. Алгоритм Свойства алгоритма дискретность: состоит из отдельных шагов (команд) понятность: должен включать только команды, известные исполнителю
- 4. Программа Программа – это алгоритм, записанный на каком-либо языке программирования набор команд для компьютера Команда –
- 5. Языки программирования Машинно-ориентированные (низкого уровня) - каждая команда соответствует одной команде процессора (ассемблер) Языки высокого уровня
- 6. Язык Си 1972-1974 – Б. Керниган, Д. Ритчи высокая скорость работы программ много возможностей стал основой
- 7. Простейшая программа main() { } главная (основная) программа всегда имеет имя main начало программы «тело» программы
- 8. Что происходит дальше? main() { } first.cpp исходный файл first.o транслятор ЪБzЦ2?|ё3БКа n/36ШпIC+И- ЦЗ_5МyРЧб s6bд^:/@:лЖ1_ объектный
- 9. Вывод текста на экран #include main() { printf("Привет!"); } include = включить файл stdio.h: описание стандартных
- 10. Как начать работу? здесь мы набираем программу сообщения об ошибках Открыть Новый Сохранить Закрыть
- 11. Оболочка Dev C ++ 4.9 IDE = Integrated Development Environment интегрированная среда разработки: текстовый редактор для
- 12. Управление клавишами
- 13. Где ошибки? 2 x ЛКМ эта ошибка обнаружена здесь!
- 14. Наиболее «популярные» ошибки
- 15. Ждем нажатия любой клавиши #include #include main() { printf("Привет!"); // вывод на экран /* ждать нажатия
- 16. Переход на новую строку #include #include main() { printf("Привет,\n Вася!"); getch(); } Привет, Вася! на экране:
- 17. Задания «4»: Вывести на экран текст "лесенкой" Вася пошел гулять «5»: Вывести на экран рисунок из
- 18. Программирование на языке Си Тема 2. Переменные
- 19. Что такое переменная? Переменная – это ячейка в памяти компьютера, которая имеет имя и хранит некоторое
- 20. Имена переменных Могут включать латинские буквы (A-Z, a-z) знак подчеркивания _ цифры 0-9 НЕ могут включать
- 21. Объявление переменных Объявить переменную = определить ее имя, тип, начальное значение, и выделить ей место в
- 22. Оператор присваивания Оператор – это команда языка программирования высокого уровня. Оператор присваивания служит для изменения значения
- 23. Оператор присваивания Общая структура: Арифметическое выражение может включать константы (постоянные) имена переменных знаки арифметических операций: +
- 24. Сложение двух чисел Задача. Ввести два целых числа и вывести на экран их сумму. Простейшее решение:
- 25. Ввод чисел с клавиатуры scanf ("%d%d", &a, &b); формат ввода scanf – форматный ввод адреса ячеек,
- 26. Что неправильно? int a, b; scanf ("%d", a); scanf ("%d", &a, &b); scanf ("%d%d", &a); scanf
- 27. Вывод чисел на экран printf ("%d", c); здесь вывести целое число это число взять из ячейки
- 28. Вывод целых чисел int x = 1234; printf ("%d", x); 1234 printf ("%9d", x); минимальное число
- 29. Вывод вещественных чисел float x = 123.4567; printf ("%f", x); 123.456700 printf ("%9.3f", x); минимальное число
- 30. Полное решение #include #include main() { int a, b, c; printf("Введите два целых числа\n"); scanf("%d%d", &a,
- 31. Блок-схема линейного алгоритма начало конец c = a + b; ввод a, b вывод c блок
- 32. Задания «3»: Ввести три числа, найти их сумму. Пример: Введите три числа: 4 5 7 4+5+7=16
- 33. Задания «5»: Ввести три числа, найти их сумму, произведение и среднее арифметическое. Пример: Введите три числа:
- 34. main() { int a, b; float x, y; a = 5; 10 = x; y =
- 35. Особенность деления в Си main() { int a = 7; float x; x = a /
- 36. Сокращенная запись операций в Си инкремент декремент a = a + 1; a++; a = a
- 37. Порядок выполнения операций вычисление выражений в скобках умножение, деление и %(остаток от деления) слева направо сложение
- 38. Ручная прокрутка программы main() { int a, b; a = 5; b = a + 2;
- 39. Вывод на экран int a = 1, b = 3; printf("%d+%d=%d", a, b, a+b); список вывода
- 40. Что будет выведено? int a = 1, b = 3; printf("a+%d=a+b", b); a+3=a+b int a =
- 41. Как записать оператор вывода? int a = 1, b = 3 printf("X(%d)=%d", b, a); X(3)=1 4=1+3
- 42. Программирование на языке Си Тема 3. Ветвления
- 43. Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран наибольшее из них. Идея решения:
- 44. Вариант 1. Блок-схема полная форма ветвления блок «решение»
- 45. Вариант 1. Программа main() { int a, b, max; printf("Введите два целых числа\n"); scanf("%d%d", &a, &b
- 46. Условный оператор if ( условие ) { // что делать, если условие верно } else {
- 47. Что неправильно? if a > b { a = b; } else b = a; if
- 48. Вариант 2. Блок-схема неполная форма ветвления
- 49. Вариант 2. Программа main() { int a, b, max; printf("Введите два целых числа\n"); scanf("%d%d", &a, &b
- 50. main() { int a, b, max; printf("Введите два целых числа\n"); scanf("%d%d", &a, &b ); max =
- 51. Задания «3»: Ввести два числа и вывести их в порядке возрастания. Пример: Введите два числа: 15
- 52. Задания «5»: Ввести пять чисел и найти наибольшее из них. Пример: Введите пять чисел: 4 15
- 53. Программирование на языке Си Тема 4. Сложные условия
- 54. Сложные условия Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и
- 55. Вариант 1. Алгоритм начало ввод x 'подходит' конец да нет x >= 25? да нет x
- 56. Вариант 1. Программа main() { int x; printf("Введите возраст\n"); scanf("%d", &x); if (x >= 25) if
- 57. Вариант 2. Алгоритм начало ввод x 'подходит' да нет x >= 25 и x 'не подходит'
- 58. Вариант 2. Программа main() { int x; printf("Введите возраст\n"); scanf("%d", &x); if ( x >= 25
- 59. Сложные условия Сложное условие – это условие, состоящее из нескольких простых условий (отношений), связанных с помощью
- 60. Сложные условия Порядок выполнения сложных условий: выражения в скобках ! (НЕ, отрицание) , >= ==, !=
- 61. Истинно или ложно при a = 2; b = 3; c = 4; !(a > b)
- 62. Задания «3»: Ввести три числа и определить, верно ли, что они вводились в порядке возрастания. Пример:
- 63. Задания «5»: Ввести возраст человека (от 1 до 150 лет) и вывести его вместе с последующим
- 64. Программирование на языке Си Тема 5. Циклы
- 65. Циклы Цикл – это многократное выполнение одинаковых действий. цикл с известным числом шагов цикл с неизвестным
- 66. Циклы #include main() { printf("Привет!\n"); printf("Привет!\n"); printf("Привет!\n"); printf("Привет!\n"); printf("Привет!\n"); }
- 67. Циклы начало конец Блок-схема: да нет тело цикла
- 68. Циклы N := N + 1
- 69. Циклы начало конец да нет N == 5? N = 0; N = N + 1;
- 70. Циклы с условием main() { int N; N = 0; while ( N != 5 )
- 71. Цикл с условием Вместо знаков вопроса добавьте числа и операторы так, чтобы цикл выполнился ровно 5
- 72. Что получим? // Пример 1 main() { int N; N = 1; while ( N {
- 73. Что получим? // Пример 2 main() { int N; N = 1; while ( N {
- 74. Что получим? // Пример 3 main() { int N; N = 2; while ( N !=
- 75. Что получим? // Пример 4 main() { int N; N = 1; while ( N !=
- 76. Что получим? // Пример 4 main() { int N; N = 5; while ( N >=
- 77. Задания «3»: Ввести натуральное число вывести квадраты и кубы всех чисел от 1 до этого числа.
- 78. Задания «5»: Ввести два целых числа a и b (a ≤ b) и вывести сумму квадратов
- 79. Цикл с неизвестным числом шагов Пример: Отпилить полено от бревна. Сколько раз надо сделать движения пилой?
- 80. Алгоритм начало count конец нет да n != 0? count = 0; count = count +
- 81. Программа main() { int n, count; printf("Введите целое число\n"); scanf("%d", &n); count = 0; while (n
- 82. Цикл с условием while ( условие ) { // тело цикла } Особенности: можно использовать сложные
- 83. Цикл с условием Особенности: условие пересчитывается каждый раз при входе в цикл если условие на входе
- 84. Сколько раз выполняется цикл? a = 4; b = 6; while ( a 2 раза a
- 85. Задания «3»: Ввести целое число и определить, верно ли, что в нём ровно 3 цифры. Пример:
- 86. Задания «5»: Ввести целое число и определить, верно ли, что в его записи есть две одинаковые
- 87. Задания-2 «3»: Ввести целое число и определить, верно ли, что в нём ровно 1 цифра «9».
- 88. Задания-2 «5»: Ввести целое число и определить, верно ли, что все его цифры расположены в порядке
- 89. Вычисление НОД НОД = наибольший общий делитель двух натуральных чисел – это наибольшее число, на которое
- 90. Алгоритм Евклида Евклид (365-300 до. н. э.) НОД(a,b)= НОД(a-b, b) = НОД(a, b-a) Заменяем большее из
- 91. Блок-схема алгоритма начало конец
- 92. Алгоритм Евклида while ( a != b ) { if ( a > b ) a
- 93. Модифицированный алгоритм Евклида НОД(a,b)= НОД(a % b, b) = НОД(a, b % a) Заменяем большее из
- 94. Алгоритм Евклида «3»: Составить программу для вычисления НОД с помощью алгоритма Евклида. «4»: Составить программу для
- 95. Алгоритм Евклида «5»: Выполнить задание на «4» и подсчитать число шагов алгоритма для каждого случая.
- 96. Последовательности Примеры: 1, 2, 3, 4, 5, … 1, 2, 4, 7, 11, 16, … 1,
- 97. Последовательности Задача: найти сумму всех элементов последовательности, которые по модулю больше 0,001: Элемент последовательности (начиная с
- 98. Алгоритм начало S конец нет да |a| > 0.001? S = S + a; S =
- 99. Программа #include main() { int b, c, z; float S, a; S = 0; z =
- 100. Задания «4»: Найти сумму элементов последовательности с точностью 0,001: Ответ: S = 1.157 «5»: Найти сумму
- 101. Цикл с постусловием Задача: Ввести целое положительное число ( Проблема: Как не дать ввести отрицательное число
- 102. Цикл с постусловием: алгоритм начало конец нет да n тело цикла условие блок «типовой процесс» ввод
- 103. Программа main() { int n; do { printf("Введите положительное число\n"); scanf("%d", &n); } while ( n
- 104. Сколько раз выполняется цикл? a = 4; b = 6; do { a ++; } while
- 105. Задания (с защитой от неверного ввода) «4»: Ввести натуральное число и определить, верно ли, что сумма
- 106. Программирование на языке Си Тема 6. Циклы с переменной
- 107. Цикл c переменной Цикл – это многократное выполнение одинаковой последовательности действий. цикл с известным числом шагов
- 108. Алгоритм начало конец нет да N N = 1; N ++; cubeN = N*N*N;
- 109. Цикл с переменной Задача: вывести кубы натуральных чисел от 1 до 8. main() { int N,
- 110. Алгоритм (с блоком «цикл») начало N, cubeN конец cubeN = N*N*N; N = 1,8 блок «цикл»
- 111. Программа main() { int N, cubeN; for (i=1; i { cubeN = N*N*N; printf("%4d %4d\n", N,
- 112. Цикл с уменьшением переменной Задача. Вывести на экран кубы целых чисел от 8 до 1 (в
- 113. Цикл с переменной for (начальные значения; условие продолжения цикла; изменение на каждом шаге) { // тело
- 114. Цикл с переменной Особенности: условие проверяется в начале очередного шага цикла, если оно ложно цикл не
- 115. for (i=8; i>=1; i--) printf("Привет"); printf("i=%d", i); Цикл с переменной Особенности: после выполнения цикла во многих
- 116. Сколько раз выполняется цикл? a = 1; for(i=1; i a = 4 a = 1; b=2;
- 117. Замена for на while и наоборот for( i=1; i { // тело цикла } i =
- 118. Задания «3»: Ввести натуральное число N и вывести числа от N до 1 (через одно) в
- 119. Задания «4»: Ввести два целых числа a и b (a ≤ b) и вывести кубы всех
- 120. Задания «3»: Ввести натуральное число вывести квадраты и кубы всех чисел от 1 до этого числа.
- 121. Задания «5»: Ввести два целых числа a и b (a ≤ b) и вывести сумму квадратов
- 122. Программирование на языке Си Тема 7. Оператор выбора
- 123. Оператор выбора Задача: Ввести номер месяца и вывести количество дней в этом месяце. Решение: Число дней
- 124. Алгоритм начало конец оператор выбора ни один вариант не подошел ввод M да нет M =
- 125. Программа main() { int M, D; printf("Введите номер месяца:\n"); scanf("%d", &M); switch ( M ) {
- 126. Оператор выбора Задача: Ввести букву и вывести название животного на эту букву. Особенность: выбор по символьной
- 127. Оператор выбора Особенности: после switch может быть имя переменной или арифметическое выражение целого типа (int) или
- 128. Задания (с защитой от неверного ввода) «4»: Ввести номер месяца и вывести количество дней в нем,
- 129. Программирование на языке Си Тема 8. Отладка программ
- 130. Отладка программ Отладка – поиск и исправление ошибок в программе. Англ. debugging, bug = моль, жучок
- 131. Трассировка printf("Введено X=%d\n", X); printf("В цикле: i=%d, X=%d\n", i, X); printf("После цикла: X=%d\n", X); main() {
- 132. Отключение части кода (комментарии) main() { int i, X; printf("Введите целое число:\n"); scanf("%d", &X); X *=
- 133. Точки останова это точка останова ЛКМ или Ctrl+F5 F8 – запустить и выполнить до следующей точки
- 134. Просмотр значений переменных навести мышь на имя переменной ПКМ
- 135. Программирование на языке Си Тема 9. Графика
- 136. Система координат (0,0) (x,y) X Y x y
- 137. Принцип сэндвича рисование в графическом режиме открыть окно для графики закрыть окно для графики
- 138. #include #include main() { initwindow ( 400, 300 ); ... // рисуем на экране getch(); closegraph();
- 139. Цвета
- 140. Полная палитра цветов цвет = R + G + B Red красный 0..255 Blue синий 0..255
- 141. Управление цветом Цвет линий и текста: set color = установить цвет setcolor ( 12 ); setcolor
- 142. Точки, отрезки и ломаные setcolor ( 10 ); line (x1, y1, x2, y2); putpixel (x, y,
- 143. Прямоугольники setcolor ( 9 ); rectangle (x1, y1, x2, y2); setfillstyle ( 1, 12 ); bar
- 144. Окружность, заливка, текст setcolor ( COLOR(255,0,0) ); circle ( x, y, R ); setfillstyle ( 1,
- 145. Пример (200, 50) (100, 100) (300, 200) setfillstyle (1, 9); bar (100,100,300,200); setcolor (13); rectangle (100,100,300,200);
- 146. Задания «5»: «Корона»
- 147. Задания «3»: «Домик» «4»: «Лягушка»
- 148. Штриховка (x1, y1) (x2, y2) N линий (N=5) h rectangle (x1, y1, x2, y2); line( x1+h,
- 149. Штриховка (программа) (x1, y1) (x2, y2) h #include #include main() { int N = 10, x1
- 150. Штриховка (x1, y1) (x2, y2) (x3, y2) a h (x3+a, y1) line( x1+h, y1, x1+h-a, y2);
- 151. Штриховка (x1, y1) (x2, y2) hx hy y x y line( x1, y1+hy, x1+hx, y1+hy );
- 152. Задания «3»: Ввести с клавиатуры количество линий, построить фигуру и выполнить штриховку: «4»: Ввести с клавиатуры
- 153. Задание «5»: Ввести с клавиатуры количество линий и построить фигуру:
- 154. COLOR(c, c, c) Как менять цвет? (x1, y1) (x2, y2) hc = 255 / N; c
- 155. Как менять цвет? setfillstyle( 1, COLOR(c,c,c) ); floodfill ( ???, ???, 15 ); hc = 255
- 156. Задания «4»: Ввести с клавиатуры число линий штриховки и построить фигуру, залив все области разным цветом.
- 157. Программирование на языке Си Тема 10. Графики функций (только с 9 класса)
- 158. Построение графиков функций Задача: построить график функции y = 3 sin(x) на интервале от 0 до
- 159. Преобразование координат (x,y) X Y x y Математическая система координат Экранная система координат (пиксели) (xэ,yэ) xэ
- 160. Программа const a = 50, b = 200, k = 50; const float xmin = 0,
- 161. Как соединить точки? Алгоритм: Если первая точка перейти в точку (xэ,yэ) иначе отрезок в точку (xэ,yэ)
- 162. Задания «4»: Построить график функции y = x2 на интервале [-3,3]. «5»: Построить график функции (эллипс)
- 163. Программирование на языке Си Тема 11. Процедуры
- 164. Процедуры Задача: Построить фигуру: Особенность: Три похожие фигуры. общее: размеры, угол поворота отличия: координаты, цвет
- 165. Процедуры Процедура – это вспомогательный алгоритм, который предназначен для выполнения некоторых действий. Применение: выполнение одинаковых действий
- 166. Процедуры Порядок разработки: выделить одинаковое или похожее (три фигуры) найти в них общее (размеры, форма, угол
- 167. Процедуры (x+100, y) (x, y-60) void Tr( int x, int y, int c ) { moveto
- 168. Программа #include #include main() { initwindow (400, 300); Tr (100, 100, COLOR(0,0,255)); Tr (200, 100, COLOR(0,255,0));
- 169. Процедуры Особенности: обычно процедуры расположены выше основной программы в заголовке процедуры перечисляются формальные параметры, они обозначаются
- 170. Процедуры Особенности: для каждого формального параметра в заголовке процедуры указывают его тип внутри процедуры параметры используются
- 171. Как поменять местами? 2 3 1 Задача: поменять местами содержимое двух чашек. Задача: поменять местами содержимое
- 172. Параметры-переменные Задача: составить процедуру, которая меняет местами значения двух переменных. Особенности: надо, чтобы изменения, сделанные в
- 173. Параметры-переменные Применение: таким образом процедура (и функция) может возвращать несколько значений Запрещенные варианты вызова Swap (
- 174. Задания «3»: Используя одну процедуру, построить фигуру. «4»: Используя одну процедуру, построить фигуру.
- 175. Задания «5»: Используя одну процедуру, построить фигуру.
- 176. Программирование на языке Си Тема 12. Анимация
- 177. Анимация Анимация (англ. animation) – оживление изображения на экране. Задача: внутри синего квадрата 400 на 400
- 178. Как «поймать» нажатие клавиши? kbhit() – функция, определяет, было ли нажатие на (любую!) клавишу (0 –
- 179. Как выйти из цикла? #include main() { ... while ( x + 20 { if (
- 180. Процедура (рисование и стирание) void Draw( int x, int y, int color ) { setfillstyle (
- 181. Полная программа #include #include void Draw ( int x, int y, int color ) { ...
- 182. Цикл анимации while ( x + 20 { if ( kbhit() ) if ( getch() ==
- 183. Задания «3»: Квадрат двигается справа налево: «4»: Два квадрата двигаются в противоположных направлениях:
- 184. Задания «5»: Два квадрата двигаются в противоположных направлениях и отталкиваются от стенок синего квадрата:
- 185. Управление клавишами Задача: жёлтый квадрат внутри синего квадрата управляется клавишами-стрелками. Коды клавиш: влево – 75 вверх
- 186. Программа void Draw (int x, int y, int color) { ... } if ( kbhit() )
- 187. Задания «3»: Квадрат в самом начале стоит в правом нижнем углу, и двигается при нажатии стрелок
- 188. Задания «5»: Квадрат непрерывно двигается, при нажатии стрелок меняет направление и отталкивается от стенок синего квадрата:
- 189. Вращение (для 8-11 класса) Задача: изобразить модель вращения Земли вокруг Солнца. Проблема: движение по окружности, как
- 190. Процедура void Draw( int x, int y, int color ) { const int r = 10;
- 191. Константы и переменные #include // математические функции main() { const int rSun = 60, // радиус
- 192. Основной цикл circle ( x0, y0, rSun ); setfillstyle(1, COLOR(255,255,0)); floodfill(x0, y0, COLOR(255,255,255)); a = 0;
- 193. «4»: Изобразить модель Солнца с двумя планетами, которые вращаются в противоположные стороны: «5»: Изобразить модель системы
- 194. Программирование на языке Си Тема 13. Функции
- 195. Функции Функция – это вспомогательный алгоритм (подпрограмма), результатом работы которого является некоторое значение. Примеры: вычисление модуля
- 196. Функции Задача: составить функцию, которая вычисляет наибольшее из двух значений, и привести пример ее использования Функция:
- 197. Функции Особенности: в начале заголовка ставится тип результата формальные параметры описываются так же, как и для
- 198. Функции Особенности: можно объявлять и использовать локальные переменные локальные переменные
- 199. Программа main() { int a, b, с; printf ( "Введите два числа\n" ); scanf ( "%d%d",
- 200. Задания «4»: Составить функцию, которая определяет сумму всех чисел от 1 до N и привести пример
- 201. Задания (вариант 2 для 9-11 класса) «4»: Составить функцию, которая определяет наибольший общий делитель двух натуральных
- 202. Логические функции Задача: составить функцию, которая определяет, верно ли, что заданное число – простое. Особенности: ответ
- 203. Функция: простое число или нет int Prime ( int N ) { int count = 0,
- 204. Логические функции #include main() { int N; printf ( "Введите целое число\n" ); scanf ( "%d",
- 205. Задания «4»: Составить функцию, которая определяет, верно ли, что сумма его цифр – четное число. Пример:
- 206. Программирование на языке Си Тема 14. Случайные числа
- 207. Случайные числа Случайные явления: везде… бросание монеты («орел» или «решка») падение снега броуновское движение помехи при
- 208. Псевдослучайные числа Псевдослучайные числа – это такая последовательность чисел, которая обладает свойствами случайных чисел, но каждое
- 209. Распределение случайных чисел Модель: снежинки падают на отрезок [a,b] распределение равномерное неравномерное
- 210. Распределение случайных чисел Особенности: распределение – это характеристика всей последовательности, а не одного числа равномерное распределение
- 211. Генератор случайных чисел в Си RAND_MAX – максимальное случайное целое число (обычно RAND_MAX = 32767) rand()
- 212. Целые числа в заданном интервале Целые числа в интервале [0,N-1]: Примеры: Целые числа в интервале [a,b]:
- 213. Генератор случайных чисел в Си Вещественные числа в интервале [0,1] float x; x = 1.*rand() /
- 214. Случайные числа Задача: заполнить прямоугольник 400 на 300 пикселей равномерно точками случайного цвета Как получить случайные
- 215. Программа #include #include #include main() { int x, y, R, G, B; initwindow ( 500, 500
- 216. Основной цикл while ( 1 ) { x = random(400); y = random(300); R = random(256);
- 217. Задания «3»: Заполнить квадрат точками случайного цвета. размер квадрата ввести с клавиатуры: Пример: Введите размер квадрата:
- 218. Залания «5»: Заполнить область точками случайного цвета: или
- 220. Скачать презентацию