aboutsummaryrefslogtreecommitdiff
path: root/semestre 3/architecture des ordinateurs/tme/tme2/exo3
diff options
context:
space:
mode:
Diffstat (limited to 'semestre 3/architecture des ordinateurs/tme/tme2/exo3')
-rwxr-xr-xsemestre 3/architecture des ordinateurs/tme/tme2/exo3/q1bin0 -> 15480 bytes
-rw-r--r--semestre 3/architecture des ordinateurs/tme/tme2/exo3/q1.c23
2 files changed, 23 insertions, 0 deletions
diff --git a/semestre 3/architecture des ordinateurs/tme/tme2/exo3/q1 b/semestre 3/architecture des ordinateurs/tme/tme2/exo3/q1
new file mode 100755
index 0000000..7eeefe1
--- /dev/null
+++ b/semestre 3/architecture des ordinateurs/tme/tme2/exo3/q1
Binary files differ
diff --git a/semestre 3/architecture des ordinateurs/tme/tme2/exo3/q1.c b/semestre 3/architecture des ordinateurs/tme/tme2/exo3/q1.c
new file mode 100644
index 0000000..cac5209
--- /dev/null
+++ b/semestre 3/architecture des ordinateurs/tme/tme2/exo3/q1.c
@@ -0,0 +1,23 @@
+#include <stdio.h>
+float suite(int n){
+ if (n == 0) return 1;
+ return 2*suite(n-1)+1;
+}
+
+unsigned long long int suiteInt(int n){
+ if (n==0) return 1;
+ return 2*suiteInt(n-1)+1;
+}
+
+int main(){
+ float val = 1;
+ int i;
+ for (i = 0; i < 129 && val > 0; i++) {
+ val = suite(i);
+ printf("%d — %f\n", i, val);
+ printf("%d — %llu\n", i, suiteInt(i));
+ }
+ /* Le code déborde à partir de 127 avec la valeur "inf"
+ * À partir du 24, la suite devient impaire à cause d'un manque de précision des floats
+ * */
+}