![]() |
Практика программирования.Date: 2015-10-07; view: 366. 4.1 Задачи обработки целых чисел. Целый класс задач посвящен обработке целых чисел. В этом пункте приводятся некоторые из них. 1. Определение четности. Требуется определить, является заданное целое число N четным или нечетным. Для решения задачи необходимо проверить: если N четное, то оно кратно двум и значение N/2 совпадает со значением INT(N/2) – целой частью. INPUT"Введите целое число N=";N LET S$="нечетное" IF N/2=INT(N/2) THEN S$="четное" ? "Число";N;S$
2. Нахождение делителей числа. Требуется найти и напечатать все делители числа N, включая 1. Число А является делителем числа В, если В делится на А нацело. Будем проверять являются ли делителем числа N числа начиная с 1 до N/2. Проверку, является ли число I делителем будем производить в цикле. Условием будет равенство N/I=INT(N/I). INPUT"Введите целое число N=";N C=INT(N/2) ?"Делители числа";N FOR I=1 TO C IF N/I<>INT(N/I) THEN 10 ? I; 10 NEXT I ?N 3. Нахождение простых чисел. Каждое натуральное число можно получить в виде суммы единиц. Совсем иначе дело обстоит с умножением. Здесь не только не существует числа, произведение которого на себя дало бы все остальные числа, но, что гораздо хуже, существует бесконечно много чисел, которые невозможно представить в виде произведения без своего собственного участия. Такие числа принято называть простыми. Определение простых чисел в курсе математики формулируется следующим образом: простым числом называется натуральное число, которое не имеет делителей, отличных от себя и от единицы. Число 1 не принято считать простым, так как оно ничего не дает в образовании новых чисел множительным путем. Требуется найти все простые числа от 2 до N и напечатать их. Проверяем каждое значение на отсутствие делителей перебором чисел от 2 до N-1. Условие делимости нацело N/D=INT(N/D) 5 CLS INPUT"Введите интервал для от 2 до:";K IF K<=2 THEN 5 ?"Простые числа " N=2 7 FOR D=2 TO N-1 IF N/D=INT(N/D) THEN 10 NEXT D ?N N=N+1 10 IF N<K THEN 7 4. Вычисление степени числа 2. Требуется составить программу, печатающую числа 2n: N=N+1; X=2^N. Однако такой способ не рационален. Вычислим первые 6 значений: 21=2 22=2*2=4 23=4*2=8 24=8*2=16 25=16*2=32 26=32*2=64 Вместо того чтобы каждый раз перемножать N двоек, лучше один раз умножить на 2 предыдущее значение 2n=2*2n-1 . То же самое можно выразить соотношением Un=2*Un-1, где U1=2. Такой способ задания числовых последовательностей, когда следующие элементы определяются через значения предыдущих, называется возвратным или рекуррентным. Если N будет пробегать натуральный ряд (N=N+1), то каждый раз удваивая Х (Х=Х+Х) получим таблицу квадратов. CLS LET X=1 2 N=N+1 X=X+X ? N,X IF N<21 THEN 2 5. Прогрессии. В математике рекуррентными последовательностями называются последовательности вида: Un=a1*Un-1+a2*Un-2+…+ak*Un-k, где а1,а2,…,аk – некоторые постоянные. Число k определяет, сколько предыдущих элементов участвуют в образовании очередного, поэтому k называют степенью рекурсивности. Простейшим примером рекуррентных последовательностей являются арифметическая и геометрическая прогрессии. - арифметическая: аn=аn-1+b, a1=a; - геометрическая: an=an-1*b, a1=a. Требуется составить программу печатающую арифметическую прогрессию с начальным элементом А и разностью В: А, А+В, А+2*В, А+3*В,…,А+N*В. Исходные данные А и В. Обозначим за N=N+1 номер очередного элемента последовательности. CLS INPUT A,B 5 N=N+1 ? N,A A=A+B IF N<21 THEN 5
Задания для самостоятельной работы. 1. Для натурального числа N определить кратно ли оно 3. 2. Для натуральных чисел N и M определить, являются ли они взаимно простыми (то есть не имеют общих делителей кроме 1). 3. Составить программу печатающую геометрическую прогрессию.
|