Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal de Minas Gerais Instituto de Ciências Exatas Disciplinas de Algoritmos e Estruturas de Dados II Nome: ____________________________________________ Matrícula: ______________ INSTRUÇÕES: CANETA, LÁPIS, BORRACHA e FOLHAS DE PROVAS são os únicos materiais permitidos durante a prova; É PROIBIDO o uso de CALCULADORAS e CELULARES; O material permitido para a prova é PESSOAL e INTRANSFERÍVEL; A prova é INDIVIDUAL e SEM CONSULTA; A FOLHA DE RESPOSTAS deve ser preenchida a CANETA; A prova terá uma duração de 100 MINUTOS; A INTERPRETAÇÃO faz parte da PROVA; Questão 1: Apresente uma versão recursiva para a função. (4 pontos) void Cubos(int n) { int i; for (i = 1; i <= n; i++) printf("%i ",i * i * i); } int CubosRecursiva(int n) { ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ } Questão 2: Complete o código fonte que segue implementando a função recursiva TamStr que conta o número de caracteres que uma sequência de caracteres (string) tem. (4 pontos) int TamStr( ________________________ ) { ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ } int main() { printf("\n%i",TamStr("ossos")); printf("\n%i",TamStr("engenharia")); } Questão 3: Suponha que um conjunto residencial pode possuir vários blocos de apartamentos, cada bloco andares e cada andar possui apartamentos. Pode-se muito bem definir um tipo de dado ConjuntoResidencial por intermédio de uma estrutura. typedef struct { int n_blocos, n_andares, n_aptos; int ***Conj; } ConjuntoResidencial; Codifique uma função chamada AlocarConjuntoResidencial que preenche o tipo ConjuntoResidencial e aloca memória dinamicamente para o elemento ***Conj. A função recebe o endereço de um tipo ConjuntoResidencial, o número de blocos, o número de andares e o número de apartamentos por andar. (4 pontos) void AlocarConjuntoResidencial( ConjuntoResidencial *CR, int n_blocos, int n_andares, int n_aptos) { ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ Questão 4: Codifique uma função chamada DesalocarConjuntoResidencial que libera a memória alocada para o elemento ***Conj do tipo ConjuntoResidencial. A função recebe como parâmetro um tipo ConjuntoResidencial. (4 pontos) void DesalocarConjuntoResidencial( ConjuntoResidencial CR) { ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ Questão 5: Um monitor colorido de um computador pode ser representado por uma estrutura bidimensional composta de pixels. Cada pixel é composto de uma quantidade de vermelho, verde e azul, que variam no intervalo de [0,255] cada um. Utilizando as formas de abstração da linguagem C defina o tipo abstrato de dados PIXEL e declare uma variável identificada por MONITOR de resolução 1280x860 pixels, sendo a variável MONITOR do tipo PIXEL. Atribua para o PIXEL da 10ª linha e a 5ª coluna da variável MONITOR os valores de 60, 130, 215 respectivamente. (4 pontos) ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________
Compartilhar