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

From AsIsWiki
Revision as of 11:49, 21 March 2016 by Alex (Talk | contribs)

Jump to: navigation, search

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


Циклы

1. Задан ряд чисел от 1 до N. Найти сумму квадратов этих чисел.

12 + 22 + 32 + ... + N2
 
Пример интерфейса:
 
 Сумма квадратов чисел от 1 до N
---------------------------------
 Введите N: 123
---------------------------------
 S = 627874

Решение: Java · C++ · Pascal · JavaScript


2. Вычислить факториал натурального числа N.

Например: 6! = 1 * 2 * 3 * 4 * 5 * 6 = 720

Пример интерфейса:

 Расчет факториала
-------------------
 Введите число: 10
-------------------
 10! = 3628800

Решение: Java · C++ · 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++ · Pascal · JavaScript


4. Написать программу возведения вещественного числа в степень с натуральным показателем.

AN, где A - вещественное; N - натуральное
Например: 3.58
Необходимо N - раз выполнить умножение A * A * A ...

Решение: Java · C++ · Pascal · JavaScript


5. Найти число Фибоначчи с заданным номером.

В 1202 году, рассматривая задачу о размножении кроликов,
Леонардо Фибоначчи получил последовательность чисел,
в которой каждое число есть сумма двух предыдущих: 1, 1, 2, 3, 5, 8, ... 

Решение: Java · C++ · Pascal · JavaScript


6. Определить, является ли заданное натуральное число N простым.

Простые числа делятся только на единицу и на себя.
Сравните два алгоритма:
- деление на все числа от 2 до N - 1;
- деление на нечетные числа 3, 5, 7, ... N / 2

Решение: Java · C++ · Pascal · JavaScript


7. Найти наибольший общий делитель (НОД) и наименьшее общее кратное (НОК) двух натуральных чисел.

Поиск НОД:
 1 - если числа равны, взять любое из них в качестве ответа;
 2 - определить большее из чисел;
 3 - заменить большее число разностью большего и меньшего;
 4 – перейти к пункту 1.
НОК двух натуральных чисел равно произведению этих чисел, деленному на их НОД

Решение: Java · C++ · Pascal · JavaScript


8. Табулирование функции Y = X2 + 1 на отрезке [A, B] с шагом H.

Необходимо вывести на экран таблицу значений функции на заданном отрезке.

Решение: Java · C++ · Pascal · JavaScript


9. Вычислить площадь фигуры под графиком функции Y = X2 на отрезке [A, B] методом левых прямоугольников.

Фигура разбивается на множество прямоугольников.
Основания у всех прямоугольников равны: H = (B - A) / N,
где N - количество разбиений (например 10000)
Высота первого прямоугольника: f(A) = A2
Высоты следующих прямоугольников: f(A + H), f(A + H + H), ...
Искомая площадь выражается суммой площадей всех прямоугольников.

Решение: Java · C++ · Pascal · JavaScript


10. Методом деления отрезка пополам, найти корень уравнения X2 - 2 = 0 на отрезке [A, B] с точностью E.

Сначала полагаем, что корень – это середина отрезка [A, B].
Затем выбираем тот из отрезков [A, X] или [X, B],
на концах которого функция X2 - 2 имеет противоположные знаки.
Выбранный отрезок снова делим пополам. 
Продолжаем до тех пор, пока длина отрезка не будет меньше 2 * E.

Решение: Java · C++ · Pascal · JavaScript


11. Автомат отпускает максимум N единиц товара по Z рублей за одну единицу и выдает сдачу. У каждого покупателя S рублей.
Написать программу обслуживания очереди из K покупателей.

После обслуживания каждого покупателя, автомат должен сообщать:
- количество купленных единиц товара;
- сдача;
- сколько единиц товара осталось.

Решение: Java · C++ · Pascal · JavaScript


12. Необходимо собрать статистику о знаниях иностранных языков в группе из N человек.

Каждый человек вводит:
1 - если он изучал английский язык;
2 - немецкий;
3 - французский;
0 - если не изучал никакой.

Решение: Java · C++ · Pascal · JavaScript


13. Детали цилиндрической формы определяются параметрами: H - высота, R - радиус основания, P - плотность материала.
Пресс штампует детали, отличающиеся по высоте на 1 (H = 1 ... N, где N - высота самой длинной детали). Рассчитать массы деталей.

V = H * Pi * R2
M = P * V

Решение: Java · C++ · Pascal · JavaScript


14. Определить все счастливые билеты с номерами от N до M.

В каждом билете необходимо выделить 6 цифр номера.
Билет счастливый, 
если сумма первых трех цифр равняется сумме последних трех цифр номера.

Решение: Java · C++ · Pascal · JavaScript


15. Имеется серия измерений параметров треугольника, в которой (в произвольном порядке) встречаются различные комбинации параметров.
Определить площадь треугольника по номеру комбинации.

Номера комбинаций параметров:
1 - основание и высота;
2 - две стороны и угол между ними;
3 - три стороны;
0 - прекратить обработку.

Решение: Java · C++ · Pascal · JavaScript


16. Найти все совершенные числа до заданной границы поиска.

Натуральное число называется совершенным, 
если оно равно сумме всех своих делителей, не считая его самого.
Например: 6 = 1 + 2 + 3 - совершенное число

Пример интерфейса:

 Поиск совершенных чисел
-------------------------
 Введите границу поиска: 10000
-------------------------
 Совершенные числа: 6 28 496 8128 

Решение: Java · C++ · 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++ · 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++ · Pascal · JavaScript



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

Personal tools
Namespaces

Variants
Actions
Navigation
Tools