Instituto de Computação
Departamento de Ciência da Computação

Anselmo Montenegro

Professor Adjunto I
Universidade Federal Fluminense


  Lista sobre seleção, repetição e manipulação de arquivos

Escreva um programa que lê um número inteiro e diz se ele é primo ou não.

Resolução: código-fonte |  topo


Desenvolva uma calculadora com as operações matemáticas básicas. O programa deve ter a seguinte interface:
[CALCULADORA]

 Opcoes:
  + Somar       | - Subtrair
  * Multiplicar | / Dividir
  S Sair

 Entre com uma opcao: _
Nesta interface, o usuário deve entrar com uma das opções: + para operação adição, - para subtração, * para multiplicação, / para divisão ou S para sair. A calculadora deve ser executada até que o usuário entre com a opção S.
Para qualquer operação selecionada, o usuário deve entrar com dois operandos (números reais) e o sistema deve exibir a seguinte mensagem:
Resultado: <número 1> <operador> <número 2> = <resultado>
Exemplo: para operação de soma (+) dos números 10 e 35, sistema deve mostrar a seguinte mensagem:
Resultado: 10.00 + 35.00 = 45.00
Obs: os números devem ser impressos com duas casas decimais.

Resolução: código-fonte |  topo


Escreva um programa que, dado uma frase, execute a seguinte animação: a frase deve deslocar até o fim da linha (ou seja, da esquerda para direita) e depois retornar ao início (da direita para esquerda).

Obs: para auxiliar o desenvolvimento o programa, se preferir, utilize as seguintes funções:
length(s): retorna o tamanho da string s;
delay(ms): faz uma pausa de ms milisegundos (sugestão: ms=50);
clrscr: limpa a tela;
gotoXY(c,l): posiciona o cursor na tela na linha l e coluna c.

Resolução: código-fonte |  topo


Desenvolva um codificador e decodificador de arquivos. O usuário deve selecionar a opção codificar ou decodificar. Em seguida, o usuário deve entrar com os arquivos de entrada e saída. Para codificar o arquivo texto (arquivo de entrada), o programa deve ler cada caractere deste arquivo, codificá-lo para o código da tabela ASCII e gravá-lo no arquivo de saída.

Exemplo: Seja arqTexto.txt o arquivo de entrada a codificar com o seguinte conteúdo
Arquivo
	   de
		 teste
O programa deverá gravar um arquivo de saída com o seguinte conteúdo:
65 114 113 117 105 118 111 13 10 32 32 32 32 32 32 32 100 101 13 10
32 32 32 32 32 32 32 32 32 116 101 115 116 101
Obs: funções auxiliares:
ord(letra): converte o caractere letra no respectivo código da tabela ASCII
chr(ascii): converte o caractere ascii no char correspondente.

Resolução: código-fonte |  topo


Faça um programa que conte o número de palavras de um arquivo texto.

Exemplo: Para o arquivo arqTexto.txt do Exercício 4, o programa deve retornar a seguinte mensagem:
O arquivo arqTexto.txt possui 3 palavras.

Resolução: código-fonte |  topo


Faça um programa em que o usuário deve informar um número n e o programa deve imprimir do primeiro ao n-ésimo elemento da série de Fibonacci.

Resolução: código-fonte |  topo


Leia os nomes dos meses e as taxas de crescimento mensal de um arquivo texto (crescimentoMes.txt) e cria um histograma com essas taxas. Ao final, o histograma deve ser enviado para uma arquivo de saída.

Resolução: código-fontearquivo de saída |  topo


Dada a altura e o peso de uma pessoa, calcule o índice de massa corporal e informe ao usuário se ele está com o peso adequado ou não para a sua altura.

Dados:
- IMC menor que 18.5 -> A pessoa está abaixo do peso recomendado.
- IMC maior ou igual a 18.5 e menor que 25 -> A pessoa está com peso normal.
- IMC maior ou igual a 25 e menor que 30 -> A pessoa está com sobrepeso.
- IMC maior ou igual a 30 e 40 -> A pessoa está obesa.
- IMC maior ou igual a 40 -> A pessoa está com obesidade mórbida. Isso pode ser grave!

Resolução: código-fonte |  topo


Leia do usuário um conjunto de registros contendo um valor real e faça um algoritmo que calcule a média dos valores maiores que 4. O usuário poderá digitar quantos registros desejar.

Resolução: código-fonte |  topo


