Skip to content

Commit 6ab6a73

Browse files
authored
Update Ricorsione.py
1 parent 903f493 commit 6ab6a73

File tree

1 file changed

+346
-2
lines changed

1 file changed

+346
-2
lines changed

Python/Esercizi/Ricorsione.py

Lines changed: 346 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,349 @@
1+
#%% es_1
12
"""
2-
Autor: Rurik
3+
Scrivere una funzione ricorsiva che, data una stringa s, restituisce vero se la
4+
stringa contiene solo coppie consecutive formate da una cifra numerica e un
5+
carattere alfabetico; falso altrimenti.
6+
"""
7+
8+
# @trace
9+
def ex1(s):
10+
pass
11+
12+
13+
14+
15+
16+
# ex1.trace("3d4f2g")
17+
print(ex1("3d4f2g"))
18+
19+
20+
#%% es_2
21+
"""
22+
Scrivere una funzione ricorsiva booleana che, data una stringa s, una stringa c
23+
di lunghezza 1, e un intero n, restituisce il valore vero se c è presente ALMENO
24+
n volte nella stringa s, falso altrimenti.
25+
"""
26+
27+
# @trace
28+
def ex2(s, c, n):
29+
pass
30+
31+
32+
# ex2.trace("trentatre trentini", "t", 4)
33+
print(ex2("trentatre trentini", "t", 4))
34+
35+
36+
#%% es_3
37+
"""
38+
Scrivere una funzione ricorsiva che data una stringa s restituisca la stringa
39+
ottenuta da s eliminando le vocali. Ad esempio l’invocazione eliminaVocali
40+
(‘pippo’) deve restituire la stringa ‘ppp’.
41+
"""
42+
43+
# @trace
44+
def ex3(s):
45+
pass
46+
47+
48+
# ex3.trace("trentatre")
49+
print(ex3("trentatre trentini"))
50+
51+
52+
#%% es_4
53+
"""
54+
Scrivere una funzione ricorsiva che, data una stringa s, restituisce come
55+
risultato una stringa ottenuta elimanando da s tutti i caratteri ripetuti
56+
consecutivamente, tranne il primo.
57+
Es: se s = ‘aaabbcccc’ la funzione deve restituire ‘abc’;
58+
se s = ‘ababcc’ la funzione deve restituire ‘ababc’.
59+
"""
60+
# @trace
61+
def ex4(s):
62+
pass
63+
64+
65+
# ex4.trace("aaabbcccc")
66+
print(ex4("aaabbcccc"))
67+
68+
69+
#%% es_5
70+
"""
71+
Scrivere una funzione ricorsiva che data una lista di interi l restituisce la
72+
somma dei soli numeri pari.
73+
"""
74+
75+
# @trace
76+
def ex5(l):
77+
pass
78+
79+
80+
# ex5.trace([1, 2, 3, 4, 5, 6, 7, 8])
81+
print(ex5([1, 2, 3, 4, 5, 6, 7, 8]))
82+
83+
84+
#%% es_6
85+
"""
86+
Scrivere una funzione ricorsiva che, data una lista di numeri interi (positivi
87+
o negativi), restituisce come risultato il valore vero se la somma dei numeri
88+
contenuti nella lista è un valori pari, falso altrimenti. Se la lista è vuota,
89+
la funzione restituisce il valore vero.
90+
"""
91+
92+
# @trace
93+
def ex6(l):
94+
pass
95+
96+
# ex6.trace([-2, -3, 4, 5])
97+
print(ex6([-2, -3, 4, 5]))
98+
99+
#%% speciale
100+
"""
101+
somma interi della lista
102+
"""
103+
def ex(lista):
104+
pass
105+
106+
print(ex([-2, -3, 4, 5]))
107+
108+
#%% speciale
109+
"""
110+
somma interi della lista
111+
"""
112+
def ex(lista):
113+
pass
114+
115+
print(ex([-2, -3, 4, 5]))
116+
117+
#%% es_7
118+
"""
119+
Scrivere un funzione ricorsiva che data una stringa s controlli se la stringa
120+
è palindroma.
121+
"""
122+
123+
# @trace
124+
def ex7(s):
125+
pass
126+
127+
# ex7.trace("abmba")
128+
print(ex7("abmba"))
129+
130+
131+
#%% es_8
132+
"""
133+
Scrivere una funzione ricorsiva che, dato una lista di interi l, restituisca
134+
una nuova lista di interi ottenuto da l sostituendo ogni numero negativo con 0.
135+
Ad esempio l’invocazione ex8([1,-2, 3, 4,-5]), deve restituire l’array [1, 0, 3, 4, 0].
136+
"""
137+
138+
# @trace
139+
def ex8(l):
140+
pass
141+
142+
# ex8.trace()
143+
print(ex8([1,-2, 3, 4,-5]))
144+
145+
146+
#%% es_9
147+
"""
148+
Scrivere una funzione ricorsiva che data una stringa s, restituisca una stringa
149+
costituita dai caratteri di s invertiti. Ad esempio l’invocazione ex9(‘pippo’)
150+
deve restituire la stringa ‘oppip’.
151+
"""
152+
153+
# @trace
154+
def ex9(s):
155+
pass
156+
157+
158+
# ex9.trace("pippo")
159+
print(ex9("pippo"))
160+
161+
162+
#%% es_10
163+
"""
164+
Scrivere una funzione ricorsiva che data un stringa s, restituisca una stringa
165+
ottenuta da s sostituendo ogni spazio bianco con il carattere underscore (‘_’).
166+
Ad esempio l’invocazione ex10(‘pippo e topolino’) deve restituire la
167+
stringa ‘pippo_e_topolino’.
168+
"""
169+
170+
# @trace
171+
def ex10(s):
172+
pass
173+
174+
175+
# ex10.trace("tua madre è leggenda")
176+
print(ex10("tua madre è leggenda"))
177+
178+
179+
#%% es_11
180+
"""
181+
Si definisca una funzione ricorsiva che, data una lista di stringhe e una
182+
stringa x di un carattere, restituisce true se almeno una di queste stringhe
183+
contiene il carattere specificato da x, e false altrimenti.
184+
"""
185+
186+
# @trace
187+
def ex11(l, x):
188+
pass
189+
190+
191+
# ex11.trace(["casa", "barca", "albero"], "o")
192+
print(ex11(["casa", "barca", "albero"], "o"))
193+
194+
195+
#%% es_12
196+
"""
197+
Si definisca una funzione ricorsiva che, data una lista di interi l, e un
198+
valore intero x, verifica che la lista goda della seguente proprietà:
199+
200+
Per ogni intero i < len(l)/2 : l[i] + l[len(l) - i - 1] = x
201+
202+
Nota: se la lista è di lunghezza dispari, il valore dell’elemento centrale è
203+
ininfluente.
204+
"""
205+
206+
# @trace
207+
def ex12(l, x):
208+
pass
209+
210+
211+
# ex12.trace([0, 1, 2, 3], 3)
212+
print(ex12([0, 1, 2, 3], 3))
213+
214+
215+
#%% es_13
216+
"""
217+
Si definisca una funzione ricorsiva che, data una lista l, un valore v e un
218+
intero k, restituisce true se il valore v è presente in tutte le posizioni
219+
della lista il cui indice è multiplo di k, e false altrimenti.
220+
"""
221+
222+
# @trace
223+
def ex13(l, v, k):
224+
pass
225+
226+
227+
# ex13.trace(["v", 3, "v", True, "v"])
228+
print(ex13(["v", 3, "v", True, "v"], 2, "v"))
229+
230+
231+
#%% es_14
232+
"""
233+
Scrivere una funzione ricorsiva che data una lista di interi restituisce la
234+
lista ordinata dall’elemento più piccolo a quello più grande.
235+
"""
236+
237+
# @trace
238+
def ex14(l):
239+
pass
240+
241+
242+
# ex14.trace([1, 4, 2, 5, 3, 4])
243+
print(ex14([1, 4, 2, 5, 3, 4]))
244+
245+
246+
#%% es_15
247+
"""
248+
Assegnato una lista l di float, scrivere una funzione ricorsiva che calcoli il
249+
massimo valore tra la somma di ogni elemento con il successivo (escluso l’ultimo)
250+
"""
251+
252+
# @trace
253+
def ex15(l):
254+
pass
255+
256+
257+
# ex15.trace([5.1, 7.2, 3.5, 2.4])
258+
print(ex15([5.1, 7.2, 3.5, 2.4]))
259+
260+
261+
#%% es_16
262+
"""
263+
Assegnata una stringa S ed un carattere c, scrivere una funzione ricorsiva che
264+
calcoli le occorrenze di c in S
265+
"""
266+
267+
# @trace
268+
def ex16(s, c):
269+
pass
270+
271+
272+
# ex16.trace("trentatre trentini", "t")
273+
print(ex16("trentatre trentini", "t"))
274+
275+
276+
#%% es_17
277+
"""
278+
Sia assegnato una lista l di interi. Scrivere una funzione ricorsiva che
279+
calcoli il massimo valore degli elementi di l.
280+
"""
281+
282+
# @trace
283+
def ex17(l):
284+
pass
285+
286+
287+
288+
# ex17.trace([4, -7, 15, -1, 32, 0])
289+
print(ex17([4, -7, 15, -1, 32, 0]))
290+
291+
292+
#%% es_18
293+
"""
294+
Definire una funzione ricorsiva che data una stringa s resituisce vero se la
295+
stringa e composta dallo stesso numero di caratteri numerici e alfabetici
296+
falso altrimenti
297+
"""
298+
299+
# @trace
300+
def ex18(s): # senza contatori
301+
pass
302+
303+
# ex18.trace("a2bct45m23")
304+
print(ex18("a2bct45m23"))
305+
306+
307+
#%% es_19
308+
"""
309+
Scrivere una funzione ricorsiva che, assegnati due interi N1 ed N2, restituisca
310+
la somma di tutti gli interi strettamente compresi tra N1 ed N2
311+
"""
312+
313+
# @trace
314+
def ex19(n1, n2):
315+
pass
316+
317+
318+
# ex19.trace(5, 10)
319+
print(ex19(5, 10))
320+
321+
322+
#%% es_20
323+
"""
324+
Scrivere e una funzione ricorsiva che stampi il contenuto di una lista.
325+
"""
326+
327+
# @trace
328+
def ex20(l):
329+
pass
330+
331+
332+
# ex20.trace("[1, "x", True, [3, 4]")
333+
print(ex20([1, "x", True, [3, 4]]))
334+
335+
336+
#%% es_21
337+
"""
338+
Definire una funzione ricorsiva che data una stringa restituisca ogni elemento
339+
delle stringa diviso dagli altri da uno spazio. Es. ‘abcd’ diventa ‘a b c b’.
340+
"""
341+
342+
# @trace
343+
def ex21(s):
344+
pass
345+
3346

347+
# ex21.trace("abcd")
348+
print(ex21("abcd"))
4349

5-
"""

0 commit comments

Comments
 (0)