Линейные задачи по программированию для начинающих.
Линейные задачи по программированию для начинающих.
Данный материал посвящен вопросам программирования на языке программирования. Python 3.6.4. В нем подробно рассматриваются решения задач. Он адресован учащимся и всем желающим самостоятельно овладеть искусством программирования.
Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Просмотр содержимого документа
«Линейные задачи по программированию для начинающих.»
Линейные задачи по программированию для начинающих.
Ищенко Руслана Викторовна,
МАОУ «СОШ №102»
учитель информатики
Данный материал посвящен вопросам программирования на языке программирования. Python 3.6.4. В нем подробно рассматриваются решения задач, от простых до достаточно сложных. Он адресован учащимся и всем желающим самостоятельно овладеть искусством программирования. Содержит условия задач и одно или два варианта их решения на языке программирования. В сборнике рассматриваются различные линейные алгоритмы, решение задач и задачи для самостоятельной работы.
Данный материал может быть использован как на уроках информатики в 9классе, так и на элективных курсах.
Линейные программы
Основные математические операторы в python:
+ — сложение
- — вычитание
* — умножение
/ — деление
% —взятие остатка от деления
** — возведение в степень
Ряд встроенных функций в Python позволяют работать с числами. В частности, функции int() и float() позволяют привести значение к типу целое и вещественное.
Модуль math – один из наиважнейших в Python. Этот модуль предоставляет обширный функционал для работы с числами.
Примеры:
math.fabs(X) - модуль X.
math.factorial(X) - факториал числа X.
math.fmod(X, Y) - остаток от деления X на Y.
math.exp(X) - eX.
math.sqrt(X) - квадратный корень из X.
math.pi - pi = 3,1415926...
math.cos(X) - косинус X (X указывается в радианах).
math.sin(X) - синус X (X указывается в радианах).
math.tan(X) - тангенс X (X указывается в радианах). и т.п
Задание№1
Даны два целых числа х и у. Вычислить их сумму, разность, произведение и частное.
Программа:
# Нахождение суммы, разности и произведения двух вещественных чисел
a = float(input("Введите первое число:"))
b = float(input("Введите второе число:"))
sum = a + b
razn = a - b
proiz = a * b
cas = a / b
print('Сумма =', sum)
print('Разность =', razn)
print('Произведение =', proiz)
print('Частное =', cas)
Задание№2
Составить программу вычисления длины окружности, если известен радиус.
Программа
# Вычисления длины окружности, если известен радиус.
pi=3.14159
r = float(input("Введите радиус окружности: "))
l = 2*pi*r
print('Длина окружности =', f'{l:0.3}')
Задание№3
Составить программу нахождения остатка деления целочисленного числа k на n
Программа
# Нахождения остатка от деления целочисленного числа k на n
k = float(input("Введите число k: "))
n = float(input("Введите число n: "))
ostatok = k % n
print('Остаток от деления',ostatok)
Задание№4
Найдите значения вычисления выражений z=sin(x+*(y/2))
Программа
# Значения вычисления выражений z и y
import math
pi = 3.14
x = float(input("Введите число х: "))
y = math.sqrt(x)
z = math.sin(x + pi*y / 2)
print("Значение выражения у = ",y)
print("Значение выражения z = ",f"{z:0.2}")
Представление числа
При обычном определении числовой переменной она получает значение в десятичной системе. Но кроме десятичной в Python мы можем использовать двоичную, восьмеричную и шестнадцатеричную системы.
Для определения числа в двоичной системе перед его значением ставится 0 и префикс b:
1
x = 0b101 # 101 в двоичной системе равно 5
Для определения числа в восьмеричной системе перед его значением ставится 0 и префикс o:
1
a = 0o11 # 11 в восьмеричной системе равно 9
Для определения числа в шестнадцатеричной системе перед его значением ставится 0 и префикс x:
1
y = 0x0a # a в шестнадцатеричной системе равно 10
И с числами в других системах измерения также можно проводить арифметические операции:
1
2
3
4
x = 0b101 # 5
y = 0x0a # 10
z = x + y # 15
print("{0} in binary {0:08b} in hex {0:02x} in octal {0:02o}".format(z))
Для вывода числа в различных системах исчисления используются функция format, которая вызывается у строки. В эту строку передаются различные форматы.
Для двоичной системы "{0:08b}", где число 8 указывает, сколько знаков должно быть в записи числа. Если знаков указано больше, чем требуется для числа, то ненужные позиции заполняются нулями.
Для шестнадцатеричной системы применяется формат "{0:02x}". И здесь все аналогично - запись числа состоит из двух знаков, если один знак не нужен, то вместо него вставляется ноль. А для записи в восьмеричной системе используется формат "{0:02o}".
Задание для самостоятельной работы.
Если первый ученик за 1ч может собрать М ведер яблок,2-й – К ведер, 3-й L ведер, то сколько ведер яблок они соберут за t часов?
Для изготовления одного чайника нужно Р – граммов, одной тарелки –С граммов, одной чашки – К граммов сырья. Сколько сырья требуется для изготовления А штук чайников, 0.5А штук тарелок и 0.2А штук чашек?
В трех сосудах содержится вода. В первом сосуде V1 л воды температуры t1, во втором – V2 л температуры t2, в третьем – V3 л температуры t3. Воду слили в один сосуд. Составить программу для определения объема V и температуры T воды в этом сосуде (расчет температуры можно вести по упрощенной формуле: T = (t1+t2+t3)/3.
Определите количество теплоты необходимое для нагревания жидкости массой m, обладающей теплоемкостью c от температуры t1 до температуры t2
Вычислите и выведите на экран примерное число прожитых человеком дней (без учёта високосных лет), если в году 365 дней, а год рождения и текущий год запрашиваются у пользователя вашей программы.
Три сопротивления R1, R2, R3 соединены параллельно. Найти сопротивление соединения R0.
Определите площадь трапеции высотой H, с основаниями a и b.
Напишите программу, вычисляющую какую сумму денег нужно платить за электроэнергию, если у пользователя программы запрашивается количество КВт электроэнергии, которое было израсходовано за расчётный месяц, и какова плата за 1 КВт электроэнергии.
Запрашивайте у пользователя размер наследства, которое Вы бы хотели получить (в долларах), и сумму денег, которую вы собираетесь тратить в месяц. Выведите на экран время (в годах), на которые хватит этого наследства.
Вычислить радиус RB вписанной и радиус RO описанной около треугольника окружности, если заданы стороны треугольника А, В, С.
, где S – площадь, P – полупериметр треугольника.
Линейные алгоритмы (2 часть)
Задание№1.
Запишите с использованием промежуточных величин алгоритм вычисления выражения:
Программа
# Вычислить значение вычисления выражения y через промежуточные величины
import math
a = float(input("Введите число a: "))
b = a * a
z = b + 4
y = b/3+z/6+math.sqrt(z)/4+math.sqrt(z*z*z)/4
print("Значение выражения у = ",f"{y:0.3}")
Задание №2.
Вычислить значение функции
y = |3x — 45|.
Программа
# Вычислить значение вычисления выражения y
import math
x = float(input("Введите число x: "))
y = math.fabs(3*x-45)
print("Значение выражения у = ",f"{y:0.3}")
Задание №3.
Вычислить значение функции
y = cos(x) + sin(x)
Программа
# Вычислить значение вычисления выражения y
import math
x = float(input("Введите число x: "))
y = math.cos(x) + math.sin(x)
print("Значение выражения у = ",f"{y:0.4}")
Задание №4.
a)Вычислить значение вычисления выраженияxy
Программа
# Вычислить значение вычисления выражения
import math
x = int(input("Введите число x: "))
y = int(input("Введите степень числа y: "))
y = math.pow(x, y)
print("Значение выражения у = ",y )
b)Вычислить значение функции y = x5+ x4+ x3+ x2+ x.
Программа
import math
x = int(input("Введите число x: "))
y = math.pow(x, 5)+ math.pow(x, 4)+ math.pow(x, 3)+ math.pow(x, 2) + x
print("Значение выражения у = ",y )
Задание для самостоятельной работы.
Составить программу для определения следующих выражений
Линейные задачи. Решение задач (часть 3)
Задание№1.
Вывести уравнение прямой, проходящей через заданные точки.
Уравнение прямой на координатной плоскости имеет следующий вид: y = kx + b. Если известны координаты двух точек, лежащих на этой прямой, то можно, решая систему уравнений, определить значения коэффициентов k и b. Таким образом выводится уравнение конкретной прямой, например, у = 3x - 1.
Решаем систему уравнений:
| y1 = kx1 + b
| y2 = kx2 + b
b = y2 - kx2
y1 = kx1 + y2 - kx2
k = (y1 - y2) / (x1 - x2)
Программа
print("Координаты точки A(x1;y1):")
x1 = float(input("\tx1 = "))
y1 = float(input("\ty1 = "))
print("Координаты точки B(x2;y2):")
x2 = float(input("\tx2 = "))
y2 = float(input("\ty2 = "))
print("Уравнение прямой, проходящей через эти точки:")
k = (y1 - y2) / (x1 - x2)
b = y2 - k*x2
print(" y = %.2f*x + %.2f" % (k, b)) или print("y =",k,"*x +",b)
Задание№2 "Заем"
Требуется убедиться, что брать кредиты не выгодно. Т. е. надо вычислить, сколько придется платить в месяц по займу и сколько всего отдать денег банку за весь период.
Месячная выплата по займу вычисляется по такой загадочной формуле:
m = (s * p * (1 + p)n) / (12 * ((1 + p)n – 1)).
Достаточно знать, что в этой формуле:
m - размер месячной выплаты;
s - сумма займа (кредита);
p - процент банка, выраженный в долях единицы (т. е. если 20%, то будет 0.2).
Обмен значений двух переменных - это "действие", в результате которого одна переменная принимает значение, равное второй переменной, а вторая - первой.
Во многих языках программирования (например, Pascal) приходится вводить третью переменную, играющую роль буфера (ее иногда называют буферной переменной). В этой переменной сохраняют значение первой переменной, потом первой переменной присваивают значение второй, в новое значение для второй переменной берут из буфера. Поэтому алгоритм обмена значений двух переменных выглядит так:
buf = a
a = b
b = buf
В Python обмен значений переменных можно выполнить вообще в одну строчку:
a = 10
b = 20
a,b = b,a
При выполнении a,b = b,a интерпретатор Python сначала получает значения связанные с переменными b и a (правая часть) и помещает их в кортеж, в данном случае получится (10, 20). После этого он связывает каждый элемент кортежа в определенной позиции с переменной в той же позиции, но в кортеже слева (a,b).
a = 14
b = 18
c = 16
a,b,c = c,a,b
a,b,c
(16, 14, 18)
Программа
a = input("Введите число первое ")
b = input("Введите число второе ")
a,b = b,a
print (a,b)
Задание№4.
Вычислить продолжительность года на планетах.
Вычислить продолжительность года на двух планетах по введенным их радиусам орбит и скорости движения по орбитам. Выяснить, правда ли, что год на первой планете длиннее, чем на второй.
Продолжительность года вычисляется по формуле:
2 * радиус_орбиты * пи / орбитальная_скорость.
Программа
import math
planet1 = input("Планета №1: ")
r1 = float(input("Радиус ее орбиты (млн. км): "))
v1 = float(input("Ее орбитальная скорость (км/с): "))
r1 = r1 * 1000000 # переводим миллионы км в просто км
year1 = 2 * math.pi * r1 / v1
year1 = year1 / (60 * 60 * 24) # переводим секунды в дни
planet2 = input("Планета №2: ")
r2 = float(input("Радиус ее орбиты (млн. км): "))
v2 = float(input("Ее орбитальная скорость (км/с): "))
r2 = r2 * 1000000
year2 = 2 * math.pi * r2 / v2
year2 = year2 / (60 * 60 * 24)
print("Длина года в днях на планете %s: %2.f" % (planet1, year1))
print("Длина года в днях на планете %s: %2.f" % (planet2, year2))
print("Длина года на %s больше, чем на %s? %s" % (planet1, planet2, year1 year2))
Пример входных данных:
Планета №1: Земля
Радиус ее орбиты (млн. км): 150
Ее орбитальная скорость (км/с): 30
Планета №2: Венера
Радиус ее орбиты (млн. км): 108
Ее орбитальная скорость (км/с): 35
Длина года в днях на планете Земля: 364
Длина года в днях на планете Венера: 224
Длина года на Земля больше, чем на Венера? True
Самостоятельная работа. Линейные. (часть 4)
Задача №1.
В пяти тестовых опросах мальчик получил оценки. Составьте программу, которая определит среднее значение оценок, полученных мальчиком в пяти опросах.
Задача №2.
Имеется садовый участок, имеющий форму прямоугольника со сторонами А метров и В метров. Составьте алгоритм и программу, которая определит сколько досок надо купить, чтобы поставить сплошной забор. Ширина одной доски 10 см.
Задача №3.
В магазине продается костюмная ткань. Ее цена В руб. за квадратный метр. Составьте алгоритм и программу, которая подсчитает и выведет на экран стоимость куска этой ткани длиной Х метров и шириной 80 см.
Задача №4.
Хозяин хочет оклеить обоями длинную стену в своем доме. Длина этой стены равна А метров, а высота - В метров. Рулон обоев имеет длину 12 метров и ширину K см. Составьте алгоритм и программу, которая определит стоимость обоев для всей стены, если цена одного рулона К руб.
Задача №5.
Фруктовый магазин продает яблоки по А руб. за кг., груши по В руб. за кг., апельсины по С руб. за кг. В первые два дня недели продано: понедельник – Х кг. яблок, Y кг. груш, Z кг. апельсинов; вторник – X кг. яблок, Y кг. груш, Z кг. Апельсинов (X, Y, Z — принимают разные значения в понедельник и во вторник). Напишите программу, которая будет вычислять, на какую сумму продал магазин фруктов в каждый из этих дней и за оба дня вместе.
Задача №6.
Написать программу нахождения площади прямоугольного треугольника. Значения катетов вводятся с клавиатуры.
Задача №7
Вычислить длину окружности и площадь круга одного и того же заданного радиуса R.
Задача №8
Вычислить расстояние между двумя точками с данными координатами на плоскости (х1, у1) и (х2, у2).
Задача №9
Дана длина ребра куба. Найти площадь грани, площадь полной поверхности и объем этого куба.
Задача №10
Три сопротивления R1, R2, R3 соединены параллельно. Найти сопротивление всей цепи.
Задача №11
Найти сумму членов арифметической прогрессии, если известны ее первый член, разность и число членов прогрессии.
Задача №12
Найти площадь равнобедренной трапеции с основаниями, а и b и углом α при большем основании а.
Задача №13
Вычислить площадь и периметр правильного N-угольника, описанного около окружности радиуса R (рассмотреть N — целого типа, R — вещественного типа).
Задача №14
Дано натуральное число Т — длительность прошедшего времени в секундах. Вывести данное значение длительности в часах (НН), минутах (ММ) и секундах (SS) в следующей форме: НН ч ММ мин SS с.
Литература
Решение задач по программированию http://taskcode.ru/linear
Лаборатория линуксоида https://younglinux.info/
Уроки по языку программирования Python https://devpractice.ru/python-lessons/