Leia de um arquivo texto (medias.txt) o nome do aluno e a nota que ele tirou, faça a média das notas e mostre quem obteve a maior e menor nota respectivamente.

Resolução: código-fonte |  topo



  Lista sobre vetores e matrizes

Desenvolva um programa em que lê dois conjuntos (vetores) A e B de 10 elementos cada e imprima a união desses vetores. Exemplo: Sejam A e B os dois vetores digitados pelo usuário:
  A = [ 0, 1, 3, 4, 7, 11, 12, 14, 16, 20 ]
  B = [ 1, 2, 3, 5, 7, 8, 12, 13, 14, 15 ]
Logo, o programa deverá imprimir:
  A ∪ B = [ 0, 1, 2, 3, 4, 5, 7, 8, 11, 12, 13, 14, 15, 16, 20 ]

Obs: Como A e B são abstrações de conjuntos, então não podem haver números repetidos em cada conjunto.

Resolução: código-fonte |  topo


Desenvolva um programa em que lê dois conjuntos (vetores) A e B de 10 elementos cada e imprima a interseção desses vetores. Exemplo: Sejam A e B os dois vetores digitados pelo usuário:
  A = [ 0, 1, 3, 4, 7, 11, 12, 14, 16, 20 ]
  B = [ 1, 2, 3, 5, 7, 8, 12, 13, 14, 15 ]
Logo, o programa deverá imprimir:
  A ∩ B = [ 1, 3, 7, 12, 14 ]

Resolução: código-fonte |  topo


Sudoku é um quebra-cabeça, cujo objetivo do jogo é preencher os números de 1 a 9 em cada uma das células vazias numa grade de 9×9, constituída por 3×3 subgrades chamadas regiões. Cada coluna, linha e região só pode ter um número de cada um dos 1 a 9. Exemplo de um jogo:


Imagem extraída de: Wikipédia

Faça um programa que, dado uma matriz 9x9 que representa um jogo do Soduku, verifica se o jogo está ou não correto.

Mais informações: Wikipédia , sudoku.hex.com.br | Resolução: código-fonte |  topo


Uma empresa de logistica deseja fazer a organização de seus armazéns conforme o balanço mostrado abaixo:

+-----------+-----------+-----------+-----------+
|           | Produto 1 | Produto 2 | Produto 3 |
+-----------+-----------+-----------+-----------+
| Armazém 1 |   1.800   |   1.500   |   2.100   |
+-----------+-----------+-----------+-----------+
| Armazém 2 |   2.300   |   2.500   |   2.800   |
+-----------+-----------+-----------+-----------+
| Armazém 3 |   3.200   |   3.100   |   2.900   |
+-----------+-----------+-----------+-----------+
|  Custos   |   2,80    |   3,50    |   1,28    |
+-----------+-----------+-----------+-----------+

PROCEDIMENTOS NECESSÁRIOS PARA O CONTROLE:

 - Permitir montagem da matriz para entrada de dados
 - Através de um menu de controle permitir usuário:

   - Para saber o custo total de um determinado armazem
   - Para saber o custo total somando todos armazens
   - Para saber a quantidade de produtos em um determinado armazem
   - Para saber a quantidade de produtos somando todos armazens
   - Alterar o valor de estoque de qualquer PRODUTO em um deterrminado ARMAZEM

OBSERVAÇÕES GERAIS DO PROGRAMA:

 - Mostrar menu de controle numerado por opção.
 - Permitir retorno ao programa após usos de qualquer opção do menu, perguntando ao ususario se o mesmo deseja continuar.

Resolução: código-fonte |  topo


Os proprietários de um teatro necessitam de uma ferramenta de software para reservas de lugares.
O desenvolvedor contratado verificou que as poltronas disponíveis para reservas são referenciados pelo número da fila (a partir do número 1) e pelo número da cadeira (a partir do número 1) em cada fila, em uma representação matricial em que as linhas e colunas correspondem, respectivamente, às filas e às colunas de cadeiras.
Implemente um programa que realize as "reservas" de lugares, (informando a fila e a cadeira) com o nome do cliente e, caso a cadeira já tenha sido reservada, exibir uma mensagem ao usuário e solicitar nova posição.
Caso o usuário digite um número de fila ou coluna acima dos limites do teatro, solicite nova fila ou coluna. Para encerrar as reservas, informar "fim". Após o encerramento das reservas, mostrar na tela o nome da pessoa, o número da fila e o número da coluna escolhido por ela.

Resolução: código-fonte |  topo