Файл: Отчет по лабораторной работе должен содержать 1 Тему работы 2 Цель работы 3 Ход работы 4 Постановки задач.docx

ВУЗ: Не указан

Категория: Отчеты по практике

Дисциплина: Не указана

Добавлен: 17.03.2024

Просмотров: 25

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лабораторная работа 1. Парадигма структурного программирования.

Цель работы. Научиться составлять программы, используя конструкции структурной парадигмы программирования.
1.1 Ход работы
1) Изучить лекцию по данной теме и теоретический материал.

2) Разработать приложения для решения поставленных задач.

3) Разработать приложение для решения задач своего варианта.

4) Составить отчёт по работе.

5) Защитить работу.
1.2 Содержание отчёта
Отчет по лабораторной работе должен содержать:

1) Тему работы

2) Цель работы

3) Ход работы

4) Постановки задач

5) Код приложения для решения задачи

6) Результат работы программы (скриншот)

7) Вывод
1.3 Контрольные вопросы
1) Подробно опишите реализацию ввода/вывода на языке Python.

2) Продемонстрируйте пример использования оператора ветвления на языке Python.

3) Приведите пример задачи, для решения которой обязательно нужно использовать циклические алгоритмы.

4) Продемонстрируйте пример использования оператора цикла на языке Python.

5) Какие циклы в Python существуют.

6) Математическая библиотека Python. Приведите пример использования хотя бы двух функций.
1.4 Методические указания к лабораторной работе

Целые числа (int)


Числа в Python 3 ничем не отличаются от обычных чисел. Они поддерживают набор самых обычных математических операций:

x + y

Сложение

x - y

Вычитание

x * y

Умножение

x / y

Деление

x // y

Получение целой части от деления

x % y

Остаток от деления

-x

Смена знака числа

abs(x)

Модуль числа

divmod(x, y)

