LINGUAGEM DE PROGRAMAO I 2013.2 PROVA I ORIENTAES PARA RESPONDER A PROVA 1. Responda todas as questes na folha pautada; 2. Questes respondidas lpis no do direito reviso da correo; 3. Antes (ou depois) de cada programa, soluo das questes 2 e 3, apresente uma breve descrio (um ou dois pargrafos) sobre o princpio de funcionamento das estruturas de dados e algoritmo que foram usados na soluo da questo; 4. Apresente os programas codificados em linguagem C de forma clara e organizada use comentrios se desejar ao longo do cdigo; 5. Antes de cada descreva, em um texto resumido, o raciocnio usado no algoritmo adotado para resolver o problema; 6. Para pontuar as questes de programao sero avaliados aspectos como: simplicidade e objetividade do cdigo, clareza e organizao da apresentao, completude da soluo e uso correto da linguagem C.
Li e estou ciente: ___________________________ Matrcula ______________
Questo 1 (valor 2,0)
Mostre o trecho de cdigo (apenas o trecho) em linguagem C necessrio para executar o seguinte: a) Declarar uma varivel inteira I e uma varivel apontador de inteiro pI; b) Declarar uma cadeia de caracteres chamada MSG contendo Prova de LP I; c) Declarar um registro contendo os campos inteiro X e o array inteiro V unidimensional de 100 posies; d) Declarar o apontador para caracter pV e inicializar ele com a alocao de 50 posies de elementos inteiros alocados dinamicamente usando a funo malloc.
Questo 2 (valor 4,0)
Num sorteio que distribui prmios, um participante inicialmente sorteia um inteiro N e depois N valores. O nmero de pontos do participante o tamanho da maior sequncia de valores consecutivos iguais. Por exemplo, suponhamos que um participante sorteia N= 11 e, nesta ordem, os valores: 30, 30, 30, 30, 40, 40, 40, 40, 40, 30, 30
Ento, o participante ganha 5 pontos, correspondentes aos 5 valores 40 consecutivos. Note
que o participante sorteou 6 valores iguais a 30, mas nem todos so consecutivos. Escreva um programa em C que determina o nmero de pontos de um participante. Entrada A primeira linha da entrada contm um inteiro N, o nmero de valores sorteados. A segunda linha contm N valores inteiros, V1, V2, . . . , VN, na ordem de sorteio, separados por um espao em branco. Sada Seu programa deve imprimir apenas uma linha, contendo apenas um inteiro, indicando o nmero de pontos do participante.
Questo 3 (valor 4,0)
Chama-se de quadrado mgico um arranjo, na forma de um quadrado, de NN nmeros inteiros tal que todas as linhas, colunas e diagonais tm a mesma soma. Por exemplo, o quadrado abaixo: 276 951 438 um quadrado mgico de soma 15, pois todas as linhas (2+7+6 = 15, 9+5+1 = 15 e 4+3+8 = 15), colunas (2 + 9 + 4 = 15, 7 + 5 + 3 = 15 e 6 + 1 + 8 = 15) e diagonais (2 + 5 + 8 = 15 e 6 + 5 + 4 = 15) tm a mesma soma (15). Escreva uma funo em C que recebe como parmetros um valor inteiro N (2 < N < 10) e uma matriz QUAD de dimenso NxN e determina se QUAD quadrado magico, devolvendo a soma dele (caso seja mgico) e 1, caso contrrio.