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