Os exercícios que se seguem são para os meus alunos ou para qualquer visitante que queira aprender a programar:
Exercícios de introdução
- Escreva um programa em que imprima a seguinte mensagem na saída: “Hello World!”.
- Crie um programa que leia 2 números e apresente o seu produto.
- Crie um programa que leia 2 variáveis inteiras e troque os seus valores.
- Escreva um programa que calcule o resto da divisão inteira entre 2 números introduzidos pelo utilizador.
- Escreva um programa que declare uma variável inteira e uma variável caracter, atribua-lhes os valores 5 e ‘a’, imprimindo-as na saída.
- Crie um programa para converter graus ºC em ºF e vice-versa C=5/9.(F-32), F=(9.C)/5+32 .
- Escreva um programa que calcule o quadrado e o cubo de um valor introduzido pelo utilizador.
- Escreva um programa que leia dois valores e apresente o valor que representa a relação percentual entre esses dois valores.
- Crie um programa para verificar se um número inteiro positivo é múltiplo de outro. Ambos os números devem ser introduzidos pelo utilizador. Deve verificar se o maior é divisível pelo menor.
- Escreva um programa para calcular um valor dum polinómio do 2° grau dados a, b, c e o valor de x.
- Crie um programa para determinar se um aluno passou na disciplina de TP I a partir dos valores das duas frequências (F1, F2) e do trabalho (T). A fórmula para obter a nota final (NF) é a seguinte: F = (F1+F2)/2 (arredondado às unidades) NF = F * (20-T) / 20 + T (arredondado às unidades)
- Crie um programa para calcular conversões métricas (polegadas-metros milhas-km, etc.) – utilize o switch para as diversas opções.
- Crie um programa para verificar se um número inteiro positivo é múltiplo de outro. Ambos os números devem ser introduzidos pelo utilizador. Deve verificar se o maior é divisível pelo menor.
- Escreva um programa que leia 2 números inteiros do teclado e indique qual deles é o maior.
- Altere o programa anterior para ler 3 números e indicar o maior. Se os números forem todos iguais o programa também o deverá indicar.
- Crie um programa que leia um número inteiro e verifique se o número tem 4 algarismos.
- Crie um programa que leia 3 valores reais correspondendo aos 3 lados de um triângulo. O programa deve indicar se esses valores podem criar um triângulo e, em caso afirmativo, que triângulo se trata (isósceles, escaleno, equilátero).
Estruturas de controlo – Ciclos
- Escreva um programa para imprimir os números inteiros entre 1 e 10 na mesma linha, primeiro em ordem crescente e depois em ordem decrescente (utilizado ciclos).
- Escreva um programa que peça ao utilizador um nome e um número inteiro (entre 1 e 20). Deverá mostrar esse nome um número de vezes igual a esse valor inteiro.
- Escreva um programa que leia n números (sendo n introduzido pelo utilizador) e indique se os números são todos iguais.
- Escreva um programa que calcule o factorial de um número.
- Escreva um programa que some os algarismos de um número.
- Escreva um programa para imprimir todos os números inteiros entre dois valores introduzidos pelo utilizador. O programa deverá verificar qual dos dois valores é o maior.
- Escreva um programa que apresente a tabuada dum número inteiro entre 1 e 9 dado pelo utilizador. Se o número estiver fora dessa gama, o programa deverá dar uma mensagem.
- Crie um programa que escreva os números inteiros entre 0 e 100 em intervalos (incremento) dados pelo utilizador. O intervalo deverá ser um número entre 1 e 10. (Por exemplo, com intervalos de 4).
- Escreva um programa que leia 10 números inteiros introduzidos pelo utilizador e indique o máximo, a média, o mínimo e a soma dos valores.
- Escreva um programa em que o utilizador vai introduzindo as idades dos alunos de uma determinada turma até ser introduzido o número -1. No fim deverá indicar o número de alunos e a média de idades. O programa deverá garantir que apenas são introduzidos números positivos (com a exceção do -1 final).
- Escreva um programa em que o utilizador vai introduzindo números positivos até ser introduzido o valor 0 (zero). No fim o programa indicará a percentagem de números pares introduzidos.
- Escreva um programa para ler as notas de n alunos (sendo n introduzido pelo utilizador). As notas deverão estar entre 1 e 5. O programa deverá contar quantos alunos tiveram cada uma das notas possíveis.
- Escreva um programa que leia 10 números inteiros e indique se um número é igual ao anterior. No final deverá indicar quantos números introduzidos são iguais ao anterior.
- [utilização de flags] Escreva um programa que leia n números (sendo n introduzido pelo utilizador) e indique se os números são todos iguais.
- [utilização de flags (ou não…)] Escreva um programa que leia n números (sendo n introduzido pelo utilizador) e indique se os números são todos pares, se são todos ímpares ou se há ambos os tipos.
- Escreva um programa que apresente todos os números inteiros entre dois números reais introduzidos pelo utilizador.
- Escreva um programa que calcule o fatorial de um número.
- Escreva um programa que some os algarismos de um número.
- [utilização de flags] Crie um programa que determine se um número inteiro é primo.
- Escreva um programa em que o utilizador vai introduzindo números inteiros positivos até o número introduzido ser um número primo.
- Escreva um programa que leia 10 números do utilizador e indique, no fim, quantos números são primos, quantos são pares e quantos são divisíveis por 3.
- Escreva um programa em que o utilizador introduza números até introduzir um número par seguido de um número ímpar.
- [utilização de flags] Escreva um programa que leia 10 valores do utilizador e indique no fim se foi introduzido algum número divisível por 7.
- Escreva um programa em que o utilizador introduz números inteiros até introduzir um número em que a soma dos algarismos seja superior a 20.
- Escreva um programa que indique ao utilizador todos os números primos entre dois números inteiros introduzidos pelo utilizador.
- Crie um programa que imprima um número de 4 dígitos invertido (ex. 4536 -> 6354).
- Escreva um programa que reduza uma fração.
- Escreva um programa que, a partir do preço em euros e do dinheiro entregue, apresente o troco usando o menor número possível de moedas.
Vectores
- Escreva um programa que procure e indique o maior valor (e a respetiva posição) de um vetor de 10 posições introduzido pelo utilizador. Escreva um programa que preencha um vetor de 100 posições com os primeiros 100 números pares.
- Escreva um programa que leia 20 valores inteiros entre 1 e 10 e insira-os num vetor. Depois, o utilizador deverá indicar um valor e o programa deverá indicar em que posição ou posições onde se encontra esse mesmo valor. Se o valor não existir no vetor o programa deverá dar a respetiva mensagem.
- Crie um programa que apresente a soma de todos os valores de um vetor de inteiros de 10 posições. Os valores devem ser introduzidos pelo utilizador.
- Escreva um programa que determine o 2º maior valor de um vetor.
- Crie um programa que leia um vetor de 10 valores inteiros do utilizador, não permitindo a introdução de valores repetidos.
- Crie um programa que leia um conjunto de valores inteiros do utilizador e os coloque num vetor. O programa deverá terminar a leitura quando for introduzido um número que já exista no vetor, ou seja, quando for introduzido um número repetido. No final deverá apresentar o vetor.
- Crie um programa que leia um vetor de n inteiros, sendo n um valor introduzido pelo utilizador, não havendo restrições. O programa deverá converter todos os valores negativos do vetor para 0, imprimir o vetor resultante e indicar quantos valores foram alterados.
- Crie um programa que leia 10 números reais, coloque-os num vetor e calcule a sua média.
- Escreva um programa que preencha um vetor de 20 posições com os primeiros 20 números primos.
- Crie um programa que leia um vetor de 10 inteiros. Os valores deverão estar no intervalo [0,100]. O programa não deverá aceitar valores fora deste intervalo. O programa deverá indicar a soma dos inteiros múltiplos de 5 existentes no vetor.
- Escreva um programa que indique se todos os valores de um vetor são iguais, se são todos diferentes, ou se há valores repetidos no vetor.
- Crie um programa que leia um vetor de inteiros cujo tamanho será introduzido pelo utilizador, tamanho esse que nunca será inferior a 5 ou superior a 25.O programa deverá indicar ao utilizador se o vetor é constituído (ou não) por valores pares e ímpares alternados. Exemplo: O vetor [1,2,5,6,3,2] verifica esta condição.
- Escreva um programa que verifique se todos os elementos de um determinado vetor existem noutro vetor.
- Escreva um programa que inverta a ordem dos elementos de um vetor de inteiros.
- Crie um programa que conte o número de números primos num vetor de inteiros.
- Escreva um programa que peça as idades de 32 alunos de uma turma. O programa deve guardar estes valores num vetor e no final indicar a idade máxima, mínima média e moda da turma.
- Crie um programa para somar 2 vetores de tamanhos diferentes e colocar o resultado num 3º vetor.
- Crie um programa para determinar o maior valor entre as posições de dois vetores e colocar o resultado num 3º vetor.
- Escreva um programa que leia as notas de um determinado número alunos a um conjunto de disciplinas. O número de alunos e o número de disciplinas são introduzidos pelo utilizador. Os valores das notas deverão estar entre 0 e 20 e guardados numa matriz. Depois deverá indicar a média de cada aluno, a nota mais alta, a nota mais baixa, a média de cada disciplina e o número de alunos com média superior a 9,5.
- Crie um programa que simule 100 lançamentos de 2 dados, guarde os resultados em vetores e produza uma estatística.
- Escreva um programa para determinar o valor mais comum (moda) num vetor de inteiros. Teste com um vetor de 100 posições preenchido aleatoriamente com valores entre 0 e 10.
- Crie um programa que ordene um vetor de 10 elementos por ordem crescente e decrescente.
- Escreva um programa que procure e indique o maior valor (e a respectiva posição) de um vector de 10 posições introduzido pelo utilizador.
Programas de revisão com a utilização de operadores lógicos (AND, OR, NOT)
- Escreva um programa que leia 3 notas de um aluno (teórica, prática e projecto). As notas deverão estar no intervalo 0-20. A nota final é dada pela soma pesada das notas (TEOR=50% PRAT=30% PROJ=20%). O aluno será aprovado se a soma das 3 notas for superior a 30 ou no caso de a nota prática e teórica serem ambas iguais ou superiores a 13. O aluno deverá ser submetido a um exame oral se a nota teórica for 8 ou 9 ou no caso de a média final ser superior a 14. O programa deverá indicar todos os resultados. Para passar o aluno deverá ter uma nota igual ou superior a 8 em ambas as frequências e uma nota igual ou superior a 10 na média das duas frequências (F). O programa deverá verificar se os valores introduzidos para as frequências estão no intervalo entre 0 e 20. O trabalho deverá ter um valor entre 0 e 4.
- Crie um programa que leia 3 notas de um aluno: N1, N2, N3 e indique se o aluno passou à disciplina. Para passar à disciplina o aluno deverá ter uma nota igual ou superior a 8 nas 3 notas e a soma de N1 e N2 deverá ser igual ou superior a 20. As notas deverão estar no intervalo de 0 a 20.
- Escreva um programa que leia 3 números inteiros do utilizador, garantindo que todos eles são positivos e diferentes entre si. Se o utilizador tentar introduzir um valor igual a um valor já introduzido, o programa deverá repetir o pedido de introdução do valor.
- Crie um programa que leia o valor das vendas de uma empresa em 4 anos consecutivos: 2010, 2011, 2012 e 2013. Os valores deverão ser positivos. O programa deverá indicar em quantos anos neste período o valor de vendas cresceu em relação ao ano anterior (o valor de saída será entre 0 e 3). Deverá indicar ainda o crescimento percentual entre o ano 2010 e 2013. (utilizado ciclos).
Funções
- Crie uma função que receba 2 valores inteiros como argumentos e retorne a sua soma. Se o valor da soma for negativo o método deverá retornar o valor 0.
- Crie uma função que receba 3 valores reais como argumento e retorne o maior valor.
- Crie uma função que receba dois valores reais como argumentos e retorne o valor da raiz quadrada da soma dos quadrados.
- Crie uma função que receba um número inteiro como argumento e retorne o maior valor primo inferior a esse argumento. Se o argumento for negativo, a função deverá retornar o valor zero.
- Crie uma função ContaPrimos() que receba dois valores inteiros como argumentos e retorne o número de números primos entre estes dois números, inclusive. P. Ex. ContaPrimos(3,10) deverá retornar o valor 3 (3, 5, 7).
- Crie uma função que receba 2 notas (F1 e F2) de um aluno e retorne um booleano indicando se o aluno passou. Para passar, a soma das notas deve ser igual ou superior a 19 e ambas devem ser superiores a 7.
- Crie uma função que receba dois valores inteiros como argumentos e retorne um valor booleano indicando se os números são divisíveis.
- Crie uma função que receba um número inteiro e retorne a soma dos seus algarismos.
- Crie uma função que receba 3 valores inteiros (a, b, c) e retorne um valor booleano true se a>b>c e false em caso contrário.
- Crie uma função que verifique se um número é primo (deverá retornar um valor booleano).
- Crie uma função que receba um número inteiro n e retorne o n-ésimo número primo.
- Crie uma função que receba três inteiros como argumentos (ano, mês, dia) e verifique se se trata de um data válida. O ano deverá estar entre 1900 e o presente ano. Deverá retornar um valor booleano.
Funções e matrizes
- Escreva uma função que recebe uma matriz de caracteres 8×8 representando um tabuleiro de xadrez e calcula o valor total das peças do jogo. Espaços vazios do tabuleiro são codificados como casas com (branco) e têm valor 0 (zero). O valor das demais peças é dado de acordo com a tabela:
Peça | Valor |
peão | 1 |
cavalo | 3 |
bispo | 3 |
torre | 5 |
rainha | 10 |
rei | 50 |
- Escreva um jogo “Jogo do Galo” entre dois jogadores, com uma matriz 3 X 3. Ganha o jogador que conseguir fazer uma diagonal ou uma linha. Deve utilizar uma função após qualquer jogada que retorne 0 se ainda não houve vitória, 1, se o jogador 1 ganhou ou 2 se o jogador 2 ganhou (exemplo: boolean ganhou()).
- Escreva um jogo que simule o jogo das damas. Deve utilizar várias funções e uma matriz global.