Изучение языка программирования Python


Read (n)  K = 0  While



Pdf көрінісі
бет6/14
Дата04.03.2023
өлшемі1,23 Mb.
#171016
1   2   3   4   5   6   7   8   9   ...   14
Байланысты:
python

Read
(n) 
K = 0 
While 
(n <> 0) 
if 
(n mod 10 mod 2 = 1) 
K = K + 1 
n = n div 10 
Write 
(K)
Read 
(n) 
K = 0 
Do 
if 
(n mod 10 mod 2 = 1) 
K = K + 1 
n = n div 10 
While 
(n <> 0) 
Write 
(K)
 
Реализация на Python: 
Проверка: 
n=int(input()) 
k=0 
while n != 0: 
if n % 10 % 2 == 1: 
k = k + 1 
n = n // 10 
print (k)
>>> 0 

>>> 105 

Замечание:
Конструкции do…while на языке Python нет. 
Задача: 
Используя 
предлагаемые 
записи 
алгоритма, напишите программу нахождения первых k 
чисел, кратных трем.
 
Read
(k) 
P = 1 {здесь накапливаем произведение} 
For 
I = 1 
to 
k/3 
P = P * I * 3 
Write
(P) 
Реализация на Python: 
Проверка: 
k = int(input()) 
p = 1 
for i in range(3,k+1,3): 
p = p * i 
print (p) 
>>> 2 
18 
>>> 3 
162 
Замечание: 
Функция 
range(A,B,C)
возвращает упорядоченную 
последовательность элементов начиная с 
А
до 
В
, не включая 
В
, с периодом 
С
.


14
Если период отсутствует, то 
С
принимается за 
1(п
ериод без начального 
элемента не задается). Если отсутствует начальный элемент, то за 
А
принимается 
0

Пример: 
>>> range(2,7,3) 


>>> range(3,6) 



>>> range(3) 



Задача:
 
Напишите программу решения следующей задачи. 
Лотерейный номер состоит из трех чисел, каждое из которых может быть 
от 0 до 99 включительно. Определите шанс угадать выигрышный лотерейный 
номер. 
Идея решения. Надо вычислить количество перестановок для заданного 
числа объектов (3), которые выбираются из общего числа объектов (100). 
Перестановка – это любое множество объектов, в котором внутренний порядок 
имеет значение. Формула для определения перестановок имеет следующий вид:
 
Следовательно, надо написать функцию, вычисляющую факториал 
некоторого числа
(
)
и вычислить количество 
перестановок. 
Реализация на Python: 
n = 100 
k = 3 
f1 = 1 
f2 = 1 
for i in range(1,n+1): 
f1 = f1 * i 
for j in range(1,n+1-k): 
f2 = f2 * j 
print ('Количество перестановок: ', f1/f2) 
print ('Шанс угадать выигрышный лотерейный билет: ', 1/(f1/f2))
Проверка: 


15
Количество перестановок: 970200.0 . 
Шанс угадать выигрышный лотерейный билет: 1.0307153164296022e-06
Замечание: 
1.0307153164296022e-06 
– экспоненциальная форма записи числа: 
Решение задач из учебника §17. 
Задача: 
Напишите 
программу 
заполнения 
массива 
X(N) 
положительными и отрицательными элементами. Из него требуется 
сформировать новый массив только из положительных элементов. Найти из 
них наибольший элемент. Распечатать новый массив и наибольший элемент.
 
Реализация на Python: 
X = [] 
a = int(input('Введите длину предполагаемого массива: ')) 
for i in range(a): 
b = int(input('Введите элемент массива: ')) 
X.append(b) 
print('Ваш массив: ',X) 
X_2 = [] 
m = 0 
for j in range(a): 
if X[j] > m: 
m = X[j] 
if X[j] > 0: 
X_2.append(X[j]) 
print('Новый массив, состоящий из положительных элементов:', X_2) 
print ('Наибольший элемент массива:', m)
Проверка: 
Введите длину предполагаемого массива: 5 
Введите элемент массива: 5 
Введите элемент массива: 4 
Введите элемент массива: -2 
Введите элемент массива: 6 
Введите элемент массива: -2 
Ваш массив: [5, 4, -2, 6, -2] 
Новый массив, состоящий из положительных элементов:[5, 4, 6] 
Наибольший элемент массива:6


16


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   14




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет