]> web.ist.utl.pt Git - iaed.git/commitdiff
Adding ex7, ex8 and ex9 for aula02.
authorAlexandre P Francisco <aplf@ist.utl.pt>
Tue, 11 Mar 2014 21:53:34 +0000 (21:53 +0000)
committerAlexandre P Francisco <aplf@ist.utl.pt>
Tue, 11 Mar 2014 21:53:34 +0000 (21:53 +0000)
aula02/ex7.c [new file with mode: 0644]
aula02/ex8.c [new file with mode: 0644]
aula02/ex9.c [new file with mode: 0644]

diff --git a/aula02/ex7.c b/aula02/ex7.c
new file mode 100644 (file)
index 0000000..3704415
--- /dev/null
@@ -0,0 +1,49 @@
+#include <stdio.h>
+
+float imc(float peso, float altura);
+void escreveCategoria(float imc);
+float pesoMinimo(float altura);
+float pesoMaximo (float altura);
+
+int main() {
+  float h, w;
+
+  printf("Altura: ");
+  scanf("%f", &h);
+  printf("Peso: ");
+  scanf("%f", &w);
+
+  escreveCategoria(imc(w, h));
+
+  printf("Normal: %.2f < peso < %.2f\n",
+      pesoMinimo(h),
+      pesoMaximo(h));
+
+  return 0;
+}
+
+float imc(float peso, float altura) {
+  return peso / (altura*altura);
+}
+
+void escreveCategoria(float imc) {
+
+  printf("Categoria (IMC %f): ", imc);
+
+  if (imc < 19) printf("Magro");
+  else if (imc <= 25) printf("Normal");
+  else if (imc <= 30) printf("Excesso de peso");
+  else if (imc <= 40) printf("Obeso");
+  else printf("Obesidade Mórbida");
+  
+  printf("\n");
+}
+
+float pesoMinimo(float altura) {
+  return 19*altura*altura;
+}
+
+float pesoMaximo (float altura) {
+  return 25*altura*altura;
+}
+
diff --git a/aula02/ex8.c b/aula02/ex8.c
new file mode 100644 (file)
index 0000000..2583d6a
--- /dev/null
@@ -0,0 +1,15 @@
+#include <stdio.h>
+
+int main() {
+  int n, i, j;
+
+  scanf("%d", &n);
+
+  for (i = 1; i <= n; i++) {
+    for (j = 0; j < n; j++)
+      printf(" %3d", i + j);
+    printf("\n");
+  }
+
+  return 0;
+}
diff --git a/aula02/ex9.c b/aula02/ex9.c
new file mode 100644 (file)
index 0000000..9be562e
--- /dev/null
@@ -0,0 +1,48 @@
+#include <stdio.h>
+
+#define SPACE 2
+
+void piramide (int N);
+void escreveCaracter(char c, int n);
+void escreveNumerosAsc(int a, int b);
+void escreveNumerosDesc(int a, int b);
+
+int main() {
+  int n;
+
+  do {
+    printf("Número: ");
+    scanf("%d", &n);
+  } while (n < 2);
+
+  piramide(n);
+
+  return 0;
+}
+
+void piramide (int N) {
+    int i;
+
+    for (i = 1; i <= N; i++) {
+      escreveCaracter(' ', (SPACE + 1)*(N - i));
+      escreveNumerosAsc(1, i);
+      escreveNumerosDesc(i - 1, 1);
+      putchar('\n');
+    }
+}
+
+void escreveCaracter(char c, int n) {
+  while (n--)
+    putchar(c);
+}
+
+void escreveNumerosAsc(int a, int b) {
+  while (a <= b)
+    printf(" %*d", SPACE, a++);
+}
+
+void escreveNumerosDesc(int a, int b) {
+  while (a >= b)
+    printf(" %*d", SPACE, a--);
+}
+