Você está na página 1de 9

Faculdade de Engenharia e Novas Tecnologias

Licenciatura em Engenharia Informática/Informática de Gestão

Programação I

Ficha Prática nº 1
Uso de sequências e selecções: escrever os algoritmos correspondentes a cada um dos exercícios (fluxograma
(diagrama de blocos) e pseudo-código).

1. Dados dois inteiros, calcular e escrever no ecrã a sua soma.


2. Dados dois inteiros, calcular e escrever no ecrã a sua média.
3. Calcular e escrever no ecrã a área dum rectângulo dados os lados em cm.
4. Calcular e escrever no ecrã a área dum círculo dado o raio em cm.
5. Dado um número, calcular e escrever no ecrã o seu quadrado.
6. Dado um número, escrever no ecrã o seu módulo ou valor absoluto.
7. Dados dois números, identificar o maior.
#include <stdio.h>

int main() {
int num1, num2;

printf("Digite o primeiro numero: ");


scanf("%d", &num1);

printf("Digite o segundo numero: ");


scanf("%d", &num2);

if (num1 > num2) {


Ficha Prática nº 1 1/2
printf("%d eh maior do que %d\n", num1, num2);
} else if (num2 > num1) {
printf("%d eh maior do que %d\n", num2, num1);
} else {
printf("%d e %d sao iguais\n", num1, num2);
}

return 0;
}
8. Dado um inteiro, indicar se é par ou ímpar.
#include <stdio.h>

int main() {
int num;

printf("Digite um numero inteiro: ");


scanf("%d", &num);

if (num % 2 == 0) {
printf("%d eh um numero par\n", num);
} else {
printf("%d eh um numero impar\n", num);
}

return 0;
}
9. Dado um valor em kwanzas determinar o seu equivalente em dolares (1 dolar = 100 kwz).
10. Dado um número, escrever no ecrã se é menor, igual ou maior do que zero.
#include <stdio.h>

int main() {
int num;

printf("Digite um numero inteiro: ");


scanf("%d", &num);

Ficha Prática nº 1 2/2


if (num < 0) {
printf("%d eh menor do que zero\n", num);
} else if (num == 0) {
printf("%d eh igual a zero\n", num);
} else {
printf("%d eh maior do que zero\n", num);
}

return 0;
}
11. Dado um ano, determinar e escrever no ecrã se é comum ou bissexto.
#include <stdio.h>

int main() {
int ano;

printf("Digite um ano: ");


scanf("%d", &ano);

if ((ano % 4 == 0 && ano % 100 != 0) || ano % 400 == 0) {


printf("%d eh um ano bissexto\n", ano);
} else {
printf("%d eh um ano comum\n", ano);
}

return 0;
}
12. Dados dois números, escrevê-los por ordem crescente.
#include <stdio.h>

int main() {
int num1, num2, temp;

printf("Digite o primeiro numero: ");


scanf("%d", &num1);

Ficha Prática nº 1 3/2


printf("Digite o segundo numero: ");
scanf("%d", &num2);

if (num1 > num2) {


temp = num1;
num1 = num2;
num2 = temp;
}

printf("Numeros em ordem crescente: %d %d\n", num1, num2);

return 0;
}
13. Dados dois números, escrever “Condição Verificada” se o primeiro número for menor do que 50 ou maior
do que 100, e ao mesmo tempo o segundo número for menor ou igual ao primeiro.
#include <stdio.h>

int main() {
int num1, num2;

printf("Digite o primeiro numero: ");


scanf("%d", &num1);

printf("Digite o segundo numero: ");


scanf("%d", &num2);

if ((num1 < 50 || num1 > 100) && num2 <= num1) {


printf("Condição Verificada\n");
}

return 0;
}

Ficha Prática nº 1 4/2


14. Dados dois números, escrever “**** Condição ****” se o primeiro se encontrar no intervalo [50, 100]
ou se o segundo for maior que o primeiro.
#include <stdio.h>

int main() {
float num1, num2, c;

printf("Digite o primeiro número: ");


scanf("%f", &num1);
printf("Digite o segundo número: ");
scanf("%f", &num2);
printf("Digite o valor de c: ");
scanf("%f", &c);

if (num1 >= 50 && num1 <= 100) {


printf("**** Condição ****\n");
} else if (num2 > (num1 + c)) {
printf("**** Condição ****\n");
} else {
printf("Condição não atendida.\n");
}

return 0;
}

Ficha Prática nº 1 5/2


