Основные алгоритмы в помощь школьнику. Часть 1

Рассмотрим набор наиболее часто встречающихся задач на программирование в школьном курсе информатики. Добавляйте свои задачи в комментариях. Они будут добавлены к разбору в следующих выпусках.

Нахождение максимума среди n вводимых чисел (n > 0). Вводимые числа находятся в диапазоне [0, 30000]

# число вводимых чисел
n = int(input())
# в качестве максимального возьмем минимальное
# из возможных чисел - 0. Если пользователь введет хотя бы одно число
# оно окажется больше или равно 0
max = 0
for i in range(n):
    #вводим число для проверки на максимум
    a = int(input())
    if a > max:
        max = a
# выводим максимальное из введенных чисел на экран
print(max)

Нахождение максимума среди n вводимых чисел (n>0). Диапазон вводимых чисел неизвестен

# число вводимых чисел
n = int(input())
# в качестве максимального возьмем первое введенное число
max = int(input())
# в цикле будет вводиться на 1 число меньше
for i in range(n-1):
    #вводим число для проверки на максимум
    a = int(input())
    if a > max:
        max = a
# выводим максимальное из введенных чисел на экран
print(max)

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

list = [12, -4, 6, -303, 465, 46, 866, 111]
ln = len(list)
#в качестве максимального берем первый элемент списка
max = list[0]
#сравниваем с максимумом элементы, начиная со второго
for i in range(1, ln):
    if list[i] > max:
        max = list[i]
#выводим максимальный элемент на экран
print(max)

Найти сумму цифр в числе

n = int(input())
s = 0
while n > 0:
    a = n % 10 #последняя цифра числа
    s = s + a #добавляем последнюю цифру к сумме
    n = n // 10 # удаляем последнюю цифру
print(s)

В диапазоне чисел от 1 до 100 найти среднее арифметическое чисел, кратных 3 и оканчивающихcя на 2

n = 0 #количество цифр
s = 0 # сумма цифр
for i in range(1, 101):
    # проверяем числа на условия
    if i % 3 == 0 and i % 10 == 2:
        s = s + i #сумма
        n = n + 1 #количество
print(s/n)

Напишите программу, которая заполняет массив из N элементов степенями числа 2, начиная с  1 до  N, в обратном порядке.

n = int(input())
list = []
for i in range(n + 1):
    list.append(2 **(n - i))
print(list)

В списке из 50 случайных чисел найти сумму случайных трех элементов

import  random
#список 50 случайных чисел в диапазоне 0..100
l = [random.randint(0, 100) for i in range(50)]
print(l)
# начальное значение суммы
s = 0
for i in range(3):
    # случайное число от 0 до 49 - случайный индекс списка
    a = random.randint(0, 49)
    #выводим номер элемента и сам элемент
    print(a, l[a])
    #суммируем
    s = s + l[a]
# выводим сумму
print(s)
Andrey K

Recent Posts

Решение задачи №6 и задачи №22 ЕГЭ по информатике 2021

Настала пора написать серию мини-обучалок по решению задач ЕГЭ по информатике версии 2021 года. В…

4 года ago

Внеурочное занятие по информатике. Пишем игру «Поле чудес» на Python.

Данная статья будет полезна для учителей информатики, которые занимаются программированием с детьми внеурочно. Опыт  показывает, …

4 года ago

Школьный тур Всероссийской олимпиады школьников по информатике 9-11 класс (2018-2019). Разбор задач. Часть 2

В прошлый раз мы разобрали первые две задачи школьного тура Всероссийской олимпиады школьников, проводимой в…

6 лет ago

Школьный тур Всероссийской олимпиады школьников по информатике 9-11 класс (2018-2019). Разбор задач. Часть 1

Закончился школьный тур Всероссийской олимпиады школьников. Разберем первую и вторую задачи тура, проводимого в московских…

6 лет ago

Школьный этап Всероссийской олимпиады школьников по информатике 2017 (9-11 классы). Задача №4. «Плацкартный вагон»

Задача. В плацкартном вагоне 54 места, пронумерованных числами от 1 до 54. Вагон разбит на 9…

7 лет ago

Школьный этап Всероссийской олимпиады школьников по информатике 2017 (9-11 классы). Задача №3. «Не про спиннеры»

Вот и закончился школьный тур Всероссийской олимпиады школьников. Как мне показалось, задания были несколько сложнее,…

7 лет ago