PROVA DE PROGRAMAÇÂO EM C
Instruções: Para todas as questões, o arquivo prova2oT.c deverá ser
utilizado e somente pode ser inserido código nos trechos delimitados.
Nenhuma das funções presentes pode ser modificada, mas elas podem ser
copiadas e modificadas para facilitar a resolução da prova.
A medida que for fazendo, vá imprimindo para garantir que está tudo
funcionando, mas ao completar a prova, remova todas as impressões de
testes.
IMPORTANTE! Para fazer essa prova, você não pedirá ao usuário o número
de estados pois já é fixo em 27 (constante NUMERO_ESTADOS_E_DF), mas
isso não significa que você poderá utilizá-la dentro das funções, pois
as funções devem funcionar como se você não soubesse a priori o tamanho
que o vetor ou a matriz tem.
[4] Questão 01) Faça um conjunto de quatro funções:
// Aloca um vetor com de tamanho
- char * alocaVetorCaracteres(int nCaracteres);
// Aloca um vetor de vetores onde cara linha do vetor tenha
// caracteres
- char ** alocaVetorBidimensional(int * tamLinhas, int nLinhas);
// Imprime em cada linha o conteúdo da linha da matriz
- void imprimeMatrizDinamica(char ** matriz, int nLinhas);
// Libera a memória alocada
- void liberaMatriz(char ** matriz, int nLinhas);
Exemplo:
char * vetorCaracteres;
char ** vetorVetorCaracteres;
int tamLinhas[] = {27, 24, 26};
vetorCaracteres = alocaVetorCaracteres(3);
vetorVetorCaracteres = alocaVetorBidimensional(tamLinhas, 3);
strcpy(vetorVetorCaracteres[0], “Lorem ipsum dolor sit amet”);
strcpy(vetorVetorCaracteres[1], “Ut urna sem, rhoncus eu”);
strcpy(vetorVetorCaracteres[2], “Donec dapibus, nisl vitae”);
imprimeMatrizDinamica(vetorVetorCaracteres, 3);
liberaMatriz(vetorVetorCaracteres, 3);
free(vetorCaracteres);
// Lorem ipsum dolor sit amet
// Ut urna sem, rhoncus eu
// Donec dapibus, nisl vitae
[3] Questão 02) Faça uma função que copia uma matriz de caracteres de
dimensões X,Y para uma matriz alocada dinamicamente, onde cada linha da
matriz tenha o tamanho exato para acomodar a string que esteja na matriz
original.
Exemplo:
#define X (?)
#define Y (?)
char matrizCaracteres[X][Y] = {...};
char ** matrizDinamica;
printf(“Matriz Estatica:\n”);
imprimeMatriz(matrizCaracteres, X, Y); // Aqui precisa do X e Y
printf(“Matriz Dinamica:\n”);
matrizDinamica = copiaMatriz(matrizCaracteres, X, Y);
imprimeMatrizDinamica(matrizDinamica, X); // Aqui só precisa do X
liberaMatriz(matrizDinamica, X); // Aqui só precisa do X
// Saída:
// Matriz Estatica
// Lorem ipsum dolor sit amet
// Ut urna sem, rhoncus eu
// Donec dapibus, nisl vitae
// Matriz Dinamica
// Lorem ipsum dolor sit amet
// Ut urna sem, rhoncus eu
// Donec dapibus, nisl vitae
[3] Questão 03) Faça uma função que ordene alfabeticamente uma matriz
de caracteres alocada dinamicamente.
Exemplo:
char ** matrizDinamica;
ordenaAlfabeticamente(matrizDinamica, ?);
imprimeMatrizDinamica(matrizDinamica, ?);
// Saída:
// Matriz Estatica
// Donec dapibus, nisl vitae
// Lorem ipsum dolor sit amet
// Ut urna sem, rhoncus eu
[3] Questão 04) Faça a função main que faça nessa ordem:
- Imprima o nome dos estados armazenado na matriz original;
- Copie todos os estados para uma matriz alocada dinamicamente que caiba
exatamente os nomes dos estados, sem sobrar nenhum espaço;
- Imprima o nome dos estados na cópia;
- Ordene a cópia;
- Imprima a cópia ordenada;
- Imprima a original;
- Libere toda a memória alocada dinamicamente.
Respostas
respondido por:
0
Resposta:
hahaha s hdudduududud
Perguntas similares
4 anos atrás
6 anos atrás
6 anos atrás
6 anos atrás
8 anos atrás