15. Dados dois números, escrever “*” se verificar uma e apenas uma das seguintes situações:
- O primeiro número encontrar-se no intervalo [1, 10];
-O segundo número encontrar-se no intervalo [20, 200].

#include <stdio.h>

int main() {
float num1, num2;

printf("Digite o primeiro número: ");


scanf("%f", &num1);
printf("Digite o segundo número: ");
scanf("%f", &num2);

if ((num1 >= 1 && num1 <= 10) != (num2 >= 20 && num2 <= 200)) {
printf("*\n");
} else {
printf("Condição não atendida.\n");
}

return 0;
}

Ficha Prática nº 1 6/2


16. Dado um tempo em horas, minutos e segundos escrever o seu equivalente em segundos.
#include <stdio.h>

int main() {
int horas, minutos, segundos, totalSegundos;

printf("Digite o tempo em horas: ");


scanf("%d", &horas);
printf("Digite o tempo em minutos: ");
scanf("%d", &minutos);
printf("Digite o tempo em segundos: ");
scanf("%d", &segundos);

totalSegundos = horas * 3600 + minutos * 60 + segundos;

printf("O tempo em segundos é: %d\n", totalSegundos);

return 0;
}

17. Dado um tempo em segundos escrever no ecrã o correspondente em horas, minutos e segundos.
#include <stdio.h>

int main() {
int tempoSegundos, horas, minutos, segundos;

printf("Digite o tempo em segundos: ");


scanf("%d", &tempoSegundos);

horas = tempoSegundos / 3600;


minutos = (tempoSegundos % 3600) / 60;
segundos = (tempoSegundos % 3600) % 60;

printf("O tempo corresponde a %d horas, %d minutos e %d segundos.\n", horas, minutos, segundos);

return 0;
Ficha Prática nº 1 7/2
}
18. Com base no ano de nascimento e no presente ano, calcular a idade actual de uma pessoa.

19. Dadas as datas de nascimento (ano, mês e dia) de uma pessoa e a actual, calcular a idade dessa
pessoa.

#include <stdio.h>

int main() {
int anoNascimento, mesNascimento, diaNascimento;
int anoAtual, mesAtual, diaAtual;
int idade;

printf("Digite a data de nascimento (ano, mes, dia): ");


scanf("%d %d %d", &anoNascimento, &mesNascimento, &diaNascimento);

printf("Digite a data atual (ano, mes, dia): ");


scanf("%d %d %d", &anoAtual, &mesAtual, &diaAtual);

idade = anoAtual - anoNascimento;

if (mesAtual < mesNascimento) {


idade--;
} else if (mesAtual == mesNascimento && diaAtual < diaNascimento) {
idade--;
}

printf("A idade atual é: %d anos\n", idade);

return 0;
}
20. Escreva um algoritmo que valide uma data fornecida pelo utilizador.
21. Considerando o ordenado ilíquido de um assalariado escrever no ecrã o seu ordenado líquido, depois de
descontado o IRT (imposto sobre o rendimento do trabalho). Para esse efeito imagine a seguinte tabela de
escalões:
Salário <= 8500 [8501, 11000] [11001, 16000] [16001, 21000]  21000
(kwz)

Ficha Prática nº 1 8/2


% IRT isento 2% 4% 6% 8%

22. Crie uma versão mais desenvolvida do problema anterior que calcula também os descontos obrigatórios da
Segurança Social (3% do salário), os quais são efectuados antes da aplicação da tabela do IRT.
23. Escreva o algoritmo para um programa que recebe uma data (dia, mês e ano) e escreve o número de dias
que faltam para o concluir mês da data introduzida. O algoritmo deve considerar as diferentes durações dos
meses do ano e entrar em linha de conta com o número de dias de Fevereiro que é variável.
24. Escreva o algoritmo para um programa que recebe um valor temporal (horas, minutos e segundos) e escreve
o número de segundos que faltam para o presente dia terminar.
25. Escreva um algoritmo que permita calcular o preço de um bilhete de comboio sabendo que, se o passageiro
possuir cartão-jovem o preço do bilhete deve sofrer um desconto de 20%. Se pretender viajar como
fumador terá de pagar um suplemento de 15% sobre o preço do bilhete.
26. Escreva um algoritmo que dadas as horas e minutos de partida de um determinado voo e a duração da
viagem (horas e minutos) permite obter a hora e minutos de chegada desse voo (admita que não existem
mudanças horárias).

Ficha Prática nº 1 9/2

Você também pode gostar