3.5–3.6. Практические задания — Информатика 6 класс, Кадыркулов: разбор и ответы
Ookul.kz · разбор уроков

Разберём любой номер вместе!

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.

Третий столбик:

  1. (12 % 10) // 14 = 2 // 14 = 0;
  2. (15 // 14) % 1 = 1 % 1 = 0;
  3. (36 // 10) % 3 = 3 % 3 = 0;
  4. (27 % 7) // 6 = 6 // 6 = 1;
  5. (77 % 15) % 15 = 2 % 15 = 2.

Ответ: первый: 5, 0, 16, 1, 5. Второй: 0, 1, 8, 1, 9. Третий: 0, 0, 0, 1, 2.

Шпаргалка

Термины: временная переменная, целочисленное деление, остаток, среднее арифметическое, строка, склейка строк.

Мини-тест

← 3.4. Правила выполнения арифметических действий · 3.7. Ввод и вывод чисел →