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