Линейные задачи по программированию для начинающих. Ищенко Руслана Викторовна, маоу сош 102
Скачать 49.67 Kb.
|
Линейные задачи по программированию для начинающих. Ищенко Руслана Викторовна, МАОУ «СОШ №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:
Для определения числа в восьмеричной системе перед его значением ставится 0 и префикс o:
Для определения числа в шестнадцатеричной системе перед его значением ставится 0 и префикс x:
И с числами в других системах измерения также можно проводить арифметические операции:
Для вывода числа в различных системах исчисления используются функция 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. Запишите с использованием промежуточных величин алгоритм вычисления выражения:
Задание №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). n - количество лет, на которые берется займ. Программа zaem = input("Сколько хотите взять денег: ") zaem = int(zaem) proz = input("Под какой процент вам их дают: ") proz = int(proz) years = input("Насколько лет берете: ") years = float(years) proz = proz / 100 month_pay = (zaem * proz * (1 + proz)**years) / (12 * ((1 + proz)**years - 1)) print("Ваш месячный платеж составит: %.2f" % month_pay) summa = month_pay * years * 12 print("За весь период вы заплатите: %.2f" % summa) print("Это составит %.2f%% от первоначальной суммы" % ((summa/zaem ) * 100)) Задание№3 Обмен значений переменных Обмен значений двух переменных - это "действие", в результате которого одна переменная принимает значение, равное второй переменной, а вторая - первой. Во многих языках программирования (например, 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/ |