Содержание
- 2. Использование промежуточной переменной (буфера) при обмене значениями двух переменных: A = 3; B = 6; Надо
- 3. Вывод на печать текстов с одним изменяющимся словом: Пример: - число является палиндромом, - число НЕ
- 4. Условный оператор Ввести исходные данные, найти решение, вывести результат на экран (x >= -3) && (x
- 5. Чтение данных с клавиатуры Очистка буфера клавиатуры И+ПРГ АЛГОхитрости C / C++ Для функции scanf задаются
- 6. Цикл for Нарисовать алгоритм, написать программы на С Дано целое число N (> 3). Последовательность целых
- 7. Определение количества цифр целого числа Введём новые математические операции в псевдокоде: Целое( ) – в результат
- 8. Выделение цифр, входящих в целое число Для решения этой задачи надо: Получить остаток от деления заданного
- 9. Выделение цифр, входящих в целое число – блок-схема Введём новые математические операции в псевдокоде: % или
- 10. Проверка введённых данных – блок-схема Это действие осуществляется с использование структуры Цикл с постусловием АЛГОхитрости Типовые
- 12. Скачать презентацию
Использование промежуточной переменной (буфера) при обмене значениями двух переменных:
A =
Использование промежуточной переменной (буфера) при обмене значениями двух переменных:
A =
B = 6;
Надо поменять значения переменных местами, т.е. сделать:
A = 6;
B = 3;
Для этого действия вводится буфер – переменная К – и выполняются следующие операции:
K = A;
A = B;
B = K;
Сумматор – используется для накопления значений в какой либо изменяющейся в процессе обработки переменной, при этом вид обработки может быть самый разный (суммирование, умножение и пр.):
S = S + n;
D = D * h;
АЛГОхитрости
Типовые алгоритмические приёмы
И+ПРГ
Вывод на печать текстов с одним изменяющимся словом:
Пример: - число является
Вывод на печать текстов с одним изменяющимся словом:
Пример: - число является
- число НЕ является палиндромом.
АЛГОхитрости
Типовые алгоритмические приёмы
Понятно, что в принципе не очень сложно распростра-нить это приём на вывод в основном одинаковых текстов с несколькими изме-няющимися частями
И+ПРГ
Условный оператор
Условный оператор
Ввести исходные данные, найти решение, вывести результат на экран
(x
Условный оператор
Ввести исходные данные, найти решение, вывести результат на экран
(x
1. Определить принадлежит ли x отрезку [-3,7]
(x > 99) && (x <= 999)
2. Определить является ли x трёхзначным числом
Использовать операции if и %
3. Дано двузначное число. Определить кратно ли оно трём
5. Дано четырёхзначное целое число x. Написать программы на С, определяющие, является ли високосным год с таким номером.
Год является високосным, если его номер кратен 4, однако из кратных 100 високосными являются лишь кратные 400, например. 1700, 1800 и 1900 – не високосные года, 2000 – високосный.
4. Дано двузначное число x. Определить состоит ли оно из одинаковых цифр
if (x >= 10) && (x <= 99)
if x % 10 = (int) x / 10
printf ("Да")
else printf ("Нет");
else printf (" ошибка ввода числа");
вариант 2-го if: if x % 11 = 0
И+ПРГ
АЛГОхитрости
Типовые алгоритмические приёмы
Чтение данных с клавиатуры
Очистка буфера клавиатуры
И+ПРГ
АЛГОхитрости
C / C++
Для функции scanf задаются
Чтение данных с клавиатуры
Очистка буфера клавиатуры
И+ПРГ
АЛГОхитрости
C / C++
Для функции scanf задаются
При чтении чисел из буфера клавиатуры функция scanf() прекращает чтение числа тогда, когда встречается первый нечисловой символ.
При чтении одиночного символа символы разделителей читаются так же, как и любой другой символ, хотя при чтении данных других типов разделители интерпретируются как разделители полей.
Например, при вводе с входного потока
"x y" фрагмент кода
scanf("%c%c%c", &a, &b, &c);
помещает символ x в a, пробел в b, а символ y - в c.
Введите конструкцию: A + B разными способами (одним и несколькими операторами ввода С; как в образце; сначала знак – потом цифры и т.д.).
Исследуйте ситуацию, когда знак операции пропадает, а когда – нет!
Напишите ввод цифровых и символьных данных очищая буфер клавиатуры перед вводом знака операции.
Цикл for
Нарисовать алгоритм, написать программы на С
Дано целое число N
Цикл for
Нарисовать алгоритм, написать программы на С
Дано целое число N
А1 = 1, А2 = 2, A3 = 3, … , Ak = Ak-1 + Аk-2 – 2*Аk-3,
k = 4, 5, …
Вывести элементы А1, А2, … , AN.
И+ПРГ
Дано целое число N (> 0). Найти и вывести сумму:
1N + 2N-1 + … + N1.
Чтобы избежать целочисленного переполнения, вычислять слагаемые этой суммы с помощью вещественной переменной и выводить результат как вещественное число (или использовать длинные целые –long в C).
АЛГОхитрости
Типовые алгоритмические приёмы
Определение количества цифр целого числа
Введём новые математические операции в псевдокоде:
Определение количества цифр целого числа
Введём новые математические операции в псевдокоде:
АЛГОхитрости
Типовые алгоритмические приёмы. Цикл while
И+ПРГ
Блок-схема
// Определить состоит ли число из одинаковых цифр Код
#include
main()
{
int n, i=0, k;
printf("\nВведите целое число (до 32 767) n=");
scanf("%D", &n);
k=n;
while(k!=0)
{
k = (int) k / 10;
i++;
}
printf("\nКоличество цифр в числе %i равно
%d",n,i);
return 0;
}
Выделение цифр, входящих в целое число
Для решения этой задачи надо:
Получить
Выделение цифр, входящих в целое число
Для решения этой задачи надо:
Получить
Убрать из числа последнюю цифру,
для этого надо разделить число на 10 и взять целую часть результата деления
(123 делить на 10 = 12,3 ? целая часть нового числа = 12)
Получить остаток от деления нового числа на 10 – это будет правая цифра нового числа (остаток от деления 12 на 10 = 2)
Убрать из числа последнюю цифру, для чего снова разделить новое число на 10 и взять целую часть результата деления (12 делить на 10 = 1,2 - целая часть нового числа = 1)
Получить остаток от деления нового числа на 10 – это будет правая цифра числа (остаток от деления 1 на 10 = 1 – Пояснение: результат деления = 0, а остаток = 1)
(последнее новое число в примере состоит из одной цифры, но без специальных операций это заранее неизвестно, лучше выполнять предыдущие операции)
Теперь надо уяснить как организовать последовательность описанных выше операций: НАДО организовать цикл, в котором:
повторять тело цикла до тех пор пока целая часть результата деления нового числа на 10 не станет равна 0,
получить остаток от деления текущего числа на 10,
получить целую часть от деления текущего числа на 10,
назначить целую часть результата деления текущим новым числом,
перейти к пункту а).
АЛГОхитрости
Типовые алгоритмические приёмы. Цикл while
И+ПРГ
Выделение цифр, входящих в целое число – блок-схема
Введём новые математические операции в
Выделение цифр, входящих в целое число – блок-схема
Введём новые математические операции в
% или Остаток от деления – в результат записывается остаток от деления операнда_1 на операнд_2 . Пример: А=243, B=10; r = A % B = 243 % 10 = 3
АЛГОхитрости
Типовые алгоритмические приёмы. Цикл while
И+ПРГ
Проверка введённых данных – блок-схема
Это действие осуществляется с использование структуры
Цикл
Проверка введённых данных – блок-схема
Это действие осуществляется с использование структуры
Цикл
АЛГОхитрости
Типовые алгоритмические приёмы
И+ПРГ
Цикл do-while