Пара (x // y, x % y)

x ** y

Возведение в степень

pow(x, y[, z])

xy по модулю (если модуль задан)

Системы счисления

Те, у кого в школе была информатика, знают, что числа могут быть представлены не только в десятичной системе счисления. К примеру, в компьютере используется двоичный код, и, к примеру, число 19 в двоичной системе счисления будет выглядеть как 10011. Также иногда нужно переводить числа из одной системы счисления в другую. Python для этого предоставляет несколько функций:


int([object], [основание системы счисления]) - преобразование к целому числу в десятичной системе счисления. По умолчанию система счисления десятичная, но можно задать любое основание от 2 до 36 включительно.

bin(x) - преобразование целого числа в двоичную строку.

hex(х) - преобразование целого числа в шестнадцатеричную строку.

oct(х) - преобразование целого числа в восьмеричную строку.

Вещественные числа (float)

Вещественные числа поддерживают те же операции, что и целые. Однако (из-за представления чисел в компьютере) вещественные числа неточны, и это может привести к ошибкам:

>>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1

0.9999999999999999

Модуль math – один из наиважнейших в Python. Этот модуль предоставляет обширный функционал для работы с числами.
math.ceil(X) – округление до ближайшего большего числа.

math.copysign(X, Y) - возвращает число, имеющее модуль такой же, как и у числа X, а знак - как у числа Y.

math.fabs(X) - модуль X.

math.factorial(X) - факториал числа X.

math.floor(X) - округление вниз.

math.fmod(X, Y) - остаток от деления X на Y.

math.frexp(X) - возвращает мантиссу и экспоненту числа.

math.ldexp(X, I) - X * 2i. Функция, обратная функции math.frexp().

math.fsum(последовательность) - сумма всех членов последовательности. Эквивалент встроенной функции sum(), но math.fsum() более точна для чисел с плавающей точкой.

math.isfinite(X) - является ли X числом.

math.isinf(X) - является ли X бесконечностью.

math.isnan(X) - является ли X NaN (Not a Number - не число).

math.modf(X) - возвращает дробную и целую часть числа X. Оба числа имеют тот же знак, что и X.

math.trunc(X) - усекает значение X до целого.

math.exp(X) - eX.

math.expm1(X) - eX - 1. При X → 0 точнее, чем math.exp(X)-1.

math.log(X, [base]) - логарифм X по основанию base. Если base не указан, вычисляется натуральный логарифм.

math.log1p(X) - натуральный логарифм (1 + X). При X → 0 точнее, чем math.log(1+X).

math.log10(X) - логарифм X по основанию 10.

math.log2(X) - логарифм X по основанию 2.

math.pow(X, Y) - XY.

math.sqrt(X) - квадратный корень из X.

math.acos(X) - арккосинус X. В радианах.

math.asin(X) - арксинус X. В радианах.

math.atan(X) - арктангенс X. В радианах.

math.atan2(Y, X) - арктангенс Y/X. В радианах. С учетом четверти, в которой находится точка (X, Y).

math.cos(X) - косинус X (X указывается в радианах).

math.sin(X) - синус X (X указывается в радианах).

math.tan(X) - тангенс X (X указывается в радианах).

math.hypot(X, Y) - вычисляет гипотенузу треугольника с катетами X и Y (math.sqrt(x * x + y * y)).

math.degrees(X) - конвертирует радианы в градусы.

math.radians(X) - конвертирует градусы в радианы.

math.cosh(X) - вычисляет гиперболический косинус.

math.sinh(X) - вычисляет гиперболический синус.


math.tanh(X) - вычисляет гиперболический тангенс.

math.acosh(X) - вычисляет обратный гиперболический косинус.

math.asinh(X) - вычисляет обратный гиперболический синус.

math.atanh(X) - вычисляет обратный гиперболический тангенс.

math.erf(X) - функция ошибок.

math.erfc(X) - дополнительная функция ошибок (1 - math.erf(X)).

math.gamma(X) - гамма-функция X.

math.lgamma(X) - натуральный логарифм гамма-функции X.

math.pi - pi = 3,1415926...

math.e - e = 2,718281...
Модуль random предоставляет функции для генерации случайных чисел, букв, случайного выбора элементов последовательности.
random.seed([X], version=2) - инициализация генератора случайных чисел. Если X не указан, используется системное время.

random.getstate() - внутреннее состояние генератора.

random.setstate(state) - восстанавливает внутреннее состояние генератора. Параметр state должен быть получен функцией getstate().

random.getrandbits(N) - возвращает N случайных бит.

random.randrange(start, stop, step) - возвращает случайно выбранное число из последовательности.

random.randint(A, B) - случайное целое число N, A ≤ N ≤ B.

random.choice(sequence) - случайный элемент непустой последовательности.

random.shuffle(sequence, [rand]) - перемешивает последовательность (изменяется сама последовательность). Поэтому функция не работает для неизменяемых объектов.

random.sample(population, k) - список длиной k из последовательности population.

random.random() - случайное число от 0 до 1.

random.uniform(A, B) - случайное число с плавающей точкой, A ≤ N ≤ B (или B ≤ N ≤ A).

random.triangular(low, high, mode) - случайное число с плавающей точкой, low ≤ N ≤ high. Mode - распределение.

random.betavariate(alpha, beta) - бета-распределение. alpha>0, beta>0. Возвращает от 0 до 1.

random.expovariate(lambd) - экспоненциальное распределение. lambd равен 1/среднее желаемое. Lambd должен быть отличным от нуля. Возвращаемые значения от 0 до плюс бесконечности, если lambd положительно, и от минус бесконечности до 0, если lambd отрицательный.

random.gammavariate(alpha, beta) - гамма-распределение. Условия на параметры alpha>0 и beta>0.

random.gauss(значение, стандартное отклонение) - распределение Гаусса.

random.lognormvariate(mu, sigma) - логарифм нормального распределения. Если взять натуральный логарифм этого распределения, то вы получите нормальное распределение со средним mu и стандартным отклонением sigma. mu может иметь любое значение, и sigma должна быть больше нуля.

random.normalvariate(mu, sigma) - нормальное распределение. mu - среднее значение, sigma - стандартное отклонение.


random.vonmisesvariate(mu, kappa) - mu - средний угол, выраженный в радианах от 0 до 2π, и kappa - параметр концентрации, который должен быть больше или равен нулю. Если каппа равна нулю, это распределение сводится к случайному углу в диапазоне от 0 до 2π.

random.paretovariate(alpha) - распределение Парето.

random.weibullvariate(alpha, beta) - распределение Вейбулла.
Условная инструкция if-elif-else (её ещё иногда называют оператором ветвления) - основной инструмент выбора в Python. Проще говоря, она выбирает, какое действие следует выполнить, в зависимости от значения переменных в момент проверки условия.
Синтаксис инструкции if

Сначала записывается часть if с условным выражением, далее могут следовать одна или более необязательных частей elif, и, наконец, необязательная часть else. Общая форма записи условной инструкции if выглядит следующим образом:
if test1:

state1

elif test2:

state2

else:

state3

Простой пример (напечатает 'true', так как 1 - истина):
>>> if 1:

... print('true')

... else:

... print('false')

...

true

Чуть более сложный пример (его результат будет зависеть от того, что ввёл пользователь):
a = int(input())

if a < -5:

print('Low')

elif -5 <= a <= 5:

print('Mid')

else:

print('High')

Конструкция с несколькими elif может также служить отличной заменой конструкции switch - case в других языках программирования.
Проверка истинности в Python

Любое число, не равное 0, или непустой объект - истина.

Числа, равные 0, пустые объекты и значение None - ложь

Операции сравнения применяются к структурам данных рекурсивно

Операции сравнения возвращают True или False

Логические операторы and и or возвращают истинный или ложный объект-операнд
Логические операторы:
X and Y

Истина, если оба значения X и Y истинны.
X or Y

Истина, если хотя бы одно из значений X или Y истинно.
not X

Истина, если X ложно.

Цикл while

While - один из самых универсальных циклов в Python, поэтому довольно медленный. Выполняет тело цикла до тех пор, пока условие цикла истинно.

>>> i = 5

>>> while i < 15:

... print(i)

... i = i + 2

...

5

7

9

11

13
Цикл for

Цикл for уже чуточку сложнее, чуть менее универсальный, но выполняется гораздо быстрее цикла while. Этот цикл проходится по любому итерируемому объекту (например строке или списку), и во время каждого прохода выполняет тело цикла.
>>> for i in 'hello world':

... print(i * 2, end='')

...

hheelllloo wwoorrlldd

Оператор continue

Оператор continue начинает следующий проход цикла, минуя оставшееся тело цикла (for или while)
>>> for i in 'hello world':

... if i == 'o':

... continue


... print(i * 2, end='')

...

hheellll wwrrlldd

Оператор break

Оператор break досрочно прерывает цикл.
>>> for i in 'hello world':

... if i == 'o':

... break

... print(i * 2, end='')

...

hheellll


1.5 Ход работы:


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

Программа обязательно должна выводить сообщения для пользователя, чтобы ему было понятно, что должно быть введено/выведено! Проявите творчество, чтобы вашим приложением было приятно пользоваться, от этого сильно будет зависеть оценка.

Задание 1

Следование в языке Python


Индивидуальные варианты к заданию № 1



  1. Составьте программу, находящую разность двух обыкновенных дробей. Числители и знаменатели дробей вводятся отдельно. Ответ - вещественное число.

  2. Из 18 т железной руды выплавляют 10 т железа. Сколько железа выплавят из X т руды? Количество руды X вводится пользователем

  3. Всхожесть семян пшеницы равна 95%. Сколько тонн семян нужно посеять, чтобы X тонн из них проросло?

  4. Расстояние между домами, в которых живут Петя и Коля, S м. Однажды они вышли каждый из своего дома и направились навстречу друг другу. Когда Петя прошел А метров, они встретились. Вывести сколько прошел Коля. Во сколько раз расстояние, которое прошел Коля больше расстояния, которое прошел Петя?

  5. От станции до озера S км. Туристы, направляясь от станции к озеру, полтора часа шли пешком со скоростью А км, а затем сели на попутную машину, которая ехала со скоростью В км/ч. За какое время туристы добрались до озера?

  6. Чтобы заварить 1,5 л чая, нужно 30 г сухого чая. Чайник вмещает В л. Сколько нужно сухого чая для заварки полного чайника?

  7. В школьном коридоре длиной 56 м нужно выкрасить пол. Выкрасив часть коридора длиной 22 м, израсходовали А кг краски. Сколько еще нужно краски, докрасить коридор?

  8. Чтобы сварить 4 порции пшенной каши, нужно взять 220 г пшена, 1 л молока и 30 г сахара. Сколько потребуется этих продуктов, чтобы сварить N порций каши?

  9. Универмаг в ноябре продал товаров на А млн. р., что на 15% больше, чем в октябре. На какую сумму были проданы товары в октябре?

  10. Сахарная свекла содержит 14% сахара. С 1 га собирают 30 т сахарной свеклы. сколько гектаров надо засеять сахарной свеклой, чтобы получить В т сахара?

  11. Клоун предложил каждому из публики задумать число. Потом он сказал: «Прибавьте к задуманному числу 5. Теперь из результата вычтите 2. А теперь к результату прибавьте 7». Потом клоун спросил у желающих, какое число у каждого из них получилось. Услышав ответ, он немедленно объявлял каждому, какое число тот задумывал. Составьте программу, которая повторяла бы фокус клоуна.

  12. Для того, чтобы печенье было рассыпчатым, в него кладут пекарский порошок. В его состав входят пищевая сода – 25%, лимонная кислота – 15% и мука – 60%. Сколько соды, лимонной кислоты и муки надо взять, чтобы приготовить А г пекарского порошка?

  13. Чтобы связать один шарф, требуется 200 г пряжи. Пряжа состоит на 40% из мохера и на 60% из полиакрила. Сколько мохера и полиакрила потребуется, чтобы изготовить В шарфов?

  14. Мельхиор – это сплав никеля и меди, массы которых пропорциональны числам 2 и 9. Сколько потребуется никеля и меди для выплавки С кг мельхиора?

  15. Для приготовления квашеной капусты на 10 кг капусты берут 225 г соли , 350 г моркови, 200 г клюквы, 4 г лаврового листа. Сколько соли, моркови, клюквы и лаврового листа надо взять, если закуплено М кг капусты?

  16. Для приготовления компота из персиков берут сахар, персики и воду в пропорции 1:1:3. Сколько кг каждого продукта надо взять, чтобы сварить Р кг компота?

  17. Масса молекул кислорода в организме человека составляет 65% от его массы. Составьте программу для определения массы молекул кислорода в организме человека по его весу.

  18. В классе N учеников. После контрольной было получено: A - пятерок, B - четверок, C -троек. Найти процент троек, четверок и пятерок.

  19. Четырем классам поручено убрать поле площадью F га. С клавиатуры вводится количество учеников в каждом классе. Сколько га надо убрать каждому классу?

  20. Составьте программу для вычисления суммы цифр введенного с клавиатуры трехзначного натурального числа.

  21. Известен объем продукции, выпускаемый пятью предприятиями отрасли. Вычислить средний объем продукции, выпускаемый одним предприятием.

  22. Известен плановый P и фактический F показатели выпуска продукции предприятием. Определить процент выполнения плана.

  23. На строительных работах нужно отработать S часов, в подразделении N строителей. Какова средняя загруженность одного человека?

  24. Заданы координаты концов двух векторов, выходящих из начала координат. Найти длины этих векторов.

  25. Цех по ремонту бытовой техники имеет ежедневно прибыль Р, с которой платит налог 70%. Из оставшейся доли прибыли 30% идет на развитие производства, а остальное – на заработную плату 8 работникам. Какова среднемесячная зарплата работника?

  26. Расстояние между полицейской машиной и автомобилем преступника равно 240 м. Скорость полицейского автомобиля 40 м/c, машины преступника - 38 м/с. Как скоро полицейские догонят преступника?

  27. Средний радиус яйца домашней курицы 5 см, а инкубаторной – 4 см. Сколько инкубаторных яиц соответствует десятку домашних? Сколько сэкономит хозяйка, покупая десяток домашних яиц.

  28. Бабушка вяжет в неделю 3 пары детских носков, пару женских и пару мужских и продает их. Считая, что в месяце 4 недели, определить, какую прибыль бабушка имеет за месяц.

  29. За год квартплата повышалась дважды. Первый раз на 30%, а второй на 40%.Год назад семья Ивановых платила квартплату 80 рублей в месяц. Сколько они платят сейчас.

  30. Пешеход прошел S1 км за T1 час. Какое расстояние пройдет пешеход за T2 часа?