Introdução à Programação B (2018/2019)

Lista de exercícios

Artur Miguel Dias



Prática 06 (Semana de 08/out/2018-2)

Sumário: Primeiros problemas com a instrução for. Exercícios 17 a 20.



Algumas funções da aula teórica 2 foram copiadas para aqui, para servirem de inspiração:

Solução do problema do ano bissexto

Solução do problema do fatorial (que usa um ciclo for)


  • 17a - Escreva um programa que receba do utilizador um número inteiro positivo n e que calcule a soma dos primeiros n quadrados perfeito.

    Por exemplo, para n igual a 3, o resultado deve ser 14 (= 1 + 4 + 9).

    Escreva uma função com um ciclo for. Use uma variável para acumular a soma dos vários valores. A estrutura e lógica da função são parecidas com a da função factorial. Programe, imitando o estilo e as ideias da função factorial.


  • 17b - Escreva um programa que receba do utilizador um número inteiro positivo n e que calcule a soma de todos os quadrados perfeitos inferiores a n.

    Por exemplo, para n igual a 12, o resultado deve ser 14 (= 1 + 4 + 9).


  • 18 - Escreva um programa que receba do utilizador um mês e um ano, ambos valores inteiros, e escreva a duração desse mês em dias. Repare que a duração do mês de fevereiro depende do facto do ano ser ou não bissexto.

    Para ajudar, começamos já aqui a programar a função mais importante do programa:

    Nesta função, você vai poder treinar mais um pouco o uso da instrução if.


  • F : 19 - Escreva um programa que, dado um intervalo de anos, por exemplo de 2000 a 2020, apresente uma tabela com a duração de cada ano em dias, nesse intervalo.

    Use um ciclo for dentro da função main. A tabela produzida deve ter o seguinte aspeto:

    Aproveite a função year_length, que aparece no início desta aula.
  • G : 20 - Escreva um programa que receba do utilizador uma data completa - usando três inteiros: dia (1..31), mês (1..12) e ano (1900..2100) - e responda a posição dessa data dentro do respetivo ano. Para exemplificar, a data 1/1/2008 tem a posição 1 e a data 31/12/2008 tem a posição 366.

    Sugestão: Aproveite a função month_length do exercício 18 e escreva uma nova função, chamada date_position com três argumentos inteiros: day, month, year.