From aa1136f1116b0a59c59b761d6180d25e500f985a Mon Sep 17 00:00:00 2001 From: VatariShin Date: Fri, 10 Oct 2025 12:26:21 +0300 Subject: [PATCH] Done lab4 --- TEMA4/Ris1.png | Bin 0 -> 20049 bytes TEMA4/Ris2.png | Bin 0 -> 15502 bytes TEMA4/report.md | 206 ++++++++++++++++++++++++++++++++++++++++++++++++ TEMA4/task.md | 36 +++++++++ 4 files changed, 242 insertions(+) create mode 100644 TEMA4/Ris1.png create mode 100644 TEMA4/Ris2.png create mode 100644 TEMA4/report.md create mode 100644 TEMA4/task.md diff --git a/TEMA4/Ris1.png b/TEMA4/Ris1.png new file mode 100644 index 0000000000000000000000000000000000000000..ae67bae976bc40ccba6c06e3cbc812c21f5c0dac GIT binary patch literal 20049 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 round(123.456,1) +123.5 +>>> round(123.456,0) +123.0 +>>> round(123.456) +123 +``` + +функция `range` +```py +>>> gg=range(76,123,9) +>>> list(gg) +[76, 85, 94, 103, 112, 121] +>>> range(23) +range(0, 23) +``` +Получили последовательность от 0 до 22 с шагом 1 + +функция `zip` +```py +>>> qq = ['Kovalenko', 'Ivanov', 'Mahnov', 'Hodyuk'] +>>> ff=zip(gg,qq) +>>> tuple(ff) +((76, 'Kovalenko'), (85, 'Ivanov'), (94, 'Mahnov'), (103, 'Hodyuk')) +``` + +функция `eval` +```py +>>> fff=float(input('коэффициент усиления=')); dan=eval('5*fff-156') +коэффициент усиления=2 +>>> dan +-146.0 +``` + +функция `exec` +```py +>>> exec(input('введите инструкции:')) +введите инструкции:perem=-123.456;gg=round(abs(perem)+98,3) +>>> gg +221.456 +``` + +самостоятельно изучим функции `divmod` и `map` +```py +a = map(lambda val: len(val), qq) +>>> print(list(a)) +[9, 6, 6, 6] + +>>> divmod(10, 3) +(3, 1) +``` + +### 4.2 Изучим функции модуля math + +```py + >> import math +>>> dir(math) +['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc', 'ulp'] +>>> help(math.factorial) +factorial(x, /) + Find x!. + + Raise a ValueError if x is negative or non-integral. +>>> math.factorial(5) +120 +>>> math.sin(2 * math.pi / (7 + math.exp(0.23))) +0.6895048136223224 +``` + +### 4.3 Изучим функции модуля cmath + +```py +import cmath +>>> dir(cmath) +['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'inf', 'infj', 'isclose', 'isfinite', 'isinf', 'isnan', 'log', 'log10', 'nan', 'nanj', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau'] +>>> cmath.sqrt(1.2-0.5j) +(1.118033988749895-0.22360679774997896j) +>>> cmath.phase(1-0.5j) +-0.4636476090008061 +``` +### 4.4 Изучим функции модуля random + +```py +>>> import random + dir(random) +['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_floor', '_inst', '_log', '_os', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randbytes', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate'] +help(random.seed) +seed(a=None, version=2) method of random.Random instance + Initialize internal state from a seed. + + The only supported seed types are None, int, float, + str, bytes, and bytearray. + + None or no argument seeds from current time or from an operating + system specific randomness source if available. + + If *a* is an int, all bits are used. + + For version 2 (the default), all of the bits are used if *a* is a str, + bytes, or bytearray. For version 1 (provided for reproducing random + sequences from older versions of Python), the algorithm for str and + bytes generates a narrower range of seeds. + +>>> random.seed() + +random.seed() +>>> randoms = [random.gauss(0, 1), random.random(), random.betavariate(1, 2), random.gammavariate(2, 3)] +randoms +[0.6215069973322431, 0.08807819378198645, 0.5664749235248212, 4.506587762379303] +``` + +### 4.5 Изучим функции модуля time + +```py +>>> import time +>>> dir(time) +['CLOCK_MONOTONIC', 'CLOCK_MONOTONIC_RAW', 'CLOCK_PROCESS_CPUTIME_ID', 'CLOCK_REALTIME', 'CLOCK_THREAD_CPUTIME_ID', 'CLOCK_UPTIME_RAW', '_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'clock_getres', 'clock_gettime', 'clock_gettime_ns', 'clock_settime', 'clock_settime_ns', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'monotonic_ns', 'perf_counter', 'perf_counter_ns', 'process_time', 'process_time_ns', 'sleep', 'strftime', 'strptime', 'struct_time', 'thread_time', 'thread_time_ns', 'time', 'time_ns', 'timezone', 'tzname', 'tzset'] + +>>> c1=time.time() +>>> c1 +1760084296.501437 + +>>> c2=time.time()-c1 +>>> c2 +19.090100049972534 + +>>> dat=time.gmtime() +>>> dat +time.struct_time(tm_year=2025, tm_mon=10, tm_mday=10, tm_hour=8, tm_min=19, tm_sec=3, tm_wday=4, tm_yday=283, tm_isdst=0) +>>> dat.tm_mon +10 +>>> dat.tm_min +19 + +>>> time.localtime() +time.struct_time(tm_year=2025, tm_mon=10, tm_mday=10, tm_hour=11, tm_min=22, tm_sec=32, tm_wday=4, tm_yday=283, tm_isdst=0) + +>>> time.localtime(c1) +time.struct_time(tm_year=2025, tm_mon=10, tm_mday=10, tm_hour=11, tm_min=18, tm_sec=16, tm_wday=4, tm_yday=283, tm_isdst=0) +``` + +### 4.6 Изучим графические функции + +```py +>>> import pylab +>>> x=list(range(-3,55,4)) +>>> t=list(range(15)) +pylab.plot(t,x) +pylab.title('Первый график') +pylab.xlabel('время') +pylab.ylabel('сигнал') +pylab.show() + +``` +Полученный график сохранил как [Ris1.png](Ris1.png) + +```py +>>> X1=[12,6,8,10,7] +>>> X2=[5,7,9,11,13] +pylab.plot(X1) +pylab.plot(X2) +pylab.show() + +region=['Центр','Урал','Сибирь','Юг'] +naselen=[65,12,23,17] +pylab.pie(naselen,labels=region) +pylab.show() +``` +Полученный график сохранил как [Ris2.png](Ris2.png) + +```py +X1=[12,6,8,10,7, 7, 7, 6, 12, 12, 12] +pylab.hist(X1) +pylab.show() + +region=['Центр','Урал','Сибирь','Юг'] +naselen=[65,12,23,17] +pylab.bar(region, naselen) +pylab.show() +``` + +### 4.7 Изучим функции модуля statistics + +```py +import statistics +>>> dir(statistics) + +>>> a = [1, 2, 3, 4, 5] +>>> statistics.mean(a) +3 +>>> statistics.sqrt(9) +3.0 +>>> statistics.exp(3) +20.085536923187668 +``` + diff --git a/TEMA4/task.md b/TEMA4/task.md new file mode 100644 index 0000000..96b81b7 --- /dev/null +++ b/TEMA4/task.md @@ -0,0 +1,36 @@ +# Общее контрольное задание по теме 4 + +Коваленко Дмитрий, А-01-23 + +## Задание + +• Напишите и исполните единое выражение, реализующее последовательное выполнение следующих операций: вычисление фазы комплексного числа `0.2+0.8j`, округление результата до двух знаков после запятой, умножение полученного значения на 20, получение кортежа из двух значений: округленное вниз значение от деления результата на 3 и остатка от этого деления.\ +• Создайте объект класса struct_time с временными параметрами для текущего московского времени. Создайте строку с текущим часом и минутами.\ +• Создайте список с элементами – названиями дней недели. Сделайте случайную выборку из этого списка с тремя днями недели. \ +• Напишите инструкцию случайного выбора числа из последовательности целых чисел от 14 до 32 с шагом 3.\ +• Сгенерируйте нормально распределенное число N с математическим ожиданием 15 и стандартным отклонением 4 и округлите его до целого значения. Создайте список с N элементами – случайно выбранными буквами латинского алфавита.\ +• Напишите инструкцию для определения временного интервала в минутах, прошедшего с момента предыдущего (из п.2) определения временных параметров.\ + + + +## Решение + +```py +from cmath import * +from time import localtime, mktime +from random import sample, choice, gauss +from string import ascii_letters + +tuple(divmod(round(phase(0.2+0.8j), 2) * 20, 3)) +now = localtime() +nowStr = f'{now.tm_hour}:{now.tm_min}' + +days = ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'] +rDays = sample(days, 3) +rNum = choice(range(14, 32, 3)) +nNum = round(gauss(15, 4)) +rLets = sample(list(ascii_letters), nNum) + +updNow = localtime() +diff = (mktime(updNow) - mktime(now)) // 60 +```