]> web.ist.utl.pt Git - iaed.git/commitdiff
Adding ex{7,8,9,A,B} and sux.* in aula03.
authorAlexandre P Francisco <aplf@ist.utl.pt>
Thu, 13 Mar 2014 22:09:07 +0000 (22:09 +0000)
committerAlexandre P Francisco <aplf@ist.utl.pt>
Thu, 13 Mar 2014 22:09:07 +0000 (22:09 +0000)
aula03/Makefile
aula03/ex7.c [new file with mode: 0644]
aula03/ex8.c [new file with mode: 0644]
aula03/ex9.c [new file with mode: 0644]
aula03/exA.c [new file with mode: 0644]
aula03/exB.c [new file with mode: 0644]
aula03/sux.c [new file with mode: 0644]
aula03/sux.h [new file with mode: 0644]

index af3a0447bdb3f5b70e722583a278122daae8f127..a8dfe106d1409e77db0b34db378332dc2ebeffd0 100644 (file)
@@ -1,7 +1,8 @@
 CC=gcc
 CFLAGS=-Wall -ansi -pedantic
 
-EXECS=ex1 ex2 ex3 ex4 ex5 ex6
+EXECS=ex1 ex2 ex3 ex4 ex5 ex6 ex7 ex8 ex9 exA exB
+
 EX1OBJ=ex1.o aux.o
 EX2OBJ=ex2.o aux.o
 EX3OBJ=ex3.o aux.o
@@ -9,6 +10,12 @@ EX4OBJ=ex4.o aux.o
 EX5OBJ=ex5.o aux.o
 EX6OBJ=ex6.o aux.o
 
+EX7OBJ=ex7.o sux.o
+EX8OBJ=ex8.o sux.o
+EX9OBJ=ex9.o sux.o
+EXAOBJ=exA.o sux.o
+EXBOBJ=exB.o sux.o
+
 all: ${EXECS}
 
 ex1: ${EX1OBJ} aux.h
@@ -29,5 +36,20 @@ ex5: ${EX5OBJ} aux.h
 ex6: ${EX6OBJ} aux.h
        gcc ${CFLAGS} -o $@ ${EX6OBJ}
 
+ex7: ${EX7OBJ} sux.h
+       gcc ${CFLAGS} -o $@ ${EX7OBJ}
+
+ex8: ${EX8OBJ} sux.h
+       gcc ${CFLAGS} -o $@ ${EX8OBJ}
+
+ex9: ${EX9OBJ} sux.h
+       gcc ${CFLAGS} -o $@ ${EX9OBJ}
+
+exA: ${EXAOBJ} sux.h
+       gcc ${CFLAGS} -o $@ ${EXAOBJ}
+
+exB: ${EXBOBJ} sux.h
+       gcc ${CFLAGS} -o $@ ${EXBOBJ}
+
 clean:
        rm -f *.o ${EXECS}
diff --git a/aula03/ex7.c b/aula03/ex7.c
new file mode 100644 (file)
index 0000000..f1c3377
--- /dev/null
@@ -0,0 +1,21 @@
+#include <stdio.h>
+#include <string.h>
+#include "sux.h"
+
+int main() {
+  char s[STRMAXLEN];
+  int i = 0, j;
+
+  scanf("%s", s);
+  j = strlen(s) - 1;
+
+  for (; i < j && s[i] == s[j]; i++, j--);
+    
+  if (i < j)
+    printf("Não palíndromo.\n");
+  else
+    printf("Palíndromo!\n");
+
+  return 0;
+}
+
diff --git a/aula03/ex8.c b/aula03/ex8.c
new file mode 100644 (file)
index 0000000..1715db2
--- /dev/null
@@ -0,0 +1,11 @@
+#include <stdio.h>
+#include "sux.h"
+
+int main() {
+  char s[STRMAXLEN];
+
+  leLinha(s);
+  printf("%s\n", s);
+
+  return 0;
+}
diff --git a/aula03/ex9.c b/aula03/ex9.c
new file mode 100644 (file)
index 0000000..4831b5b
--- /dev/null
@@ -0,0 +1,23 @@
+#include <stdio.h>
+#include "sux.h"
+
+void maiusculas(char s[]);
+
+int main() {
+  char s[STRMAXLEN];
+
+  leLinha(s);
+  maiusculas(s);
+  printf("%s\n", s);
+
+  return 0;
+}
+
+void maiusculas(char s[]) {
+  int i = 0;
+
+  for (; s[i] != '\0'; i++)
+    if (s[i] >= 'a' && s[i] <= 'z')
+      s[i] -= 'a' - 'A';
+}
+
diff --git a/aula03/exA.c b/aula03/exA.c
new file mode 100644 (file)
index 0000000..bcbae1e
--- /dev/null
@@ -0,0 +1,27 @@
+#include <stdio.h>
+#include "sux.h"
+
+void apagaCaracter(char s[], char c);
+
+int main() {
+  char s[STRMAXLEN], c;
+
+  c = getchar();
+  getchar(); /* Le o '\n' */
+  leLinha(s);
+  apagaCaracter(s, c);
+  printf("%s\n", s);
+
+  return 0;
+}
+
+void apagaCaracter(char s[], char c)
+{
+  int i, j;
+
+  for (i = j = 0; s[j] != '\0'; j++)
+    if (s[j] != c) 
+      s[i++] = s[j];
+
+  s[i] = s[j];
+}
diff --git a/aula03/exB.c b/aula03/exB.c
new file mode 100644 (file)
index 0000000..0356035
--- /dev/null
@@ -0,0 +1,23 @@
+#include <stdio.h>
+#include <string.h>
+#include "sux.h"
+
+int main() {
+  char s[STRMAXLEN];
+  int dc[10], k;
+
+  for (k = 0; k < 10; k++)
+    dc[k] = 0;
+
+  k = leLinha(s);
+
+  while (k--)
+    if (s[k] >= '0' && s[k] <= '9')
+      dc[s[k] - '0'] ++;
+
+  for (k = 0; k < 10; k++)
+    printf("%d: %d\n", k, dc[k]);
+
+  return 0;
+}
+
diff --git a/aula03/sux.c b/aula03/sux.c
new file mode 100644 (file)
index 0000000..3b12ab5
--- /dev/null
@@ -0,0 +1,11 @@
+#include <stdio.h>
+
+int leLinha(char s[]) {
+  int c, i = 0;
+
+  while ((c = getchar()) != '\n' && c != EOF)
+    s[i++] = c;
+  s[i] = '\0';
+
+  return i;
+}
diff --git a/aula03/sux.h b/aula03/sux.h
new file mode 100644 (file)
index 0000000..279c58d
--- /dev/null
@@ -0,0 +1,8 @@
+#ifndef SUX_H
+#define SUX_H
+
+#define STRMAXLEN 80
+
+int leLinha(char s[]);
+
+#endif /* SUX_H */