38 Exercícios de Laços e Loops em PHP (Pratique FOR, WHILE e DO WHILE)

Hora de treinar, pessoal! 🏋️‍♂️

O que vai definir, no fim das contas, se você é um bom desenvolvedor web ou não, é a quantidade de exercícios que você resolve (ou pelo menos tenta resolver).

Revise a teoria antes de começar:

⚠️ Regra de Ouro: Tente muito, tente bastante mesmo. Quebre a cabeça e só depois veja a solução!

Lista de Questões: Laços e Loopings em PHP

  1. Faça um programa que peça uma nota, entre zero e dez. Mostre uma mensagem caso o valor seja inválido e continue pedindo até que o usuário informe um valor válido.
  2. Faça um programa que leia um nome de usuário e a sua senha e não aceite a senha igual ao nome do usuário, mostrando uma mensagem de erro e voltando a pedir as informações.
    🔗 Ver Solução: 01 e 02 - Validando dados em PHP
  3. Faça um programa que leia e valide as seguintes informações:
    1. Nome: maior que 3 caracteres;
    2. Idade: entre 0 e 150;
    3. Salário: maior que zero;
    4. Sexo: 'f' ou 'm';
    5. Estado Civil: 's', 'c', 'v', 'd';
    Dica: Use a função strlen(string) para saber o tamanho de um texto.
  4. Supondo que a população de um país A seja da ordem de 80.000 habitantes com uma taxa anual de crescimento de 3% e que a população de B seja 200.000 habitantes com uma taxa de crescimento de 1.5%. Faça um programa que calcule e escreva o número de anos necessários para que a população do país A ultrapasse ou iguale a população do país B, mantidas as taxas de crescimento.
  5. Altere o programa anterior permitindo ao usuário informar as populações e as taxas de crescimento iniciais. Valide a entrada e permita repetir a operação.
    🔗 Ver Solução: 04 e 05 - População de duas cidades
  6. Faça um programa que imprima na tela os números de 1 a 20, um abaixo do outro. Depois modifique o programa para que ele mostre os números um ao lado do outro.
  7. Faça um programa que leia 5 números e informe o maior número.
  8. Faça um programa que leia 5 números e informe a soma e a média dos números.
    🔗 Ver Solução: 07 e 08 - Maior, soma e média
  9. Faça um programa que imprima na tela apenas os números ímpares entre 1 e 50.
  10. Faça um programa que receba dois números inteiros e gere os números inteiros que estão no intervalo compreendido por eles.
  11. Altere o programa anterior para mostrar no final a soma dos números.
  12. Desenvolva um gerador de tabuada, capaz de gerar a tabuada de qualquer número inteiro entre 1 a 10. O usuário deve informar de qual numero ele deseja ver a tabuada. A saída deve ser conforme o exemplo abaixo:
    Tabuada de 5:
    5 X 1 = 5
    5 X 2 = 10
    ...
    5 X 10 = 50
    
    🔗 Ver Solução: Tabuada em PHP
  13. Faça um programa que peça dois números, base e expoente, calcule e mostre o primeiro número elevado ao segundo número. Não utilize a função de potência da linguagem.
    🔗 Ver Solução: Potenciação em PHP
  14. Faça um programa que peça 10 números inteiros, calcule e mostre a quantidade de números pares e a quantidade de números ímpares.
  15. A série de Fibonacci é formada pela sequência 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55... Faça um programa capaz de gerar a série até o n-ésimo termo.
    🔗 Ver Solução: Fibonacci com laços
  16. A série de Fibonacci é formada pela sequência 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55... Faça um programa que gere a série até que o valor seja maior que 500.
  17. Faça um programa que calcule o fatorial de um número inteiro fornecido pelo usuário. Ex.: $5! = 5 \cdot 4 \cdot 3 \cdot 2 \cdot 1 = 120$
    🔗 Ver Solução: Fatorial com laços
  18. Faça um programa que, dado um conjunto de N números, determine o menor valor, o maior valor e a soma dos valores.
  19. Altere o programa anterior para que ele aceite apenas números entre 0 e 1000.
  20. Altere o programa de cálculo do fatorial, permitindo ao usuário calcular o fatorial várias vezes e limitando o fatorial a números inteiros positivos e menores que 16.
  21. Faça um programa que peça um número inteiro e determine se ele é ou não um número primo. Um número primo é aquele que é divisível somente por ele mesmo e por 1.
  22. Altere o programa de cálculo dos números primos, informando, caso o número não seja primo, por quais números ele é divisível.
    🔗 Ver Solução 21 e 22: Números primos em PHP
  23. Faça um programa que mostre todos os primos entre 1 e N sendo N um número inteiro fornecido pelo usuário. O programa deverá mostrar também o número de divisões que ele executou para encontrar os números primos. Serão avaliados o funcionamento, o estilo e o número de testes (divisões) executados.
  24. Faça um programa que calcule o fatorial de um número inteiro fornecido pelo usuário. A saída deve ser conforme o exemplo abaixo:
    Fatorial de: 5
    5! = 5 . 4 . 3 . 2 . 1 = 120
    
  25. O Departamento Estadual de Meteorologia lhe contratou para desenvolver um programa que leia um conjunto indeterminado de temperaturas, e informe ao final a menor e a maior temperaturas informadas, bem como a média das temperaturas.
  26. Os números primos possuem várias aplicações dentro da Computação, por exemplo na Criptografia. Um número primo é aquele que é divisível apenas por um e por ele mesmo. Faça um programa que peça um número inteiro e determine se ele é ou não um número primo.
  27. Encontrar números primos é uma tarefa difícil. Faça um programa que gera uma lista dos números primos existentes entre 1 e um número inteiro informado pelo usuário.
  28. Desenvolva um programa que faça a tabuada de um número qualquer inteiro que será digitado pelo usuário, mas a tabuada não deve necessariamente iniciar em 1 e terminar em 10. O valor inicial e final devem ser informados também pelo usuário, conforme exemplo abaixo:
    Montar a tabuada de: 5
    Começar por: 4
    Terminar em: 7
    
    Vou montar a tabuada de 5 começando em 4 e terminando em 7:
    5 X 4 = 20
    5 X 5 = 25
    5 X 6 = 30
    5 X 7 = 35
    
    Obs: Você deve verificar se o usuário não digitou o final menor que o inicial.
  29. Uma academia deseja fazer um censo entre seus clientes para descobrir o mais alto, o mais baixo, a mais gordo e o mais magro. Faça um programa que pergunte a cada um dos clientes da academia seu código, sua altura e seu peso. O final da digitação de dados deve ser dada quando o usuário digitar 0 (zero) no campo código. Ao encerrar o programa, devem ser informados os códigos e valores do cliente mais alto, do mais baixo, do mais gordo e do mais magro, além da média das alturas e dos pesos.
  30. Um funcionário de uma empresa recebe aumento salarial anualmente. Sabe-se que:
    1. Esse funcionário foi contratado em 1995, com salário inicial de R$ 1.000,00;
    2. Em 1996 recebeu aumento de 1,5% sobre seu salário inicial;
    3. A partir de 1997 (inclusive), os aumentos salariais sempre correspondem ao dobro do percentual do ano anterior.
    Faça um programa que determine o salário atual desse funcionário. Após concluir isto, altere o programa permitindo que o usuário digite o salário inicial.
  31. Faça um programa que leia dez conjuntos de dois valores, o primeiro representando o número do aluno e o segundo representando a sua altura em centímetros. Encontre o aluno mais alto e o mais baixo. Mostre o número do aluno mais alto e o número do aluno mais baixo, junto com suas alturas.
  32. Foi feita uma estatística em cinco cidades brasileiras para coletar dados sobre acidentes de trânsito. Foram obtidos os seguintes dados:
    1. Código da cidade;
    2. Número de veículos de passeio (em 1999);
    3. Número de acidentes de trânsito com vítimas (em 1999).
    Deseja-se saber:
    1. Qual o maior e menor índice de acidentes de trânsito e a que cidade pertence;
    2. Qual a média de veículos nas cinco cidades juntas;
    3. Qual a média de acidentes de trânsito nas cidades com menos de 2.000 veículos de passeio.
  33. Faça um programa que receba o valor de uma dívida e mostre uma tabela com os seguintes dados: valor da dívida, valor dos juros, quantidade de parcelas e valor da parcela.
    Qtd de Parcelas  |  % de Juros sobre o valor inicial
    1                |  0
    3                |  10
    6                |  15
    9                |  20
    12               |  25
    
    Exemplo de saída:
    Valor da Dívida | Valor dos Juros | Qtd de Parcelas | Valor da Parcela
    R$ 1.000,00     | 0               | 1               | R$ 1.000,00
    R$ 1.100,00     | 100             | 3               | R$ 366,00
    R$ 1.150,00     | 150             | 6               | R$ 191,67
    
  34. Faça um programa que leia uma quantidade indeterminada de números positivos e conte quantos deles estão nos seguintes intervalos: [0-25], [26-50], [51-75] e [76-100]. A entrada de dados deverá terminar quando for lido um número negativo.
  35. O cardápio de uma lanchonete é o seguinte:
    Especificação   | Código | Preço
    Cachorro Quente | 100    | R$ 1,20
    Bauru Simples   | 101    | R$ 1,30
    Bauru com ovo   | 102    | R$ 1,50
    Hambúrguer      | 103    | R$ 1,20
    Cheeseburguer   | 104    | R$ 1,30
    Refrigerante    | 105    | R$ 1,00
    
    Faça um programa que leia o código dos itens pedidos e as quantidades desejadas. Calcule e mostre o valor a ser pago por item (preço * quantidade) e o total geral do pedido. Considere que o cliente deve informar quando o pedido deve ser encerrado.
  36. Em uma eleição presidencial existem quatro candidatos. Os votos são informados por meio de código:
    1, 2, 3, 4 - Votos para os respectivos candidatos (monte a tabela, ex: 1-José)
    5 - Voto Nulo
    6 - Voto em Branco
    
    Faça um programa que calcule e mostre: total de votos para cada candidato, total de nulos, total de brancos, e a percentagem de votos nulos e brancos sobre o total. Para finalizar a contagem, digite zero.
  37. Desenvolver um programa para verificar a nota do aluno em uma prova com 10 questões. O programa deve perguntar ao aluno a resposta de cada questão e ao final comparar com o gabarito, calculando o total de acertos e a nota. Após cada aluno, perguntar se outro aluno vai utilizar o sistema. No final, informar: Maior e Menor Acerto, Total de Alunos, Média da Turma.
    Gabarito da Prova:
    01 - A | 02 - B | 03 - C | 04 - D | 05 - E
    06 - E | 07 - D | 08 - C | 09 - B | 10 - A
    
  38. Em uma competição de salto em distância cada atleta tem direito a cinco saltos. O melhor e o pior resultados são eliminados. O resultado fica sendo a média dos três valores restantes. Faça um programa que receba o nome e as cinco distâncias. O programa deve ser encerrado quando não for informado o nome do atleta.
    Atleta: Rodrigo Curvêllo
    Primeiro Salto: 6.5 m
    Segundo Salto: 6.1 m
    ...
    Melhor salto: 6.5 m
    Pior salto: 5.3 m
    Média dos demais saltos: 5.9 m
    
    Resultado final:
    Rodrigo Curvêllo: 5.9 m
    
  39. Em uma competição de ginástica, cada atleta recebe votos de sete jurados. A melhor e a pior nota são eliminadas. Faça um programa que receba o nome do ginasta e as notas, calcule a média e exiba um relatório similar ao do exercício anterior.
  40. Faça um programa que peça um número inteiro positivo e em seguida mostre este número invertido.
    Exemplo:
    12376489 => 98467321
    
  41. Faça um programa que mostre os n termos da Série a seguir e imprima no final a soma da série:

    $S = \frac{1}{1} + \frac{2}{3} + \frac{3}{5} + \frac{4}{7} + \frac{5}{9} + \dots + \frac{n}{m}$
  42. Sendo $H = 1 + \frac{1}{2} + \frac{1}{3} + \frac{1}{4} + \dots + \frac{1}{N}$, Faça um programa que calcule o valor de H com N termos.
    🔗 Código disponível na Apostila PHP Progressivo
  43. Faça um programa que mostre os n termos da Série a seguir e imprima no final a soma da série:

    $S = \frac{1}{1} + \frac{2}{3} + \frac{3}{5} + \frac{4}{7} + \frac{5}{9} + \dots + \frac{n}{m}$

    🔗 Código disponível na Apostila PHP Progressivo

Nenhum comentário:

Veja também: