UFCG/CEEI/DSC

Disciplina: INTRODUÇÃO À PROGRAMAÇÃO – Turma 03 – 2016.1

Prof.: Roberto Medeiros de Faria

 

Exercícios para o 3º Estágio               Prazo de Entrega: 12/10/2016

 

Obs.:

1)    Utilize aritmética de apontadores em TODAS  as questões, modularizando os programas em funções.

2)    Entregue 5 exercícios.

3)    Pode fazer em dupla.

 

1)     Faça um programa para ler Matricula, Nome (máximo 30 caracteres) e Idade de N estudantes, sendo N informado pelo usuário (máximo 50). Em seguida, o programa deverá imprimir todos os dados lidos dos alunos com idade abaixo de 18 anos e, em seguida, imprimir todos os dados lidos dos alunos com idades maiores que a média de idades desses alunos.

2)     Faça um programa para ler Matrícula, Nome (máximo 30 caracteres) e Idade de N estudantes, sendo N informado pelo usuário (máximo 50). Em seguida, o programa deverá imprimir os dados lidos em ordem de Matrícula, Nome ou Idade dos Alunos, de acordo com a solicitação do usuário. Para comparar cadeias de caracteres, use a função strcmp(). Modularize seu programa para utilizar várias funções que realizem apenas uma diferente tarefa cada.

3)     Considerando o Programa das Figuras 5.8 e 6.9 do Livro Texto, Faça uma nova versão do programa da Fig. 6.9 que simule o lançamento de um dado vinte vezes e imprima quantas vezes cada face do dado foi lançada. Nesta nova versão continue usando o array freqüência para registrar a quantidade de vezes que cada face do dado foi lançada e acrescente uma função para lançar um dado e outra para imprimir o array.

4)     Faça um programa para ler dois conjuntos (A e B) de no máximo 10 elementos inteiros, gerar um terceiro conjunto, o conjunto diferença (A-B) e finalmente imprimir os três conjuntos. Os tamanhos de A e B serão informados pelo usuário. Utilize as funções: le_conjunto(),  imprime_conjunto(),  elemento_pertence_ao_conjunto() e gera_o_conj_diferença().

5)     Faça um programa para corrigir provas de múltipla escolha de vários alunos. Cada prova tem 10 questões e cada questão tem seu valor informado, totalizando 10,0. O primeiro conjunto de dados a ser lido é o gabarito da prova, com cada resposta seguida de seu valor. Os outros dados serão a matrícula de cada aluno seguida de suas respectivas respostas da prova. Os dados dos alunos terminam quando o programa ler uma matrícula zero. O programa ainda:

a.    para cada aluno, mostrará a sua matrícula e calculará e mostrará a sua nota;

b.    calculará e mostrará a porcentagem de aprovação da turma , sabendo-se que a nota mínima é 7,0.

6)     Faça um programa para ler duas matrizes de inteiros e imprimir as matrizes lidas e informar se a primeira é ou não a transposta da segunda. A dimensão de cada matriz deve ser informada pelo usuário (máximo 10 x 10)

7)     Faça um programa para ler uma matriz de números inteiros 7 x7 e imprimir o elemento do meio de cada linha da matriz, após essas linha serem ordenadas crescentemente.

8)     Faça um programa que leia uma matriz de dimensão M x N, Imprima a matriz lida e os totais de elementos positivos, negativos e nulos dessa matriz. Os valores de M e N devem ser informados pelo usuário (Máximo 10) e o programa deve usar as seguintes funções: le_matriz(), imprime_matriz(),  calcula_os_três_totais() e imprime_os_tres_totais(). 

Atenção! Você vai precisar de passagem de parâmetro por referência, além do array bidimensional.

9)     Escreva um programa que leia N inteiros de 6 dígitos representando horários no formato HHMMSS e, se o horário for válido, imprime os horários no formato digital, HH:MM:SS . O valor de N é informado pelo usuário e o programa deverá usar as seguintes funções:

·         extrai_componentes() que recebe HHMMSS e retorna HH, MM e SS;

·         eh_horário_valido() que recebe HH, MM e SS e retorna verdadeiro se esses valores formam um horário válido e falso no caso contrário e

·         imprime_horario_digital() que recebe HH, MM, e SS e imprime HH:MM:SS

10)  Faça um programa que leia um array de N elementos distintos (no máximo 10), imprima o array lido, o maior e o menor elemento desse array. O programa deve usar uma função que retorne o endereço do maior elemento e outra que retorne o endereço do menor elemento do array. A função main() recebe estes endereços e imprime os elementos que estão armazenados nestes endereços. Não use indexação, use apontadores.

11)  Faça um programa que leia um array de N elementos (no máximo 10), imprima o array lido, o array ordenado e a mediana (elemento que fica no meio do array após ordenação. No caso da quantidade de elementos ser par, a mediana é a média dos dois elementos do meio). O programa deve usar funções para ler array, imprimir array, ordenar array e trocar elementos do array durante a ordenação. Não use índices para percorrer o array nem para calcular a posição da mediana.  Não use indexação, use apontadores.

12)  Faça um programa que leia uma string (máximo 30 caracteres), com letras minúsculas e/ou maiúsculas, aleatoriamente. Em seguida, mostra a string lida e transforme as letras iniciais de cada palavra nessa string em letras maiúsculas e as demais em minúsculas. O programa torna a imprimir a string, após a transformação. O programa deve usar uma função para transformar a string. Não use índices para percorrer a string, use apontadores.

13)  Faça um programa que leia e imprima uma string (máximo 30 caracteres) e determine se ela é ou não um palíndromo. O Programa não diferenciará minúsculas de maiúsculas. Não use índices para percorrer a string, use apontadores.

 

SUCESSO!