программирование и алгоритмизация. 4 вариант. Встроенные типы данных 2
Скачать 173.77 Kb.
|
ОглавлениеВстроенные типы данных 2 Задание 2 7 Задание 3 10 Задание 4 13 Список литературы 15 Теоретическая часть Встроенные типы данныхОчень важной особенностью Python является то, что это язык с динамическим контролем типа, в котором переменные во время выполнения программы могут представлять значения различных типов. Это реализовано так, что переменные, используемые в программе, – это только метки для различных величин и объектов. Оператор присваивания просто создает связь между именем и значением. В этом состоит одно из отличий данного языка, например, от С, в котором имена представлены объектами с постоянным размером и размещением в памяти, где находятся результаты. Все данные в Python представлены объектами. Имена являются лишь ссылками на эти объекты и не несут нагрузки по декларации типа. Значения встроенных типов имеют специальную поддержку в синтаксисе языка: можно записать литерал строки, числа, списка, кортежа, словаря (и их разновидностей). Синтаксическую же поддержку операций над встроенными типами можно легко сделать доступной и для объектов определяемых пользователями классов. Карта встроенных типов 1. Специальные типы: None, NotImplemented и Ellipsis; 2. Числа: 1) целые: обычное целое int; целое произвольной точности long; логическое bool; 2) число с плавающей точкой float; 3) комплексное число complex. 3. Последовательности: 1) неизменчивые: строка str; Unicode-строка Unicod; кортеж tuple; 2) изменчивые: список list; отображения; словарь dict. 4. Объекты, которые можно вызвать: 1) функции (пользовательские и встроенные); 2) функции-генераторы; 3) методы (пользовательские и встроенные); 4) классы (новые и «классические»); 5) экземпляры классов (если имеют метод _call_). 5. Модули. 6. Файлы file. 7. Вспомогательные типы buffer, slice. Узнать тип любого объекта можно с помощью встроенной функции type(). Дадим краткое описание типов данных. Тип int и long Два типа: int (целые числа) и long (целые произвольной точности) – служат моделью для представления целых чисел. Первый соответствует типу long в компиляторе С для используемой архитектуры. 10 Числовые литералы можно записать в системах счисления с основанием 8, 10 или 16. Тип float Соответствует С-типу double для используемой архитектуры. Записывается вполне традиционным способом либо через точку, либо в нотации с экспонентой. Тип bool Подтип целочисленного типа для канонического обозначения логических величин. Два значения: True(истина) и False(ложь) Тип string и тип Unicode В Python строки бывают двух типов: обычные и Unicode-строки. Фактически строка – это последовательность символов (в случае обычных строк можно сказать «последовательность байтов»). Строки-константы можно задать в программе с помощью строковых литералов. Для литералов наравне используются как апострофы «'», так и обычные двойные кавычки «"». Для многострочных литералов можно использовать утроенные апострофы или утроенные кавычки. Управляющие последовательности внутри строковых литералов задаются обратной косой чертой (\) Тип tuple Для представления константной последовательности (разнородных) объектов используется тип кортеж. Литерал кортежа обычно записывается в круглых скобках, но можно, если не возникают неоднозначности, писать и без них. Тип list В «чистом» Python нет массивов с произвольным типом элемента. Вместо них используются списки. Их можно задать с помощью литералов, записываемых в квадратных скобках, или посредством списковых включений. Тип dict Словарь (хэш, ассоциативный массив) – это изменчивая структура данных для хранения пар ключ-значение, где значение однозначно определяется ключом. В качестве ключа может выступать неизменчивый тип данных (число, строка, кортеж и т. п.). Порядок пар ключ-значение произволен. Тип file Объекты этого типа предназначены для работы с внешними данными. В простом случае – это файл на диске. Практическая часть Задание 1.Составить схему линейного алгоритма вычисления значения: Для начала построения блок-схемы алгоритма опишем последовательность действий, необходимых для решения данной задачи: начало ввод числа b вычисление a вычисление x вычисление y вывод результата конец Блок-схема алгоритма. Рисунок 1 - Блок-схема к решению задачи 1
Текст программы. # Габур Василий Александрович # группа ГРдз-20-01 # 4 вариант import math # 1 задание значения переменной b b=0.47 # 2 вычисление a a=2.35*math.log(b) # 3 вычисление x x=math.pow((math.pow(a,2)+math.pow(b,2)),1/4) # 4 вычисление y y=math.sin(x)+x*math.exp(x+2) # 5 вывод значения y print("y = ",y) Результат работы программы. Рисунок 2 - Результат работы программы задания 1. Задание 2Составить программу циклического алгоритма для вычисления значения: Описание алгоритма: 1. присваиваем переменным x,dx, xk начальные значения 2. вычисляем значение 3. вычисляем z 4. выводим на экран z и x 5. увеличиваем x на dx 6. если x меньше или равно xk то переход на п.2 Блок-схема алгоритма Рисунок 3 - Блок-схема задачи 2
Текст программы # Габур Василий Александрович # группа ГРдз-20-01 # 4 вариант import math # 1 ввод начальных значений dx=0.4 x=5.2 xk=7.2 print(' x y') # 2 пока x меньше xk while (x<=xk+dx): # 3 вычисляем b b=math.pow((10/(math.pi*x)),1/3) # 4 вычисляем z z=math.sin(math.sqrt(x-3.2))+math.pow(b,x) # 5 вывод x,z print('%4.1f | %4.3f'%(x,z)) # 6 следующая точка интервала x+=dx # 7 возврат на 2 Результат работы программы. Рисунок 4 - Результат работы 2 задания Задание 3Составить программу разветвляющего алгоритма для вычисления значения: Описание алгоритма: 1. присваиваем переменным a и b начальные значения 2. вычисляем значение x=math.exp(b)+b*math.sin(a)-math.exp(a) 3. если то y=0 4. если то y= y=1.53*x*x 5. если то y= y=x+math.log(x*a) 6. если то y=x/((math.sqrt(x+2.3*a))) 7. вывод y Блок-схема алгоритма Рисунок 5 - Блок-схема задачи 3
Текст программы # Габур Василий Александрович # группа ГРдз-20-01 # 4 вариант import math # 1 ввод начальных значений, a=1.25 b=0.32 # 2 вычисляем x x=math.exp(b)+b*math.sin(a)-math.exp(a) # 3 если x=0 if (x==0): y=0 # 4 если x<0 elif (x<0): y=1.53*x*x # 5 если x>0 x<7.3 elif(0 y=x+math.log(x*a) # 6 если x>=7.3 elif (x>=7.3): y=x/((math.sqrt(x+2.3*a))) # 7 печать y print('y = ', y) Результат работы Рисунок 6 – Результат Задание 4Обработка одномерных массивов Дан одномерный массив из 10 целых чисел. В массиве вставить элемент равный 50 перед максимальным элементом. Алгоритм работы программы. Заполнить массив случайными числами Вывести на экран Найти максимальный элемент Вставить перед ним число 50 Вывести на экран Блок-схема алгоритма Рисунок 7 - Блок-схема задания 4
Текст программы # Габур Василий Александрович # группа ГРдз-20-01 # 4 вариант import random from random import randint # 1 заполнение списка A=[randint(1,100) for i in range(10)] # 2 вывод на экран print ('Исходный список \n',A) # 3 поиск индекса максимального элемента p=A.index(max(A)) # 4 вставка 50 A.insert(p,50) # 5 вывод на экран print ('Преобразованный список \n',A) Рисунок 8 - результат работы программы Список литературыБэрри, Пол Изучаем программирование на Python / Пол Бэрри. - М.: Эксмо, 2016. - 332 c. Васильев, А. Н. Python на примерах. Практический курс по программированию / А.Н. Васильев. - М.: Наука и техника, 2016. - 432 c. Гуриков, С.Р. Основы алгоритмизации и программирования на Python / С.Р. Гуриков. - М.: Форум, 2018. - 991 c. |