Практикум по программированию. Основы. Циклы
(15 intermediate revisions by one user not shown) | |||
Line 9: | Line 9: | ||
1. Задан ряд чисел от 1 до N. Найти сумму квадратов этих чисел. | 1. Задан ряд чисел от 1 до N. Найти сумму квадратов этих чисел. | ||
1<sup>2</sup> + 2<sup>2</sup> + 3<sup>2</sup> + ... + N<sup>2</sup> | 1<sup>2</sup> + 2<sup>2</sup> + 3<sup>2</sup> + ... + N<sup>2</sup> | ||
+ | | ||
+ | Пример интерфейса: | ||
+ | | ||
+ | Сумма квадратов чисел от 1 до N | ||
+ | --------------------------------- | ||
+ | Введите N: 123 | ||
+ | --------------------------------- | ||
+ | S = 627874 | ||
Решение: | Решение: | ||
[[Практикум по программированию. Основы. Циклы. Сумма квадратов чисел#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. Сумма квадратов чисел#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. Сумма квадратов чисел#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. Сумма квадратов чисел#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. Сумма квадратов чисел#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. Сумма квадратов чисел#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. Сумма квадратов чисел#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. Сумма квадратов чисел#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. Сумма квадратов чисел#JavaScript|JavaScript]] | ||
Line 17: | Line 26: | ||
2. Вычислить факториал натурального числа N. | 2. Вычислить факториал натурального числа N. | ||
− | + | <pre> | |
+ | 6! = 1 * 2 * 3 * 4 * 5 * 6 = 720 | ||
+ | |||
+ | Пример интерфейса: | ||
+ | |||
+ | Расчет факториала | ||
+ | ------------------- | ||
+ | Введите число: 10 | ||
+ | ------------------- | ||
+ | 10! = 3628800 | ||
+ | </pre> | ||
Решение: | Решение: | ||
[[Практикум по программированию. Основы. Циклы. Факториал#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. Факториал#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. Факториал#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. Факториал#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. Факториал#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. Факториал#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. Факториал#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. Факториал#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. Факториал#JavaScript|JavaScript]] | ||
− | 3. Дано число X и последовательность: 1, 1 + 1/2, 1 + 1/2 + 1/3, ... Найти в этой последовательности первое число Y > X. | + | 3. Дано число X и последовательность: 1, 1 + 1/2, 1 + 1/2 + 1/3, ...<br>Найти в этой последовательности первое число Y > X. |
− | + | <pre> | |
− | + | Первое число в последовательности Y = 1 | |
+ | далее, переходим к следующему Y = Y + 1 / i пока не выполнится условие Y > X | ||
+ | |||
+ | Пример интерфейса: | ||
+ | |||
+ | Поиск элементов ряда: | ||
+ | 1, 1 + 1/2, 1 + 1/2 + 1/3 ... | ||
+ | ------------------------------- | ||
+ | Введите границу поиска: 3 | ||
+ | ------------------------------- | ||
+ | Y = 3,019877344877 | ||
+ | </pre> | ||
Решение: | Решение: | ||
[[Практикум по программированию. Основы. Циклы. Поиск элементов ряда#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. Поиск элементов ряда#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. Поиск элементов ряда#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. Поиск элементов ряда#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. Поиск элементов ряда#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. Поиск элементов ряда#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. Поиск элементов ряда#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. Поиск элементов ряда#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. Поиск элементов ряда#JavaScript|JavaScript]] | ||
Line 37: | Line 69: | ||
4. Написать программу возведения вещественного числа в степень с натуральным показателем. | 4. Написать программу возведения вещественного числа в степень с натуральным показателем. | ||
A<sup>N</sup>, где A - вещественное; N - натуральное | A<sup>N</sup>, где A - вещественное; N - натуральное | ||
− | |||
Необходимо N - раз выполнить умножение A * A * A ... | Необходимо N - раз выполнить умножение A * A * A ... | ||
+ | | ||
+ | Пример интерфейса: | ||
+ | | ||
+ | Вычисление степени с натуральным показателем A^N | ||
+ | -------------------------------------------------- | ||
+ | Введите основание степени A: 2,5 | ||
+ | Введите показатель степени N: 8 | ||
+ | -------------------------------------------------- | ||
+ | A^N = 1525,88 | ||
Решение: | Решение: | ||
[[Практикум по программированию. Основы. Циклы. Возведение в степень#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. Возведение в степень#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. Возведение в степень#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. Возведение в степень#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. Возведение в степень#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. Возведение в степень#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. Возведение в степень#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. Возведение в степень#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. Возведение в степень#JavaScript|JavaScript]] | ||
Line 47: | Line 88: | ||
5. Найти число Фибоначчи с заданным номером. | 5. Найти число Фибоначчи с заданным номером. | ||
− | + | <pre> | |
− | + | В 1202 году, рассматривая задачу о размножении кроликов, | |
− | + | Леонардо Фибоначчи получил последовательность чисел, | |
+ | в которой каждое число есть сумма двух предыдущих: 1, 1, 2, 3, 5, 8, ... | ||
+ | |||
+ | Пример интерфейса: | ||
+ | |||
+ | Поиск числа Фибоначчи с заданным номером N | ||
+ | -------------------------------------------- | ||
+ | Введите номер числа N: 10 | ||
+ | -------------------------------------------- | ||
+ | F(10) = 55,00 | ||
+ | </pre> | ||
Решение: | Решение: | ||
[[Практикум по программированию. Основы. Циклы. Число Фибоначчи#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. Число Фибоначчи#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. Число Фибоначчи#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. Число Фибоначчи#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. Число Фибоначчи#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. Число Фибоначчи#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. Число Фибоначчи#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. Число Фибоначчи#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. Число Фибоначчи#JavaScript|JavaScript]] | ||
Line 58: | Line 110: | ||
6. Определить, является ли заданное натуральное число N простым. | 6. Определить, является ли заданное натуральное число N простым. | ||
− | + | <pre> | |
− | + | Простые числа делятся только на единицу и на себя. | |
− | + | Сравните два алгоритма: | |
− | + | - деление на все числа от 2 до N - 1; | |
+ | - деление на все числа от 2 до N / 2 | ||
+ | |||
+ | Пример интерфейса: | ||
+ | |||
+ | Поиск простых чисел | ||
+ | --------------------- | ||
+ | Введите число: 127 | ||
+ | --------------------- | ||
+ | Число 127 - простое | ||
+ | </pre> | ||
Решение: | Решение: | ||
[[Практикум по программированию. Основы. Циклы. Простые числа#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. Простые числа#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. Простые числа#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. Простые числа#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. Простые числа#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. Простые числа#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. Простые числа#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. Простые числа#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. Простые числа#JavaScript|JavaScript]] | ||
Line 70: | Line 133: | ||
7. Найти наибольший общий делитель (НОД) и наименьшее общее кратное (НОК) двух натуральных чисел. | 7. Найти наибольший общий делитель (НОД) и наименьшее общее кратное (НОК) двух натуральных чисел. | ||
− | + | <pre> | |
− | + | Поиск НОД: | |
− | + | 1 - если числа равны, взять любое из них в качестве ответа; | |
− | + | 2 - определить большее из чисел; | |
− | + | 3 - заменить большее число разностью большего и меньшего; | |
− | + | 4 – перейти к пункту 1. | |
+ | НОК двух натуральных чисел равно произведению этих чисел, деленному на их НОД | ||
+ | |||
+ | Пример интерфейса: | ||
+ | |||
+ | Наибольший общий делитель (НОД) | ||
+ | и наименьшее общее кратное (НОК) | ||
+ | двух натуральных чисел | ||
+ | ---------------------------------- | ||
+ | Введите два натуральных числа: 28 42 | ||
+ | ---------------------------------- | ||
+ | НОД(28, 42) = 14 | ||
+ | НОК(28, 42) = 84 | ||
+ | </pre> | ||
Решение: | Решение: | ||
[[Практикум по программированию. Основы. Циклы. НОД и НОК#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. НОД и НОК#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. НОД и НОК#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. НОД и НОК#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. НОД и НОК#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. НОД и НОК#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. НОД и НОК#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. НОД и НОК#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. НОД и НОК#JavaScript|JavaScript]] | ||
Line 84: | Line 161: | ||
8. Табулирование функции Y = X<sup>2</sup> + 1 на отрезке [A, B] с шагом H. | 8. Табулирование функции Y = X<sup>2</sup> + 1 на отрезке [A, B] с шагом H. | ||
− | + | <pre> | |
+ | Необходимо вывести на экран таблицу значений функции на заданном отрезке. | ||
+ | |||
+ | Пример интерфейса: | ||
+ | |||
+ | Табулирование функции Y = X^2 + 1 | ||
+ | на отрезке [A, B] с шагом H | ||
+ | ----------------------------------- | ||
+ | Введите границы отрезка A и B: -2 2 | ||
+ | Введите шаг табулирования H: 0,5 | ||
+ | ----------------------------------- | ||
+ | X Y | ||
+ | -2,000 5,000 | ||
+ | -1,500 3,250 | ||
+ | -1,000 2,000 | ||
+ | -0,500 1,250 | ||
+ | 0,000 1,000 | ||
+ | 0,500 1,250 | ||
+ | 1,000 2,000 | ||
+ | 1,500 3,250 | ||
+ | 2,000 5,000 | ||
+ | </pre> | ||
Решение: | Решение: | ||
[[Практикум по программированию. Основы. Циклы. Табулирование функции#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. Табулирование функции#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. Табулирование функции#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. Табулирование функции#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. Табулирование функции#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. Табулирование функции#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. Табулирование функции#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. Табулирование функции#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. Табулирование функции#JavaScript|JavaScript]] | ||
Line 99: | Line 198: | ||
Высоты следующих прямоугольников: f(A + H), f(A + H + H), ... | Высоты следующих прямоугольников: f(A + H), f(A + H + H), ... | ||
Искомая площадь выражается суммой площадей всех прямоугольников. | Искомая площадь выражается суммой площадей всех прямоугольников. | ||
+ | | ||
+ | Пример интерфейса: | ||
+ | | ||
+ | Вычисление интеграла от функции X^2 | ||
+ | методом левых прямоугольников | ||
+ | ------------------------------------- | ||
+ | Введите границы интегрирования: 0 3 | ||
+ | Введите количество разбиений N: 1000 | ||
+ | ------------------------------------- | ||
+ | S = 8,959558 | ||
Решение: | Решение: | ||
[[Практикум по программированию. Основы. Циклы. Метод левых прямоугольников#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. Метод левых прямоугольников#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. Метод левых прямоугольников#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. Метод левых прямоугольников#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. Метод левых прямоугольников#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. Метод левых прямоугольников#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. Метод левых прямоугольников#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. Метод левых прямоугольников#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. Метод левых прямоугольников#JavaScript|JavaScript]] | ||
Line 112: | Line 222: | ||
Выбранный отрезок снова делим пополам. | Выбранный отрезок снова делим пополам. | ||
Продолжаем до тех пор, пока длина отрезка не будет меньше 2 * E. | Продолжаем до тех пор, пока длина отрезка не будет меньше 2 * E. | ||
+ | | ||
+ | Пример интерфейса: | ||
+ | | ||
+ | Поиск корня уравнения X^2 - 2 = 0 | ||
+ | на отрезке [A, B] с точностью E | ||
+ | методом деления отрезка пополам | ||
+ | ----------------------------------- | ||
+ | Введите границу поиска A: 0 | ||
+ | Введите границу поиска B: 2 | ||
+ | Введите точность поиска E: 0,00001 | ||
+ | ----------------------------------- | ||
+ | X = 1,414199829102 | ||
Решение: | Решение: | ||
[[Практикум по программированию. Основы. Циклы. Корень уравнения#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. Корень уравнения#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. Корень уравнения#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. Корень уравнения#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. Корень уравнения#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. Корень уравнения#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. Корень уравнения#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. Корень уравнения#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. Корень уравнения#JavaScript|JavaScript]] | ||
− | 11. Автомат отпускает максимум N единиц товара по Z рублей за одну единицу и выдает сдачу. У каждого покупателя S рублей. | + | 11. Автомат отпускает максимум N единиц товара по Z рублей за одну единицу и выдает сдачу. У каждого покупателя S рублей. Написать программу обслуживания очереди из K покупателей. |
− | Написать программу обслуживания очереди из K покупателей. | + | <pre> |
− | + | Пример интерфейса: | |
− | + | ||
− | + | ----------- М А Г А З И Н ----------- | |
− | - | + | Введите количество единиц товара: 10 |
+ | Введите стоимость одной единицы: 102,50 | ||
+ | Введите количество покупателей: 3 | ||
+ | ------------------------------------- | ||
+ | Сумма покупателя N1: 300 | ||
+ | Покупаем 2 единиц товара | ||
+ | Сдача: 95,00 руб. | ||
+ | У автомата остается 8 единиц товара | ||
+ | Сумма покупателя N2: 100 | ||
+ | Денег не хватит даже на одну единицу товара | ||
+ | Сумма покупателя N3: 1000 | ||
+ | Скупаем весь товар, при этом остается 180,00 руб | ||
+ | </pre> | ||
Решение: | Решение: | ||
[[Практикум по программированию. Основы. Циклы. Автомат-продавец#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. Автомат-продавец#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. Автомат-продавец#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. Автомат-продавец#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. Автомат-продавец#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. Автомат-продавец#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. Автомат-продавец#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. Автомат-продавец#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. Автомат-продавец#JavaScript|JavaScript]] | ||
Line 133: | Line 269: | ||
12. Необходимо собрать статистику о знаниях иностранных языков в группе из N человек. | 12. Необходимо собрать статистику о знаниях иностранных языков в группе из N человек. | ||
− | + | <pre> | |
− | 1 - если | + | Пример интерфейса: |
− | + | ||
− | + | Статистика изучающих иностранный язык | |
− | + | Тестируемые вводят одну из цифр: | |
+ | 1 - если изучали английский | ||
+ | 2 - если изучали немецкий | ||
+ | 3 - если изучали французский | ||
+ | 0 - если не изучал никакой | ||
+ | --------------------------------------- | ||
+ | Введите количество тестируемых: 10 | ||
+ | --------------------------------------- | ||
+ | Тестируемый N1: 3 | ||
+ | Тестируемый N2: 0 | ||
+ | Тестируемый N3: 1 | ||
+ | Тестируемый N4: 2 | ||
+ | Тестируемый N5: 1 | ||
+ | Тестируемый N6: 3 | ||
+ | Тестируемый N7: 1 | ||
+ | Тестируемый N8: 2 | ||
+ | Тестируемый N9: 1 | ||
+ | Тестируемый N10: 2 | ||
+ | --------------------------------------- | ||
+ | Английский язык - 4 | ||
+ | Немецкий язык - 3 | ||
+ | Французкий язык - 2 | ||
+ | Нет знаний языка - 1 | ||
+ | </pre> | ||
Решение: | Решение: | ||
[[Практикум по программированию. Основы. Циклы. Опрос группы#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. Опрос группы#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. Опрос группы#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. Опрос группы#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. Опрос группы#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. Опрос группы#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. Опрос группы#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. Опрос группы#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. Опрос группы#JavaScript|JavaScript]] | ||
− | 13. Детали цилиндрической формы определяются параметрами: H - высота, R - радиус основания, P - плотность материала. | + | 13. Детали цилиндрической формы определяются параметрами: H - высота, R - радиус основания, P - плотность материала. Пресс штампует детали, отличающиеся по высоте на 1 (H = 1 ... N, где N - высота самой длинной детали). Рассчитать массы деталей. |
− | Пресс штампует детали, отличающиеся по высоте на 1 (H = 1 ... N, где N - высота самой длинной детали). Рассчитать массы деталей. | + | |
V = H * Pi * R<sup>2</sup> | V = H * Pi * R<sup>2</sup> | ||
M = P * V | M = P * V | ||
+ | | ||
+ | Пример интерфейса: | ||
+ | | ||
+ | Рассчет массы деталей | ||
+ | ----------------------- | ||
+ | Плотность материала: 7,8 | ||
+ | Радиус основания: 2 | ||
+ | Предельная высота: 5 | ||
+ | ----------------------- | ||
+ | Деталь N1 имеет массу m = 98,02 | ||
+ | Деталь N2 имеет массу m = 196,04 | ||
+ | Деталь N3 имеет массу m = 294,05 | ||
+ | Деталь N4 имеет массу m = 392,07 | ||
+ | Деталь N5 имеет массу m = 490,09 | ||
Решение: | Решение: | ||
[[Практикум по программированию. Основы. Циклы. Расчет масс деталей#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. Расчет масс деталей#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. Расчет масс деталей#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. Расчет масс деталей#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. Расчет масс деталей#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. Расчет масс деталей#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. Расчет масс деталей#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. Расчет масс деталей#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. Расчет масс деталей#JavaScript|JavaScript]] | ||
Line 157: | Line 331: | ||
14. Определить все счастливые билеты с номерами от N до M. | 14. Определить все счастливые билеты с номерами от N до M. | ||
− | + | <pre> | |
− | + | В каждом билете необходимо выделить 6 цифр номера. | |
− | + | Билет счастливый, | |
+ | если сумма первых трех цифр равняется сумме последних трех цифр номера. | ||
+ | |||
+ | Пример интерфейса: | ||
+ | |||
+ | Поиск счастливых билетов | ||
+ | -------------------------- | ||
+ | Введите начальный номер: 123000 | ||
+ | Введите конечный номер: 123123 | ||
+ | ------- Счастливые ------- | ||
+ | 123006 | ||
+ | 123015 | ||
+ | 123024 | ||
+ | 123033 | ||
+ | 123042 | ||
+ | 123051 | ||
+ | 123060 | ||
+ | 123105 | ||
+ | 123114 | ||
+ | 123123 | ||
+ | </pre> | ||
Решение: | Решение: | ||
[[Практикум по программированию. Основы. Циклы. Счастливые билеты#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. Счастливые билеты#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. Счастливые билеты#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. Счастливые билеты#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. Счастливые билеты#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. Счастливые билеты#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. Счастливые билеты#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. Счастливые билеты#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. Счастливые билеты#JavaScript|JavaScript]] | ||
− | 15. Имеется серия измерений параметров треугольника, в которой (в произвольном порядке) встречаются различные комбинации параметров. | + | 15. Имеется серия измерений параметров треугольника, в которой (в произвольном порядке) встречаются различные комбинации параметров. Определить площадь треугольника по номеру комбинации. |
− | + | <pre> | |
− | 1 - | + | Пример интерфейса: |
− | 2 - | + | |
− | 3 - | + | Расчет площади треугольника: |
− | 0 - | + | 1 - по высоте и основанию |
+ | 2 - по двум сторонам и углу между ними | ||
+ | 3 - по трем сторонам | ||
+ | 0 - выход из программы | ||
+ | ------------------------------ | ||
+ | Введите номер измерения: 1 | ||
+ | Высота: 1 | ||
+ | Основание: 1 | ||
+ | ------------------------------ | ||
+ | S = 0,50 | ||
+ | ------------------------------ | ||
+ | Введите номер измерения: 2 | ||
+ | Сторона A: 1 | ||
+ | Сторона B: 1 | ||
+ | Угол между A и B: 90 | ||
+ | ------------------------------ | ||
+ | S = 0,50 | ||
+ | ------------------------------ | ||
+ | Введите номер измерения: 3 | ||
+ | Сторона A: 1 | ||
+ | Сторона B: 1 | ||
+ | Сторона C: 1 | ||
+ | ------------------------------ | ||
+ | S = 0,43 | ||
+ | ------------------------------ | ||
+ | Введите номер измерения: 0 | ||
+ | </pre> | ||
Решение: | Решение: | ||
[[Практикум по программированию. Основы. Циклы. Площадь треугольника#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. Площадь треугольника#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. Площадь треугольника#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. Площадь треугольника#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. Площадь треугольника#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. Площадь треугольника#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. Площадь треугольника#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. Площадь треугольника#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. Площадь треугольника#JavaScript|JavaScript]] | ||
Line 197: | Line 419: | ||
[[Практикум по программированию. Основы. Циклы. Совершенные числа#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. Совершенные числа#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. Совершенные числа#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. Совершенные числа#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. Совершенные числа#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. Совершенные числа#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. Совершенные числа#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. Совершенные числа#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. Совершенные числа#JavaScript|JavaScript]] | ||
Line 240: | Line 463: | ||
[[Практикум по программированию. Основы. Циклы. Игра в 100#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. Игра в 100#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. Игра в 100#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. Игра в 100#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. Игра в 100#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. Игра в 100#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. Игра в 100#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. Игра в 100#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. Игра в 100#JavaScript|JavaScript]] | ||
Line 258: | Line 482: | ||
[[Практикум по программированию. Основы. Циклы. Поиск двузначных чисел#Java|Java]] · | [[Практикум по программированию. Основы. Циклы. Поиск двузначных чисел#Java|Java]] · | ||
[[Практикум по программированию. Основы. Циклы. Поиск двузначных чисел#C++|C++]] · | [[Практикум по программированию. Основы. Циклы. Поиск двузначных чисел#C++|C++]] · | ||
+ | [[Практикум по программированию. Основы. Циклы. Поиск двузначных чисел#Python|Python]] · | ||
[[Практикум по программированию. Основы. Циклы. Поиск двузначных чисел#Pascal|Pascal]] · | [[Практикум по программированию. Основы. Циклы. Поиск двузначных чисел#Pascal|Pascal]] · | ||
[[Практикум по программированию. Основы. Циклы. Поиск двузначных чисел#JavaScript|JavaScript]] | [[Практикум по программированию. Основы. Циклы. Поиск двузначных чисел#JavaScript|JavaScript]] |
Latest revision as of 08:41, 21 November 2017
Назад · Оглавление · Дальше
[edit] Циклы
1. Задан ряд чисел от 1 до N. Найти сумму квадратов этих чисел.
12 + 22 + 32 + ... + N2 Пример интерфейса: Сумма квадратов чисел от 1 до N --------------------------------- Введите N: 123 --------------------------------- S = 627874
Решение: Java · C++ · Python · Pascal · JavaScript
2. Вычислить факториал натурального числа N.
6! = 1 * 2 * 3 * 4 * 5 * 6 = 720 Пример интерфейса: Расчет факториала ------------------- Введите число: 10 ------------------- 10! = 3628800
Решение: Java · C++ · Python · Pascal · JavaScript
3. Дано число X и последовательность: 1, 1 + 1/2, 1 + 1/2 + 1/3, ...
Найти в этой последовательности первое число Y > X.
Первое число в последовательности Y = 1 далее, переходим к следующему Y = Y + 1 / i пока не выполнится условие Y > X Пример интерфейса: Поиск элементов ряда: 1, 1 + 1/2, 1 + 1/2 + 1/3 ... ------------------------------- Введите границу поиска: 3 ------------------------------- Y = 3,019877344877
Решение: Java · C++ · Python · Pascal · JavaScript
4. Написать программу возведения вещественного числа в степень с натуральным показателем.
AN, где A - вещественное; N - натуральное Необходимо N - раз выполнить умножение A * A * A ... Пример интерфейса: Вычисление степени с натуральным показателем A^N -------------------------------------------------- Введите основание степени A: 2,5 Введите показатель степени N: 8 -------------------------------------------------- A^N = 1525,88
Решение: Java · C++ · Python · Pascal · JavaScript
5. Найти число Фибоначчи с заданным номером.
В 1202 году, рассматривая задачу о размножении кроликов, Леонардо Фибоначчи получил последовательность чисел, в которой каждое число есть сумма двух предыдущих: 1, 1, 2, 3, 5, 8, ... Пример интерфейса: Поиск числа Фибоначчи с заданным номером N -------------------------------------------- Введите номер числа N: 10 -------------------------------------------- F(10) = 55,00
Решение: Java · C++ · Python · Pascal · JavaScript
6. Определить, является ли заданное натуральное число N простым.
Простые числа делятся только на единицу и на себя. Сравните два алгоритма: - деление на все числа от 2 до N - 1; - деление на все числа от 2 до N / 2 Пример интерфейса: Поиск простых чисел --------------------- Введите число: 127 --------------------- Число 127 - простое
Решение: Java · C++ · Python · Pascal · JavaScript
7. Найти наибольший общий делитель (НОД) и наименьшее общее кратное (НОК) двух натуральных чисел.
Поиск НОД: 1 - если числа равны, взять любое из них в качестве ответа; 2 - определить большее из чисел; 3 - заменить большее число разностью большего и меньшего; 4 – перейти к пункту 1. НОК двух натуральных чисел равно произведению этих чисел, деленному на их НОД Пример интерфейса: Наибольший общий делитель (НОД) и наименьшее общее кратное (НОК) двух натуральных чисел ---------------------------------- Введите два натуральных числа: 28 42 ---------------------------------- НОД(28, 42) = 14 НОК(28, 42) = 84
Решение: Java · C++ · Python · Pascal · JavaScript
8. Табулирование функции Y = X2 + 1 на отрезке [A, B] с шагом H.
Необходимо вывести на экран таблицу значений функции на заданном отрезке. Пример интерфейса: Табулирование функции Y = X^2 + 1 на отрезке [A, B] с шагом H ----------------------------------- Введите границы отрезка A и B: -2 2 Введите шаг табулирования H: 0,5 ----------------------------------- X Y -2,000 5,000 -1,500 3,250 -1,000 2,000 -0,500 1,250 0,000 1,000 0,500 1,250 1,000 2,000 1,500 3,250 2,000 5,000
Решение: Java · C++ · Python · Pascal · JavaScript
9. Вычислить площадь фигуры под графиком функции Y = X2 на отрезке [A, B] методом левых прямоугольников.
Фигура разбивается на множество прямоугольников. Основания у всех прямоугольников равны: H = (B - A) / N, где N - количество разбиений (например 10000) Высота первого прямоугольника: f(A) = A2 Высоты следующих прямоугольников: f(A + H), f(A + H + H), ... Искомая площадь выражается суммой площадей всех прямоугольников. Пример интерфейса: Вычисление интеграла от функции X^2 методом левых прямоугольников ------------------------------------- Введите границы интегрирования: 0 3 Введите количество разбиений N: 1000 ------------------------------------- S = 8,959558
Решение: Java · C++ · Python · Pascal · JavaScript
10. Методом деления отрезка пополам, найти корень уравнения X2 - 2 = 0 на отрезке [A, B] с точностью E.
Сначала полагаем, что корень – это середина отрезка [A, B]. Затем выбираем тот из отрезков [A, X] или [X, B], на концах которого функция X2 - 2 имеет противоположные знаки. Выбранный отрезок снова делим пополам. Продолжаем до тех пор, пока длина отрезка не будет меньше 2 * E. Пример интерфейса: Поиск корня уравнения X^2 - 2 = 0 на отрезке [A, B] с точностью E методом деления отрезка пополам ----------------------------------- Введите границу поиска A: 0 Введите границу поиска B: 2 Введите точность поиска E: 0,00001 ----------------------------------- X = 1,414199829102
Решение: Java · C++ · Python · Pascal · JavaScript
11. Автомат отпускает максимум N единиц товара по Z рублей за одну единицу и выдает сдачу. У каждого покупателя S рублей. Написать программу обслуживания очереди из K покупателей.
Пример интерфейса: ----------- М А Г А З И Н ----------- Введите количество единиц товара: 10 Введите стоимость одной единицы: 102,50 Введите количество покупателей: 3 ------------------------------------- Сумма покупателя N1: 300 Покупаем 2 единиц товара Сдача: 95,00 руб. У автомата остается 8 единиц товара Сумма покупателя N2: 100 Денег не хватит даже на одну единицу товара Сумма покупателя N3: 1000 Скупаем весь товар, при этом остается 180,00 руб
Решение: Java · C++ · Python · Pascal · JavaScript
12. Необходимо собрать статистику о знаниях иностранных языков в группе из N человек.
Пример интерфейса: Статистика изучающих иностранный язык Тестируемые вводят одну из цифр: 1 - если изучали английский 2 - если изучали немецкий 3 - если изучали французский 0 - если не изучал никакой --------------------------------------- Введите количество тестируемых: 10 --------------------------------------- Тестируемый N1: 3 Тестируемый N2: 0 Тестируемый N3: 1 Тестируемый N4: 2 Тестируемый N5: 1 Тестируемый N6: 3 Тестируемый N7: 1 Тестируемый N8: 2 Тестируемый N9: 1 Тестируемый N10: 2 --------------------------------------- Английский язык - 4 Немецкий язык - 3 Французкий язык - 2 Нет знаний языка - 1
Решение: Java · C++ · Python · Pascal · JavaScript
13. Детали цилиндрической формы определяются параметрами: H - высота, R - радиус основания, P - плотность материала. Пресс штампует детали, отличающиеся по высоте на 1 (H = 1 ... N, где N - высота самой длинной детали). Рассчитать массы деталей.
V = H * Pi * R2 M = P * V Пример интерфейса: Рассчет массы деталей ----------------------- Плотность материала: 7,8 Радиус основания: 2 Предельная высота: 5 ----------------------- Деталь N1 имеет массу m = 98,02 Деталь N2 имеет массу m = 196,04 Деталь N3 имеет массу m = 294,05 Деталь N4 имеет массу m = 392,07 Деталь N5 имеет массу m = 490,09
Решение: Java · C++ · Python · Pascal · JavaScript
14. Определить все счастливые билеты с номерами от N до M.
В каждом билете необходимо выделить 6 цифр номера. Билет счастливый, если сумма первых трех цифр равняется сумме последних трех цифр номера. Пример интерфейса: Поиск счастливых билетов -------------------------- Введите начальный номер: 123000 Введите конечный номер: 123123 ------- Счастливые ------- 123006 123015 123024 123033 123042 123051 123060 123105 123114 123123
Решение: Java · C++ · Python · Pascal · JavaScript
15. Имеется серия измерений параметров треугольника, в которой (в произвольном порядке) встречаются различные комбинации параметров. Определить площадь треугольника по номеру комбинации.
Пример интерфейса: Расчет площади треугольника: 1 - по высоте и основанию 2 - по двум сторонам и углу между ними 3 - по трем сторонам 0 - выход из программы ------------------------------ Введите номер измерения: 1 Высота: 1 Основание: 1 ------------------------------ S = 0,50 ------------------------------ Введите номер измерения: 2 Сторона A: 1 Сторона B: 1 Угол между A и B: 90 ------------------------------ S = 0,50 ------------------------------ Введите номер измерения: 3 Сторона A: 1 Сторона B: 1 Сторона C: 1 ------------------------------ S = 0,43 ------------------------------ Введите номер измерения: 0
Решение: Java · C++ · Python · Pascal · JavaScript
16. Найти все совершенные числа до заданной границы поиска.
Натуральное число называется совершенным, если оно равно сумме всех своих делителей, не считая его самого. Например: 6 = 1 + 2 + 3 - совершенное число Пример интерфейса: Поиск совершенных чисел ------------------------- Введите границу поиска: 10000 ------------------------- Совершенные числа: 6 28 496 8128
Решение: Java · C++ · Python · Pascal · JavaScript
17. Человек и компьютер по очереди называют числа от 1 до 10, которые складываются одно за другим. Выигрывает тот, кто первым достигнет 100. Составить алгоритм, выигрышный для машины.
Пусть первым играет человек и называет число X. Чтобы машина выиграла ей надо: - назвать число Y = 12 - X - на следующих шагах называть числа Y = 11 - X Пример интерфейса: ---------------------- И Г Р А ---------------------- Вы и компьютер по очереди называете числа: 1 ... 10 Числа складываются. Кто первым достигнет 100, тот выиграл. Ваш ход - первый. ----------------------------------------------------- Ваш ход: 5 Компьютер: 7 Сумма: 12 Ваш ход: 8 Компьютер: 3 Сумма: 23 Ваш ход: 9 Компьютер: 2 Сумма: 34 Ваш ход: 4 Компьютер: 7 Сумма: 45 Ваш ход: 1 Компьютер: 10 Сумма: 56 Ваш ход: 6 Компьютер: 5 Сумма: 67 Ваш ход: 9 Компьютер: 2 Сумма: 78 Ваш ход: 7 Компьютер: 4 Сумма: 89 Ваш ход: 2 Компьютер: 9 Сумма: 100 ----------------------------------------------------- Выиграл компьютер!
Решение: Java · C++ · Python · Pascal · JavaScript
18. Найти все двузначные числа, сумма квадратов цифр которых делится на 13.
Любое двузначное число A можно представить в виде A = N * 10 + M, где N - количество десятков, M - количество единиц. Если S = N2 + M2 делится на 13 без остатка, значит это искомое число. Пример интерфейса: Поиск всех двузначных чисел, сумма квадратов цифр которых делится на 13 -------------------------------------------- 15 18 23 32 46 47 51 64 69 74 79 81 96 97
Решение: Java · C++ · Python · Pascal · JavaScript
Назад · Оглавление · Дальше