ISCTE, IGE, PROGRAMAÇÃO I


Ano lectivo de 1996/97 - Frequência - 3 de Fevereiro de 1997


Notas:

  1. Duração: 2 horas.
  2. Sem consulta.

[5] 1.

[1] a) Indique o que entende por uma cadeia de caracteres.
[1] b) Indique por que razão não se deve usar a função gets().
[1] c) Indique a função a usar em sua substituição. Justifique.
[1] d) Escreva uma linha de programa que leia uma cadeia de caracteres do teclado (leitura até ao primeiro fim de linha).
[1] e) Indique os diferentes modos de abertura de ficheiros e suas características.

[4] 2. Escreva um programa que peça ao utilizador um número n ímpar, validando a entrada, e, com base nele desenhe um quadrado de n por n contornado a * e com as diagonais traçadas. Exemplo para n = 7:

*******
**   **
* * * *
*  *  *
* * * *
**   **
*******

[6] 3. Considere que tem um ficheiro com o nome auto.txt contendo, por cada linha, a matrícula de um automóvel e respectivo proprietário. O formato é o seguinte:

AA-dd-dd Apelido Nome

em que AA são duas quaisquer letras maiúsculas do alfabeto de A a Z, e dd são dígitos de 00 a 99.

[2] a) Escreva uma função int procura_matricula(char fich[], char matricula[], char nome[]) que, dada uma matrícula (guardada em matricula) e o nome de um ficheiro (guardado em fich), devolva o número de linha do ficheiro onde ocorre primeiro, copiando para nome o nome completo do respectivo proprietário (pode ser na forma Apelido Nome). Caso não encontre deve devolver -1 (a primeira linha do ficheiro é a linha 0).

[2] b) Escreva uma função int ano_registo(char matricula[]) que devolva o ano de registo da matrícula matricula com base nas letras da matrícula, usando a seguinte simplificação algorítmica: AA corresponde a registos do ano de 1900, AB ao ano de 1901, AC ao ano de 1902, etc. (Obs.: a representação de AA a ZZ corresponde à base 26; trata-se essencialmente de fazer a conversão, de forma conveniente, da base 26 para a base 10).

[2] c) Com as funções anteriores, faça um programa que peça ao utilizador uma matrícula, que procure no ficheiro auto.txt se a matrícula existe e, caso exista, que escreva no ecrã o nome completo do proprietário e o ano de registo da viatura. A linha de programa que escreve no ecrã pode ser, por exemplo:

 
printf("O carro %s, do ano %d, pertence a %s\n", matricula,
ano, nome); 

[5] 4. Escreva um programa que conte o número de letras de A a Z contidas num ficheiro, independentemente de serem maiúsculas ou minúsculas, apresentando no fim a contagem resultante. Por cada letra deve aparecer no ecrã o respectivo número de ocorrências.


Página concebida e mantida por Eng. Manuel Menezes de Sequeira (última actualização 2006/07/07)
Copyright © 1996-2001 ISCTE