3.5–3.6. Практические задания
Информатика, 6 класс. Учебник: Кадыркулов Р. А., Нурмуханбетова Г. К. (Алматыкітап баспасы, 2023). Раздел 3: Программирование на языке Python. Страницы 90–92.
Чему научишься
- Применять всё, что узнал в разделе: переменные,
input(), арифметику, типы данных. - Менять значения двух переменных местами.
- Доставать нужные цифры из многозначного числа с помощью
//и%. - Переводить единицы измерения (кг, тонны, центнеры) и считать среднее.
- Рисовать простые фигуры из символов на экране.
Разминка
- Какие повседневные действия можно описать линейным алгоритмом? Например: умыться, одеться, собрать рюкзак. Шаги идут по порядку, и ничего не повторяется.
- Как связаны типы данных в программировании и числовая ось в математике? На оси есть натуральные, целые, дробные числа. В Python им соответствуют типы
intиfloat. - Какие инструменты у нас есть? Переменные,
input()иint(input()),print(), действия+ - * /, а ещё//и%, функцииabs(),int(),round().
Разбираемся
Набор инструментов: как достать цифры из числа
Почти во всех задачах про числа нужна одна идея: // отрезает хвост, а % оставляет хвост.
💡 Чтобы разделить число на левую и правую части, например 12145 на 12 и 145, нужны
// 1000(левая часть) и% 1000(правая часть). У числа 1000 столько нулей, сколько цифр в правой части.
Как поменять местами две переменные
Представь два стакана: в одном сок, в другом вода. Чтобы их поменять, нужен третий пустой стакан. В программе третьим стаканом будет временная переменная.
⚠️ Частая ошибка. Если написать подряд
a = bиb = a, оба станут равны 50, потому что старое значение a уже стёрто. Поэтому и нужен «третий стакан».
Единицы измерения и целое деление
Задачи на единицы решаются как перевод секунд в часы и минуты. 1 тонна = 1000 кг, 1 центнер = 100 кг. Берём целое деление для крупной единицы, а остаток отдаём в мелкую.
Рисуем символами
Команда print() печатает строку. Если напечатать несколько строк подряд, получится картинка из символов. Пробелы в начале строки сдвигают рисунок вправо. Для начала напишем по одному print на каждую строку.
Проверь себя
- Какое действие даёт последнюю цифру числа? Остаток от деления на 10:
N % 10. - Как поменять местами значения двух переменных? Через временную переменную:
tmp = a; a = b; b = tmp. - Что делает
//? Целое деление, оно отбрасывает остаток. - Что значит «линейная программа»? Команды выполняются строго по порядку, без ветвлений и повторов.
Решаем упражнения
№ 1
(Примени на практике, № 1*.) Дана длина стороны квадрата (на рисунке 40). Составь программу, которая вычисляет площадь и периметр.
Как думать. Площадь квадрата: сторона · сторона. Периметр: 4 · сторона.
Решение.
a = int(input()) # сторона квадрата
S = a * a # площадь
P = 4 * a # периметр
print('Площадь =', S)
print('Периметр =', P)
Для стороны 40: S = 1600, P = 160.
Ответ: для a = 40 площадь 1600, периметр 160.
№ 2
(Примени на практике, № 2**.) Даны числа a и b. Поменяй значения местами. Пример: a = 40, b = 50, после обмена a = 50, b = 40.
Как думать. Нужен «третий стакан»: временная переменная для хранения a.
Решение.
a = int(input())
b = int(input())
tmp = a # прячем a
a = b # в a кладём b
b = tmp # в b кладём спрятанное
print(a, b) # для 40 и 50 выведет: 50 40
🌟 В Python есть и короткая запись обмена:
a, b = b, a. В учебнике её нет, но она тоже работает.
Ответ: программа выводит 50 40.
№ 3
(Примени на практике, № 3*.) Даны слова Nur и Sultan. Составь программу, которая соберёт из них название столицы и выведет его три раза. Пример: на входе Nur и Sultan, на выходе три строки Nur-Sultan.
Как думать. Строки в Python можно склеивать плюсом. Между словами нужен дефис, значит, склеиваем три части: первое слово, '-' и второе слово. Результат сохраним и выведем три раза.
📕 С сентября 2022 года столица Казахстана снова называется Астана, а не Нур-Султан. Но как упражнение со строками задание остаётся верным: программа просто склеивает два слова.
Решение.
a = input() # первое слово, например Nur
b = input() # второе слово, например Sultan
name = a + '-' + b # склеили через дефис
print(name)
print(name)
print(name)
Ответ: три строки Nur-Sultan.
№ 4
(Примени на практике, № 4***.) Составь программу, которая выводит на экран три фигуры: «Числа» (1, 22, 333, 4444, 55555), «Окно» и «Ёлка».
Как думать. Каждая строка фигуры — отдельная команда print. Для «Ёлки» считаем пробелы: в самой нижней строке 9 звёздочек, в каждой строке выше на 2 звёздочки меньше, а слева на 1 пробел больше.
Решение.
Числа:
print('1')
print('22')
print('333')
print('4444')
print('55555')
Окно (из звёздочек и пробелов, ширина 11 символов):
print('***********')
print('* * *')
print('***********')
print('* * *')
print('***********')
Ёлка:
print(' *')
print(' ***')
print(' *****')
print(' *******')
print('*********')
💡 Когда выучишь циклы, фигуры можно будет вывести короче. Например, ёлка:
for i in range(5): print(' ' * (4 - i) + '*' * (2 * i + 1)).
Ответ: три набора print, как выше.
№ 5
(Примени на практике, № 5*.) Дан радиус окружности. Составь код, который находит длину окружности L и площадь круга S. Число $\pi = 3{,}14$. Пример: радиус 5 даёт L = 31.4, S = 78.5.
Как думать. Формулы: $L = 2\pi r$ и $S = \pi r^2$. В Python число пи берём как 3.14, степень пишем r * r или r ** 2.
Решение.
r = int(input()) # радиус
pi = 3.14
L = 2 * pi * r # длина окружности
S = pi * r * r # площадь круга
print('L =', L)
print('S =', S)
Для r = 5: L = 2 · 3.14 · 5 = 31.4, S = 3.14 · 25 = 78.5.
⚠️ Частая ошибка. Компьютер считает дроби приближённо, поэтому для L он может показать
31.400000000000002. Это то же 31.4, просто с «хвостиком» от неточной записи.
Ответ: L = 31.4, S = 78.5.
№ 6
(Примени на практике, № 6***.) Дано четырёхзначное число. Найди сумму второй (сотни) и четвёртой (единицы) цифр. Пример: 8596 → 11 (5 + 6).
Как думать. Сотни: N // 100 % 10. Единицы: N % 10.
Решение.
N = int(input())
a = N // 100 % 10 # вторая цифра слева (сотни)
b = N % 10 # последняя цифра (единицы)
print(a + b)
Для 8596: 8596 // 100 = 85, 85 % 10 = 5. И 8596 % 10 = 6. Сумма 11.
Ответ: для 8596 программа выводит 11.
№ 7
(Примени на практике, № 7***.) Дано пятизначное число. Найди сумму чисел, составленных из первых двух его цифр и из последних трёх. Пример: 12145 → 12 + 145 = 157.
Как думать. Левая часть из двух цифр — это N // 1000, правая из трёх цифр — это N % 1000.
Решение.
N = int(input())
left = N // 1000 # первые две цифры
right = N % 1000 # последние три цифры
print(left + right)
Для 12145: 12145 // 1000 = 12, 12145 % 1000 = 145. Сумма 157.
Ответ: для 12145 программа выводит 157.
№ 8
(Примени на практике, № 8*.) Дано выражение с x, y, z: $a = \dfrac{2x^2 - yz}{|x - 9z|} + \dfrac{6x - z}{8xz - 2y}$. Составь программу для вычисления. Пример: x = 1, y = 2, z = 1 даёт 1.25.
Как думать. Две дроби складываем. Каждая дробь в своих скобках. Модуль — abs().
Решение.
x = float(input())
y = float(input())
z = float(input())
a = (2 * x**2 - y * z) / abs(x - 9 * z) + (6 * x - z) / (8 * x * z - 2 * y)
print(a)
Проверка для 1, 2, 1: первая дробь (2 − 2) / |1 − 9| = 0. Во второй числитель 6 − 1 = 5, знаменатель 8 · 1 · 1 − 2 · 2 = 4, значит, 5 / 4 = 1.25. Итого 0 + 1.25 = 1.25.
Ответ: для 1, 2, 1 программа выводит 1.25.
№ 9
(Примени на практике, № 9**.) Казахстан входит в число главных экспортёров пшеницы. а) Дано m кг пшеницы. Выведи этот вес в тоннах, центнерах и килограммах. Пример: 120481 → 120 тонн 4 центнера 81 килограмм. б) Один железнодорожный вагон везёт 60 тонн пшеницы. Найди, сколько вагонов нужно для m кг зерна. Пример: 120481 → 3 вагона.
Как думать. а) 1 т = 1000 кг, 1 ц = 100 кг. Сначала тонны целым делением на 1000, остаток делим на 100 для центнеров, последний остаток и есть килограммы. б) 60 т = 60000 кг. Вагоны нужны целые, а лишние килограммы тоже нужно куда-то погрузить, поэтому делим с округлением вверх.
Решение.
а)
m = int(input())
t = m // 1000 # тонны
c = m % 1000 // 100 # центнеры
kg = m % 100 # килограммы
print(t, 'тонн', c, 'центнера', kg, 'килограмм')
б) Чтобы разделить с округлением вверх без лишних функций, прибавим к m число 59999 (это 60000 − 1) и разделим нацело:
m = int(input())
print((m + 59999) // 60000, 'вагона') # для 120481 получится 3
Проверка: 120481 + 59999 = 180480, и 180480 // 60000 = 3. Для ровных 120000 кг: (120000 + 59999) // 60000 = 2, всё верно.
Ответ: а) 120 тонн 4 центнера 81 килограмм; б) 3 вагона.
№ 10
(Примени на практике, № 10**.) Дан прогноз температуры для пяти частей Казахстана: северной, восточной, южной, западной и центральной. Составь программу для среднесуточной температуры по стране. Пример: −16, −12, 11, 5, −8 даёт −4.
Как думать. Среднее арифметическое — это сумма, делённая на количество. Здесь пять значений, значит, делим на 5.
Решение.
a = int(input()) # север
b = int(input()) # восток
c = int(input()) # юг
d = int(input()) # запад
e = int(input()) # центр
print((a + b + c + d + e) / 5)
Для −16, −12, 11, 5, −8: сумма −20, делим на 5, получаем −4. Питон при делении / выведет -4.0.
⚠️ Частая ошибка. Скобки вокруг суммы обязательны:
a + b + c + d + e / 5делило бы на 5 только последнее число.
Ответ: −4 (программа выведет −4.0).
№ 11
(Примени на практике, № 11*.) Вычисли значения функций abs(), int(), round() для чисел из таблицы.
Как думать. abs() убирает минус, int() отбрасывает дробную часть (у отрицательных тоже просто отбрасывает), round() округляет до ближайшего целого.
Решение.
| Функция | Числа | Результат |
|---|---|---|
abs(x) |
−3; 69; −1002; −45; |−98|; |58| | 3; 69; 1002; 45; 98; 58 |
int(x) |
−77.8; 14; −23.68; −7; 6.5; 2.99 | −77; 14; −23; −7; 6; 2 |
round(x) |
2.1; 5.5; 19.9; −3.63; 78.49; 3 | 2; 6; 20; −4; 78; 3 |
🌟 Число 5.5 лежит ровно посередине между 5 и 6. В Python
roundв таких случаях выбирает чётное целое:round(5.5)равно 6, аround(2.5)равно 2. Поэтому на «ровных половинках» результат может удивить.
Ответ: abs: 3, 69, 1002, 45, 98, 58. int: −77, 14, −23, −7, 6, 2. round: 2, 6, 20, −4, 78, 3.
№ 12
(Примени на практике, № 12**.) Вычисли с помощью // и % три столбика примеров.
Как думать. // даёт целую часть, % даёт остаток. В третьем столбике сначала считаем в скобках.
Решение.
Первый столбик (//): 28 // 5 = 5; 15 // 25 = 0; 65 // 4 = 16; 22 // 22 = 1; 100 // 20 = 5.
Второй столбик (%): 26 % 26 = 0; 15 % 14 = 1; 36 % 14 = 8; 22 % 3 = 1; 89 % 20 = 9.
Третий столбик:
- (12 % 10) // 14 = 2 // 14 = 0;
- (15 // 14) % 1 = 1 % 1 = 0;
- (36 // 10) % 3 = 3 % 3 = 0;
- (27 % 7) // 6 = 6 // 6 = 1;
- (77 % 15) % 15 = 2 % 15 = 2.
Ответ: первый: 5, 0, 16, 1, 5. Второй: 0, 1, 8, 1, 9. Третий: 0, 0, 0, 1, 2.
Шпаргалка
Термины: временная переменная, целочисленное деление, остаток, среднее арифметическое, строка, склейка строк.