diff --git a/TEMA7/report .md b/TEMA7/report .md index e06af5a..7437bbd 100644 --- a/TEMA7/report .md +++ b/TEMA7/report .md @@ -7,7 +7,7 @@ Запуск оболочки IDLE и установка рабочего каталога >>>import os - >>>os.chdir('C:\\Users\\Дмитрий\\OneDrive\\Рабочий стол\\Goloshchapov\\python-labs\\TEMA6') + >>>os.chdir('C:\\Users\\Дмитрий\\OneDrive\\Рабочий стол\\Goloshchapov\\python-labs\\TEMA7') Пользовательская функция – это совокупность инструкций, которая выполняется при обращении к функции из любого места программы. Аргументы функции – это ссылки на объекты-источники данных, которые используются при её выполнении. Возвращаемые данные – это результаты вычисления функции, передаваемые в ту часть программы, из которой была вызвана функция. @@ -201,12 +201,6 @@ help вывело справку по функции uspeh в модуле main. Программа выводит сообщение "Функция 2", потому что переменная typ_fun не равна 1, и выполняется блок else, в котором функция func определена как выводящая "Функция 2". - >>> tup_fun=1 - >>> func() - Функция 2 - -Сначала у нас выполнялась ветка else, создаётся функция func и вывелось "Функция 2". Эта функция сохранилась в памяти. Потом мы изменили значение typ_fun. Но здесь уже код с if-else не выполняется, функция func остаёся прежней. - # 4. Аргументы функции ## 4.1 Возможность использования функции в качестве аргумента другой функции diff --git a/TEMA7/test.md b/TEMA7/test.md new file mode 100644 index 0000000..50fd47e --- /dev/null +++ b/TEMA7/test.md @@ -0,0 +1,55 @@ +# Выполнение индивидуального контрольного задания по теме 7 + +Голощапов Д.Е.,А-01-23 + +# Задание + +Разработайте анонимную функцию с 3 аргументами: х, a, b, вычисляющую значение exp(-(x-a)2/b)/(2*π*b)1/2. Рассчитайте значения функции в диапазоне значений х от a-3*b1/2 до a+3*b1/2 с шагом 0.2*b1/2 и запишите эти значения в текстовый файл по два значения на строке, разделенных запятыми. + +# Решение + + >>> import os + >>> os.chdir('C:\\Users\\u115-07\\Desktop\\python-labs\\TEMA7') + >>> normal= lambda x, a, b: math.exp(-(x-a)**2/b) / math.sqrt(2 * math.pi * b) + >>> def test_normal(): + ... a, b = 0, 1 + ... std_dev = math.sqrt(b) + ... start = a - 3 * std_dev + ... end = a + 3 * std_dev + ... step = 0.2 * std_dev + ... x_values = [] + ... current = start + ... while current <= end: + ... x_values.append(current) + ... current += step + ... function_values = [] + ... for x in x_values: + ... y = normal_pdf(x, a, b) + ... function_values.append(y) + ... file = open('ikz.txt', 'w') + ... for i in range(0, len(function_values), 2): + ... if i + 1 < len(function_values): + ... file.write(str(function_values[i])+','+str(function_values[i+1])+'\n') + ... else: + ... file.write(str(function_values[i])+',0\n') + ... + ... + >>> test_normal() + + 4.9233388666234e-05,0.0001570512248023814 + 0.00046246553014536756,0.0012571116468828324 + 0.0031544581746000837,0.007306882745280797 + 0.015624133620192436,0.03084012943829092 + 0.05619437965598666,0.09452050033904612 + 0.14676266317374007,0.21035924208613316 + 0.2783325845048708,0.33995618640009767 + 0.3832995298410415,0.3989422804014327 + 0.3832995298410414,0.33995618640009745 + 0.27833258450487053,0.21035924208613285 + 0.1467626631737398,0.09452050033904591 + 0.056194379655986504,0.030840129438290835 + 0.01562413362019238,0.007306882745280764 + 0.0031544581746000672,0.0012571116468828236 + 0.0004624655301453643,0.00015705122480238025 + +