From: Alexandre P Francisco Date: Thu, 13 Mar 2014 22:09:07 +0000 (+0000) Subject: Adding ex{7,8,9,A,B} and sux.* in aula03. X-Git-Url: http://web.ist.utl.pt/aplf/git/?a=commitdiff_plain;h=6b966b1dc4bf2525cefb98ce4145f88a1baeb2f5;p=iaed.git Adding ex{7,8,9,A,B} and sux.* in aula03. --- diff --git a/aula03/Makefile b/aula03/Makefile index af3a044..a8dfe10 100644 --- a/aula03/Makefile +++ b/aula03/Makefile @@ -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 index 0000000..f1c3377 --- /dev/null +++ b/aula03/ex7.c @@ -0,0 +1,21 @@ +#include +#include +#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 index 0000000..1715db2 --- /dev/null +++ b/aula03/ex8.c @@ -0,0 +1,11 @@ +#include +#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 index 0000000..4831b5b --- /dev/null +++ b/aula03/ex9.c @@ -0,0 +1,23 @@ +#include +#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 index 0000000..bcbae1e --- /dev/null +++ b/aula03/exA.c @@ -0,0 +1,27 @@ +#include +#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 index 0000000..0356035 --- /dev/null +++ b/aula03/exB.c @@ -0,0 +1,23 @@ +#include +#include +#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 index 0000000..3b12ab5 --- /dev/null +++ b/aula03/sux.c @@ -0,0 +1,11 @@ +#include + +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 index 0000000..279c58d --- /dev/null +++ b/aula03/sux.h @@ -0,0 +1,8 @@ +#ifndef SUX_H +#define SUX_H + +#define STRMAXLEN 80 + +int leLinha(char s[]); + +#endif /* SUX_H */