Практикум по программированию. Основы. Циклы

From AsIsWiki
(Difference between revisions)
Jump to: navigation, search
 
(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>
 +
&nbsp;
 +
Пример интерфейса:
 +
&nbsp;
 +
  Сумма квадратов чисел от 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.
Например: 6! = 1 * 2 * 3 * 4 * 5 * 6 = 720
+
<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.
Первое число в последовательности Y = 1
+
<pre>
далее, переходим к следующему Y = Y + 1 / i пока не выполнится условие Y > X
+
Первое число в последовательности 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 - натуральное
Например: 3.5<sup>8</sup>
 
 
  Необходимо N - раз выполнить умножение A * A * A ...
 
  Необходимо N - раз выполнить умножение A * A * A ...
 +
&nbsp;
 +
Пример интерфейса:
 +
&nbsp;
 +
  Вычисление степени с натуральным показателем 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. Найти число Фибоначчи с заданным номером.
В 1202 году, рассматривая задачу о размножении кроликов,
+
<pre>
Леонардо Фибоначчи получил последовательность чисел,
+
В 1202 году, рассматривая задачу о размножении кроликов,
в которой каждое число есть сумма двух предыдущих: 1, 1, 2, 3, 5, 8, ...  
+
Леонардо Фибоначчи получил последовательность чисел,
 +
в которой каждое число есть сумма двух предыдущих: 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;
+
Сравните два алгоритма:
- деление на нечетные числа 3, 5, 7, ... N / 2
+
- деление на все числа от 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 - определить большее из чисел;
+
1 - если числа равны, взять любое из них в качестве ответа;
  3 - заменить большее число разностью большего и меньшего;
+
2 - определить большее из чисел;
  4 – перейти к пункту 1.
+
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), ...
 
  Искомая площадь выражается суммой площадей всех прямоугольников.
 
  Искомая площадь выражается суммой площадей всех прямоугольников.
 +
&nbsp;
 +
Пример интерфейса:
 +
&nbsp;
 +
  Вычисление интеграла от функции 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.
 +
&nbsp;
 +
Пример интерфейса:
 +
&nbsp;
 +
  Поиск корня уравнения 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 рублей.<br>
+
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 - если он изучал английский язык;
+
Пример интерфейса:
2 - немецкий;
+
 
3 - французский;
+
  Статистика изучающих иностранный язык
0 - если не изучал никакой.
+
  Тестируемые вводят одну из цифр:
 +
    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 - плотность материала.<br>
+
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
 +
&nbsp;
 +
Пример интерфейса:
 +
&nbsp;
 +
  Рассчет массы деталей
 +
-----------------------
 +
  Плотность материала: 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.
В каждом билете необходимо выделить 6 цифр номера.
+
<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. Имеется серия измерений параметров треугольника, в которой (в произвольном порядке) встречаются различные комбинации параметров.<br> Определить площадь треугольника по номеру комбинации.
+
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



Назад · Оглавление · Дальше

Personal tools
Namespaces

Variants
Actions
Navigation
Tools