summaryrefslogtreecommitdiff
path: root/resources/es3.md
diff options
context:
space:
mode:
Diffstat (limited to 'resources/es3.md')
-rw-r--r--resources/es3.md70
1 files changed, 70 insertions, 0 deletions
diff --git a/resources/es3.md b/resources/es3.md
new file mode 100644
index 0000000..4f38f0c
--- /dev/null
+++ b/resources/es3.md
@@ -0,0 +1,70 @@
+ESERCIZIO 3
+
+Generare codice intermedio per il seguente frammento di Python:
+
+ * costanti intere e booleane
+ * le espressioni sono solo espressioni aritmetiche (operatori +,-,*,/,% ; / e` la
+ divisione intera); espressioni booleane (and, or, not); espressioni di confronto
+ (>,<, >=, <=, !=, ==)
+ * i comandi sono (a) assegnamento (unico formato possibile "a = exp"),
+ (b) condizionale, (c) invocazione di funzioni, (d) blocchi, ma senza dichiarazioni di
+ funzioni [quindi non ci sono funzioni annidate]
+ * ci sono funzioni ricorsive ma non mutuamente ricorsive
+ * ATTENZIONE: e` possibile accedere a variabili non locali.
+
+
+ESEMPI DI CODICI DA VERIFICARE
+
+def prime_num(num, div):
+ if (num >=1):
+ if (div*div <= num/2):
+ if (num % div) == 0:
+ return False
+ else:
+ return prime_num(num,div+1)
+ else:
+ return True
+ else:
+ return False
+
+print(prime_num(29,2))
+
+=====
+
+num = 29
+
+def prime_numBIS(div):
+ if (num >=1):
+ if (div*div <= num/2):
+ if (num % div) == 0:
+ return False
+ else:
+ return prime_numBIS(div+1)
+ else:
+ return True
+ else:
+ return False
+
+print(prime_numBIS(2))
+
+=====
+
+def fibonacci(n):
+ if ((n == 0) or (n == 1)):
+ return 1
+ else:
+ return (fibonacci(n-1) + fibonacci(n-2))
+
+print(fibonacci(6))
+
+=====
+
+def fibonacciIT(n,a,b):
+ if ((n == 0) or (n == 1)):
+ return a
+ else:
+ return (fibonacciIT(n-1, a+b, a))
+
+print(fibonacciIT(6,1,1))
+
+=====