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

From AsIsWiki
Jump to: navigation, search

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


Циклы

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