Содержание
- 2. Программирование на языке Си § 54. Алгоритм и его свойства
- 3. Что такое алгоритм? Алгоритм — это точное описание порядка действий, которые должен выполнить исполнитель для решения
- 4. Свойства алгоритма Дискретность — алгоритм состоит из отдельных команд, каждая из которых выполняется за конечное время.
- 5. Как работает алгоритм? дискретный объект 1 2 3 4 алгоритм шаг 1 шаг 2 шаг 3
- 6. Способы записи алгоритмов естественный язык псевдокод установить соединение пока не принята команда «стоп» принять команду выполнить
- 7. Способы записи алгоритмов блок-схема установитьСоединение начало цикла cmd = получитьКоманду выполнитьКоманду(cmd) конец при cmd = 'stop'
- 8. Программирование на языке Си § 55. Простейшие программы
- 9. Простейшая программа main() { // это основная программа /* здесь записывают операторы */ } это основная
- 10. Вывод на экран main() { printf("2+"); printf("2=?\n"); printf("Ответ: 4"); } Протокол: 2+2=? Ответ: 4 "\n" –
- 11. Подключение библиотечных функций #include main() { printf("2+"); printf("2=?\n"); printf("Ответ: 4"); getchar(); } стандартные функции ввода и
- 12. Задания «B»: Вывести на экран текст «лесенкой» Вася пошел гулять «C»: Вывести на экран рисунок из
- 13. Сложение чисел Задача. Ввести с клавиатуры два числа и найти их сумму. Протокол: Введите два целых
- 14. Сумма: псевдокод main() { // ввести два числа // вычислить их сумму // вывести сумму на
- 15. Переменные Переменная – это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время
- 16. Имена переменных МОЖНО использовать латинские буквы (A-Z, a-z) цифры знак подчеркивания _ заглавные и строчные буквы
- 17. Объявление переменных Типы переменных: int // целая float // вещественная и другие… Объявление переменных: int a,
- 18. Тип переменной область допустимых значений допустимые операции объём памяти формат хранения данных для предотвращения случайных ошибок
- 19. Как записать значение в переменную? a = 5; оператор присваивания 5 Оператор – это команда языка
- 20. Ввод значения с клавиатуры 5 a
- 21. Ввод значения с клавиатуры scanf ( "%d", &a ); функция ввода формат ввода %d – целое
- 22. Ввод значений двух переменных через пробел: 25 30 через Enter: 25 30 scanf("%d%d", &a, &b);
- 23. Изменение значений переменной int a, b; a = 5; b = a + 2; a =
- 24. Вывод данных //вывод значения //переменной a //...и переход //на новую строку printf("%d", a); формат вывода printf("%d\n",
- 25. Вывод данных //вывод текста //вывод текста и значения переменной c printf( "Привет!" ); printf( "Ответ: %d",
- 26. Сложение чисел: простое решение #include main() { int a, b, c; scanf( "%d%d", &a, &b );
- 27. Сложение чисел: полное решение main() { int a, b, c; printf("Введите два целых числа\n"); scanf( "%d%d",
- 28. Снова про оператор вывода a = 123; printf("% 5 d", a); Форматный вывод: Вычисление выражений: printf(
- 29. Программирование на языке Си § 56. Вычисления
- 30. Типы данных int // целое long int // длинное целое float // вещественное double // веществ.
- 31. Арифметическое выражения a = (c + b*5*3 - 1) / 2 * d; Приоритет (старшинство): скобки
- 32. Деление Результат деления целого на целое – целое число (остаток отбрасывается): int a = 3, b
- 33. Остаток от деления % – остаток от деления int a, b, d; d = 85; b
- 34. Сокращенная запись операций int a, b; ... a ++; // a = a + 1; a
- 35. Вещественные числа Форматы вывода: float x = 123.456; printf("%f\n", x ); printf("%10.2f\n", x ); 123.456001 всего
- 36. Вещественные числа Экспоненциальный формат: float x; x = 1./30000; printf("%e\n", x); x = 12345678.; printf("%e\n", x);
- 37. Стандартные функции abs(x) — модуль целого числа fabs(x) — модуль вещественного числа sqrt(x) — квадратный корень
- 38. Случайные числа Случайно… встретить друга на улице разбить тарелку найти 10 рублей выиграть в лотерею Случайный
- 39. Случайные числа на компьютере Электронный генератор нужно специальное устройство нельзя воспроизвести результаты 318458191041 564321 209938992481 458191
- 40. Линейный конгруэнтный генератор X = (a*X+b) % c | интервал от 0 до c-1 X =
- 41. Генератор случайных чисел Генератор на отрезке [0,RAND_MAX]: int X, Y; X = rand(); // псевдослучайное число
- 42. Задачи «A»: Ввести с клавиатуры три целых числа, найти их сумму, произведение и среднее арифметическое. Пример:
- 43. Задачи «C»: Получить случайное трехзначное число и вывести через запятую его отдельные цифры. Пример: Получено число
- 44. Программирование на языке Си § 57. Ветвления
- 45. Условный оператор Задача: изменить порядок действий в зависимости от выполнения некоторого условия. полная форма ветвления if
- 46. Условный оператор: неполная форма неполная форма ветвления M = a; if ( b > a )
- 47. Условный оператор if ( a { с = a; a = b; b = c; }
- 48. Знаки отношений > >= == != больше, меньше больше или равно меньше или равно равно не
- 49. Вложенные условные операторы if ( a == b ) printf("Одного возраста"); else if ( a >
- 50. Задачи «A»: Ввести три целых числа, найти максимальное из них. Пример: Введите три целых числа: 1
- 51. Задачи «C»: Ввести последовательно возраст Антона, Бориса и Виктора. Определить, кто из них старше. Пример: Возраст
- 52. Сложные условия Задача: набор сотрудников в возрасте 25-40 лет (включительно). if ( ) printf("подходит"); else printf("не
- 53. Задачи «A»: Напишите программу, которая получает три числа и выводит количество одинаковых чисел в этой цепочке.
- 54. Задачи «B»: Напишите программу, которая получает номер месяца и выводит соответствующее ему время года или сообщение
- 55. Задачи «C»: Напишите программу, которая получает возраст человека (целое число, не превышающее 120) и выводит этот
- 56. Задачи «A»: Напишите условие, которое определяет заштрихованную область. «B»: Напишите условие, которое определяет заштрихованную область.
- 57. Задачи «C»: Напишите условие, которое определяет заштрихованную область.
- 58. Множественный выбор if (m == 1) printf("январь"); if (m == 2) printf("февраль"); ... if (m ==
- 59. Множественный выбор switch ( m ) { case 1: printf("январь"); case 2: printf("февраль"); case 3: printf("март");
- 60. Множественный выбор char c; c = getchar(); switch(c) { case 'а': printf("антилопа\n"); printf("Анапа\n"); break; ... case
- 61. Программирование на языке Си § 58. Циклические алгоритмы
- 62. Что такое цикл? Цикл – это многократное выполнение одинаковых действий. Два вида циклов: цикл с известным
- 63. Повторения в программе printf("Привет\n"); printf("Привет\n"); ... printf("Привет\n");
- 64. Блок-схема цикла начало конец да нет тело цикла
- 65. Как организовать цикл? счётчик = 0 пока счётчик printf("Привет\n"); увеличить счётчик на 1 счётчик = 10
- 66. Цикл с условием Задача. Определить количество цифр в десятичной записи целого положительного числа, записанного в переменную
- 67. Цикл с условием count = 0; while ( ) { } n = n / 10;
- 68. Цикл с условием k = 0; while ( k { printf ( "привет\n" ); k ++;
- 69. Сколько раз выполняется цикл? a = 4; b = 6; while ( a 2 раза a
- 70. Цикл с постусловием do { } while ( n условие продолжения заголовок цикла printf("Введите n >
- 71. Задачи «A»: Напишите программу, которая получает два целых числа A и B (0 Пример: Введите два
- 72. Задачи «C»: Ввести натуральное число N и вычислить сумму всех чисел Фибоначчи, меньших N. Предусмотрите защиту
- 73. Задачи-2 «A»: Ввести натуральное число и найти сумму его цифр. Пример: Введите натуральное число: 12345 Сумма
- 74. Задачи-2 «C»: Ввести натуральное число и определить, верно ли, что в его записи есть две одинаковые
- 75. Цикл с переменной Задача. Вывести все степени двойки от 21 до 210. n = 2; while
- 76. Цикл с переменной: другой шаг for ( k = 10; k >= 1; k-- ) printf(
- 77. Сколько раз выполняется цикл? a = 1; for( i = 1; i a = 4 a
- 78. Задачи «A»: Найдите все пятизначные числа, которые при делении на 133 дают в остатке 125, а
- 79. Задачи «С»: Натуральное число называется автоморфным, если оно равно последним цифрам своего квадрата. Например, 252 =
- 80. Вложенные циклы Задача. Вывести все простые числа в диапазоне от 2 до 1000. сделать для n
- 81. Вложенные циклы for ( n = 2; n { count = 0; if ( count ==
- 82. Вложенные циклы for ( i = 1; i { for ( k = 1; k {
- 83. Поиск простых чисел – как улучшить? count = 0; k = 2; while ( ) {
- 84. Задачи «A»: Напишите программу, которая получает натуральные числа A и B (A Пример: Введите границы диапазона:
- 85. Задачи «C»: Ввести натуральное число N и вывести все натуральные числа, не превосходящие N и делящиеся
- 86. Программирование на языке Си § 59. Процедуры
- 87. Зачем нужны процедуры? printf ( "Ошибка программы" ); много раз! main() { int n; scanf (
- 88. Что такое процедура? Процедура – вспомогательный алгоритм, который выполняет некоторые действия. в момент вызова процедура должна
- 89. Процедура с параметрами Задача. Вывести на экран запись целого числа (0..255) в 8-битном двоичном коде. много
- 90. Процедура с параметрами Задача. Вывести на экран запись целого числа (0..255) в 8-битном двоичном коде. Решение:
- 91. Процедура с параметрами main() { printBin ( 99 ); } значение параметра (аргумент) void printBin (
- 92. Несколько параметров void printSred ( int a, int b ) { printf ( "%f", (a+b)/2. );
- 93. Задачи «A»: Напишите процедуру, которая принимает параметр – натуральное число N – и выводит на экран
- 94. Задачи «C»: Напишите процедуру, которая выводит на экран запись переданного ей числа в римской системе счисления.
- 95. Изменяемые параметры Задача. Написать процедуру, которая меняет местами значения двух переменных. main() { int x =
- 96. Изменяемые параметры (Cи) void Swap ( int adrA, int adrB ) { int c; c =
- 97. Изменяемые параметры (C++) void Swap ( int a, int b ) { int c; c =
- 98. Задачи «A»: Напишите процедуру, которая переставляет три переданные ей числа в порядке возрастания. Пример: Введите три
- 99. Задачи «C»: Напишите процедуру, которая вычисляет наибольший общий делитель и наименьшее общее кратное двух натуральных чисел
- 100. Программирование на языке Си § 60. Функции
- 101. Что такое функция? Функция – это вспомогательный алгоритм, который возвращает значение-результат (число, символ или объект другого
- 102. Сумма цифр числа main() { printf ( "%d", sumDigits(12345) ); } int sumDigits ( int n
- 103. Использование функций x = 2*sumDigits(n+5); z = sumDigits(k) + sumDigits(m); if ( sumDigits(n) % 2 ==
- 104. Задачи «A»: Напишите функцию, которая находит наибольший общий делитель двух натуральных чисел. Пример: Введите два натуральных
- 105. Задачи «C»: Напишите функцию, которая «переворачивает» число, то есть возвращает число, в котором цифры стоят в
- 106. Логические функции Задача. Найти все простые числа в диапазоне от 2 до 100. main() { int
- 107. Функция: простое число или нет? bool isPrime ( int n ) { int count = 0,
- 108. Логические функции: использование scanf ( "%d", &n ); while ( isPrime(n) ) { printf ("простое число\n");
- 109. Задачи «A»: Напишите логическую функцию, которая определяет, является ли переданное ей число совершенным, то есть, равно
- 110. Задачи «B»: Напишите логическую функцию, которая определяет, являются ли два переданные ей числа взаимно простыми, то
- 111. Задачи «С»: Простое число называется гиперпростым, если любое число, получающееся из него откидыванием нескольких цифр, тоже
- 112. Программирование на языке Си § 61. Рекурсия
- 113. Что такое рекурсия? У попа была собака, он её любил, Она съела кусок мяса, он её
- 114. Что такое рекурсия? Натуральные числа: индуктивное определение Рекурсия — это способ определения множества объектов через само
- 115. Фракталы Фракталы – геометрические фигуры, обладающие самоподобием. Треугольник Серпинского:
- 116. Ханойские башни за один раз переносится один диск класть только меньший диск на больший третий стержень
- 117. Ханойские башни – процедура void Hanoi ( int n, int k, int m ) { int
- 118. Ханойские башни – процедура Рекурсивная процедура (функция) — это процедура (функция), которая вызывает сама себя напрямую
- 119. Вывод двоичного кода числа void printBin( int n ) { if ( n == 0 )
- 120. Вычисление суммы цифр числа int sumDig ( int n ) { int sum; sum = n
- 121. Алгоритм Евклида Алгоритм Евклида. Чтобы найти НОД двух натуральных чисел, нужно вычитать из большего числа меньшее
- 122. Задачи «A»: Напишите рекурсивную функцию, которая вычисляет НОД двух натуральных чисел, используя модифицированный алгоритм Евклида. Пример:
- 123. Задачи «C»: Дано натуральное число N. Требуется получить и вывести на экран количество всех возможных различных
- 124. Как работает рекурсия? int Fact ( int N ) { int F; printf ( "-> N=%d\n",
- 125. Стек Стек – область памяти, в которой хранятся локальные переменные и адреса возврата. Fact(3) Fact(2) Fact(1)
- 126. Рекурсия – «за» и «против» с каждым новым вызовом расходуется память в стеке (возможно переполнение стека)
- 127. Конец фильма ПОЛЯКОВ Константин Юрьевич д.т.н., учитель информатики ГБОУ СОШ № 163, г. Санкт-Петербург [email protected] ЕРЕМИН
- 129. Скачать презентацию