forked from petro-ew/test1
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathzadachi.txt
225 lines (159 loc) · 22.6 KB
/
zadachi.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
#=======================================================
#Задачи на 30.01.2013
#=======================================================
1+. список квадратов
#=======================================================
#Задачи на 30.01.2013
#=======================================================
2+. два списка л1 и л2
возможно различной длины n и m
сделать л3 такой что у нег 1й элемент равен первому элементу из списка л1 , а второй элемент равен первому элементу из списка л2 и тд
после окончания одного из списка , следуют оставшиеся элементы из другого списка ...
3+. вложенный список - прочитать.
4+. написать функцию, которая решает квадратное уравнение.
аргументы функции коэффициэнты функци абц
корни возвращал в виде списка .
если корней нет - в виде пустого списка
если корень 1 то список из 1 элемента
если 2 корня возвращаем из двух элементов , которые равны корням , первым идет меньший корень.
5+. есть л1 состоящий уникальных элементов
есть л2 тоже из уникальных элементов
получить список л3 состоящих из всех элементов входящих в оба списка одновременно.
6+. словари - прочитать
7+. список д1 состоящий из пары имя - значение.
построить словарь д2, такой что у него ключи и значения поменяны местами по отношению к словарю д1.
#=======================================================
#Задачи на 01.02.2013
#=======================================================
8+. Имеются два списка с уникальными элементами, l1 и l2. Построить список l3 такой, что каждый из его элементов входит в l1 или l2, но не в оба сразу. Пример:
l1 = [1, 3, 5]
l2 = [2, 5, 7]
Ответ: l3 = [1, 3, 2, 7] (можно в любом другом порядке)
9+. В словаре d значениями являются целые числа. Вывести на экран все пары ключ:значение из d в порядке возрастания значений. Пример:
d = {'aaa':5, 'ddd':2, 'qqq':3}
Вывод программы:
'ddd':2
'qqq':3
'aaa':5
10+. Программа запрашивает натуральное число n. Выводит список всех простых чисел, меньших либо равных n.
11+. Программа запрашивает два целых числа a и b. Найти и вывести на экран наибольший общий делитель a и b.
12+. Программа запрашивает натуральное число n. Вывести все тройки чисел a, b, c такие что a<=n, b<=n, c<=n и a**2 + b**2 равно c**2
13+. Написать функцию, возвращающую сумму квадратов элемента списка.
14+. Написать функцию, возвращающую минимальный и максимальный элемент списка в виде кортежа из двух элементов.
15+. Написать функцию, принимающую в качестве аргумента список и возвращающую список такой же длины, построенный по следующему принципу:
Первый элемент списка = первый элемент аргумента
Второй элемент списка = последний элемент аргумента
Третий элемент списка = второй элемент списка
Четвертый элемент списка = предпоследний элемент списка
и так далее
Пример к 15-й задаче:
Аргумент: [1,2,3,4,5]
Результат: [1,5,2,4,3]
#=======================================================
# Задачи на 04-02-2013
#=======================================================
16+. Написать функцию, возвращающую сумму кубов элемента списка. Список передается функции в качестве параметра.
17+. Написать функцию, возвращающую минимальный и максимальный элемент списка в виде кортежа из двух элементов. Не использовать стандартные функции min и max, а также другие библиотечные функции для решения целевой задачи. Список передается функции в качестве параметра.
18+. Написать функцию, берущую в качестве параметра список строк, и возвращающую словарь, в котором ключ - строка из этого списка, а значение - сколько раз она встречалась в списке.
Пример: ['aaa', 'bb', 'c', 'cc', 'aaa', 'c', 'aaa'] -> {'bb':1, 'aaa':3, 'c':2, 'cc':1 }
19+. Написать функцию, берущую в качестве параметра список уникальных строк, и возвращающую список всех пар строк (в виде кортежа), таких, что первая строка пары представляет собой вторую строку, записанную задом наперед.
Пример: ['ab', 'bac', 'sss', 'cab', 'ex', 'ba'] -> [('ab', 'ba'), ('bac', 'cab')]
20. Написать функцию, берущую в качестве параметра натуральное число n, и возвращающую список из n первых чисел Фибоначчи.
21+. Написать функцию, берущую в качестве параметра натуральное число n и кортеж из трех натуральных чисел k = (k1, k2, k3). Функция возвращает True, если n можно представить в виде суммы от одного до трех чисел из k, и False в противном случае.
Пример:
n = 5 k = (5, 10, 100) -> True (5 == 5)
n = 3 k = (1, 1, 1) -> True (1 + 1 + 1 == 3)
n = 10 k = (8, 2, 1) -> True (8 + 2 == 10)
n = 7 k = (3, 2, 3) -> False
#=======================================================
# Задачи на 07-02-2013
#=======================================================
22+. Решить задачу 19, используя множества вместо списков для возвращения результата и хранения промежуточных данных.
23+. Написать функцию, берущую в качестве аргумента строку из двух слов, разделенных пробелом, и возвращающую строку, состоящую из тех же слов, поменяных местами.
Пример: "Дмитрий Платонов" -> "Платонов Дмитрий"
24+. Написать функцию, берущую в качестве аргумента строку из слов, разделенных пробелами, и возврашающую число слов в строке.
25+. Написать функцию, берущую в качестве аргумента строку, и возвращающую новую строку, в которой добавлены пробелы после знаков препинания (. , : ; ? !), если их там нет.
Пример: "Вставай,проклятьем заклейменный" -> "Вставай, проклятьем заклейменный"
26+. Написать функцию, берущую в качестве аргумента три целых числа (день, месяяц, год), и возвращающую строку даты с разделителем "/". Решить двумя вариантами - с использованием оператора "%" и метода format.
Пример: 7, 2, 2013 -> "07/02/2013"
27. Написать функцию, берущую в качестве аргумента число с плавающей точкой f и целое число n, и возвращающую строковое представление f с n знаками после запятой.
Пример: 3.14159, 2 -> "3.14"
#=======================================================
# Задачи на 08-02-2013
#=======================================================
28+. Написать функцию, которая считает попугаев. В качестве аргумента она получает число от 1 до 99, а возвращает строку с числом попугаев.
Примеры:
42 -> "42 попугая"
1 -> "1 попугай"
13 -> "13 попугаев"
29+. Написать функцию, которая получает в качестве аргумента число от 1 до 99, а возвращает его строковое представление.
Пример: 56 -> "пятьдесят шесть"
30+. Написать функцию, которая получает в качестве аргумента строку, и возвращает её же, но с удаленными комментариями. Комментарий - это все, что находится между символами "/*" и "*/", включая сами эти символы.
Пример: "x += 1; /* увеличиваем x на 1 */ x /= 2; /* и делим пополам */" -> "x +=1; x /= 2; "
#=======================================================
# Задачи на 11-02-2013
#=======================================================
31+. Написать функцию, которая получает в качетве аргумента строку, а возвращает список уникальных символов, отсортированный от наиболее часто встречающихся к наимее часто встречающимся.
Пример: "adbadiadaidbddica" -> ['d', 'a', 'i', 'b', 'c']
32+. Написать функцию, получающую в качестве аргумента строку, и выводящую на экран слова в столбик с выравниванием по правому краю и шириной поля 10 символов.
Пример:
аргумент: "Движенья нет сказал мудрец брадатый"
вывод:
Движенья
нет
сказал
мудрец
брадатый
33+. Написать функцию, получающую в качестве аргумента строку, и возвращающую ту же строку, в которой в каждом слове символы переставлены в случайном порядке.
34+. То же, что и задача 33, но первую и последнюю букву каждого слова оставить на своих местах.
35+. Написать функцию, получающую в качестве аргумента целое число x, и возвращающую строковое представление x в двоичной системе счисления.
36+. Написать функцию, получающую в качестве аргумента два числа x и y (причем x>y), и выводящую на экран, насколько x больше y в процентах. Вывод осуществлять с одним знаком после запятой, корректно проводить округление.
Примеры:
аргументы: 10, 5
вывод:
x больше y на 100.0%
аргументы: 20009, 10000
вывод:
x больше y на 100.1%
37+. Написать функцию, получающую в качестве аргумента список чисел с плавующей точкой и вовращающую среднее арифметическое этого списка.
38+. Написать функцию, получающую в качестве аргумента список чисел с плавующей точкой и целое число n вовращающую список состоящий из скользящих средних шириной n
l1 = [3.0, 5.0, 7.0, 9.0, 2.0, 11.0 ]
n = 2
ответ:
[4.0, 6.0, 8.0, 5.5, 6.5]
#=======================================================
# Задачи на 13-02-2013
#=======================================================
39+. Написать функцию, получающую в качестве аргумента список, элементами которого также являются списки. Вернуть список, состоящий из элементов первого подстписка, затем второго, третьего и т.д.
Пример:
[[1, 2, 3, 4], [5, 6], [7, 8, 9]] -> [1, 2, 3, 4, 5, 6, 7, 8, 9]
40+. Написать функцию, получающую в качестве аргументов две строки a и b, и возвращающую строку, в которой сначала идет первая буква из a, потом первая буква из b и т.д. Если одна из строк длинее другой, но "непарные" символы просто добавить в конец возвращаемого значения.
Пример:
"abcdef", "xyz" -> "axbyczdef"
41+. Написать программу, считывающую текстовой файл и выводящую 20 самых часто встречающихся в нем слов. Слово - это последовательность символов, не содержащая разделителей. Разделители - это символы в данной строке: " .,:;-?!\n". Имя файла передается в качестве парамтра командной строки.
42+. Написать функцию, получающую в качестве аргумента список целых чисел, и возвращающую список из всех пар взаимно простых чисел из этого списка. Взаимно простые числа это числа, у которых нет общих делителей, кроме 1.
Пример: [2, 6, 7, 12] -> [(2, 7), (6,7), (7, 12)]
#=======================================================
# Задачи на 14-02-2013
#=======================================================
43+. Написать функцию, получающую два аргумента - имя файла и строку s, и выводящую на экран все строки из файла, в которые содержат s в качестве подстроки.
44+. Написать функцию, получающую в качестве аргумента натуральное число n и возвращающую список всех простых делителей n.
45. Написать функцию, получающую в качестве аргумента список целых чисел l длиной k и возвращающую список всех списков, которые можно получить из l удалением от 1 до k элементов.
Пример: [1, 2, 3] -> [[], [1], [2], [3], [1,2], [1,3], [2,3]]
46+. Написать функцию, получающую в качестве агрумента список, элементами которого являются либо целые числа, либо списки, которые, в свою очередь, имеют аналогичную структуру. Вернуть количество целых чисел во всех списках.
Пример: [[[], 1, [2]], [3, 4, [5, 6]], 7, 8] -> 8
#=======================================================
# Задачи на 18-02-2013
#=======================================================
47. Написать функцию, получающую в качестве аргумента список чисел, и возвращающую сумму элементов списка. Использвать рекурсию.
48. Задача 7.3.3 из книги "Программирование. Теоремы и задачи".
49. Задача 7.3.4 из книги "Программирование. Теоремы и задачи".
50. Решить задачу №24, используя рекурсию, и не используя стандартных функций и методов.
51. Написать функцию, получающую в качестве аргумента два целых числа a и b и возвращающую остаток от деления a на b. Использовать только рекурсию, операции сложения и вычитания, присваивание, операции сравнения (<, >, ==, <=, >=, !=) и условный оператор if.
#=======================================================
# Задачи на 28-02-2013
#=======================================================
52. Реализовать класс Account, представляющий собой банковский счет. В классе должны быть четыре атрибута: ФИО владельца, номер счета, процент начисления и сумма в рублях. Необходимо реализовать следующие операции: сменить владельца счета, снять некоторую сумму денег со счета (проверять, что достаточно денег для снятия, в противном случае генерировать исключение), положить деньги на счет, начислить проценты, вывести на экран значения атрибутов.
53. Создать класс Vector3D. 3 атрибута - координаты x, y и z. Реализовать сложение и вычитание векторов, умножение векторов (скалярное и векторное), умножение вектора на число, вычисление модуля вектора.
54. Одна запись в списке запланированных дел представляет собой экземпляр класса Dailytem, который содержит время начала и окончания работы, описание и признак выполнения. Реализовать класс DailySchedule, представляющий собой план работ на день. Реализовать методы добавления, удаления и изменения планируемой работы. При добавлении проверять корректность временных рамок (они не должны пересекаться с уже запланированными мероприятиями). В случае попытки добваить мероприятие, пересекающееся по времени с уже запралинованными, генерировать исключение. Реализовать метод поиска свободного промежутка времени. Условие поиска задает размер искомого интервала, а также временные рамки, в которые он должен попадать. Метод поиска возвращает экземпляр класса Dailytem с пустым описанием вида работ.Реализовать метод Redo (еще раз), возвращающий список дел, не выполненных в течении дня.
55. Товарный чек содержит список товаров, купленных покупателем в магазине. Один элемент списка представляет собой пару: товар-сумма. Товар — это экземпляр класса Goods с атрибутами кода и наименования товара, цены за единицу товара, количества покупаемых единиц товара. В классе должны быть реализованы методы доступа к полям для получения и изменения информации, а также метод вычисления суммы оплаты за товар. Для моделирования товарного чека реализовать класс Receipt, атрибутами которого являются номер товарного чека, дата и время его создания, список покупаемых товаров. В классе Receipt реализовать методы добавления, изменения и удаления записи о покупаемом товаре, метод поиска информации об определенном виде товара по его коду, а также метод подсчета общей суммы, на которую были осуществлены покупки. Методы добавления и изменения принимают в качестве аргумента экземпляр класса Goods. Метод поиска возвращает экземпляр класса Goods в качестве результата.