Resolução de Exercícios de Laboratório (Aula 2) – Algoritmos e Estruturas de Dados

Sugestão de Resolução de Exercícios de Laboratório – Introdução ao Algoritmos e Estruturas de Dados (IAED), Instituto Superior Técnico

1. (Maior de Três) Escreva um programa que determine o maior de três números inteiros dados pelo utilizador usando a função int maior (int a, int b, int c);.

#include <stdio.h>
#include <stdlib.h>

int maior(int a, int b, int c){
int maior = a;
if(b > maior) maior = b;
if(c > maior) maior = c;
return maior;
}

int main(){
int i, v1[3];

printf("Introduza 3 números: ");

for(i=0; i<3; i++){
scanf(" %d", &v1[i]);
}

printf("O maior número é: %dn", maior(v1[0], v1[1], v1[2]));
return 0;
}

 

2. (Maior e Menor) Escreva um programa que determine o maior e o menor número de N números reais dados pelo utilizador usando as funções float maior (float a, float b); e float menor (float a, float b);. Considere que N é um valor pedido ao utilizador.

#include <stdio.h>
#include <stdlib.h>

float maior(float a, float b){
if(a >= b) {
return a;
} else {
return b;
}
}

int main(){
int i, n, total, maiorN;

printf("Quantos números pretende introduzir? ");
scanf(" %d", &total);
printf("Introduza os números: ");
for(i=0; i<total; i++){
scanf(" %d", &n);
if(i == 0){
maiorN = n;
continue;
}
maiorN = maior(maiorN, n);
}

printf("O maior número é: %dn", maiorN);
return 0;
}

 

3. (Produto ou Soma) Escreva um programa que calcule o produto dos números inteiros pares e a soma dos números inteiros ímpares entre N1 e N2 (dados pelo utilizador).

#include <stdio.h>
#include <stdlib.h>

float maior(float a, float b){
if(a >= b) {
return a;
} else {
return b;
}
}

int main(){
int n1, n2, resultado;

printf("N1: ");
scanf(" %d", &n1);
printf("N2: ");
scanf(" %d", &n2);
if((n1%2 == 0) && (n2%2 == 0)){
resultado = n1 * n2;
} else if((n1%2 != 0) && (n2%2 != 0)) {
resultado = n1 + n2;
} else {
printf("Introduza 2 números pares ou 2 números ímparesn.");
return 0;
}

printf("Resultado: %dn", resultado);
return 0;
}

 

4. (Média) Escreva um programa que calcule o média de N números reais dados pelo utilizador usando a função float media (int N);.

#include <stdio.h>
#include <stdlib.h>

float media(int N){
int i, num, soma=0;
for(i=0; i<N; i++){
scanf(" %d", &num);
soma += num;
}
return soma/i;
}

int main(){
int n;
printf("Quantos números pretende introduzir?: ");
scanf(" %d", &n);
printf("Média: %fn", media(n));
return 0;
}

 

5. (Conversão) Escreva um programa que pede ao utilizador um valor N que corresponde a um certo período de tempo em segundos. O programa deverá apresentar no output esse período de tempo no formato HH:MM:SS.

Brevemente

 

6. (Digitos) Escreva um programa que pede ao utilizador um valor positivo N. O seu programa deverá voltar a pedir um valor para N caso o utilizador introduza um valor inválido. No output, deverá mostrar o número de dígitos que compõem N, assim como a soma dos dígitos de N. Por exemplo, o número 12345 tem 5 dígitos e a soma desses dígitos é 15.

Brevemente

7. (Keep fit!) O índice de massa corporal (IMC) relaciona a altura com o peso da pessoa através da fórmula IMC=peso/altura 2. A tabela de classificação é a seguinte:

IMC Categoria
IMC < 19 Magro
19 <= IMC <= 25 Normal
25 < IMC <= 30 Excesso de peso
30 < IMC <= 40 Obeso
> 40 Obesidade Mórbida

Brevemente

 

Escreva um programa que calcule os seguintes indicadores: IMC, categoria, peso mínimo (PMI=19×altura 2) e peso máximo (PMA=25×altura 2) que garantem que a pessoal pertence à categoria normal. Utilize as funções float imc (float peso, float altura); void escreveCategoria (float imc); float pesoMinimo (float altura); e float pesoMaximo (float altura);
8. (Quadrado de Números) Escreva um programa que desenhe um quadrado de números como o que se segue utilizando a função void quadrado (int N);. O valor de N, dado pelo utilizador, deverá ser obrigatoriamente maior ou igual 2. O quadrado apresentado é o exemplo para N = 5.

1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
#include <stdio.h>
#include <stdlib.h>

void quadrado(int N){
int i, j;
for(i=0; i<N; i++){
for(j=0; j<N; j++){
printf("%d ", j+i+1);
}
printf("n");
}
}

int main(){
int n;
scanf("%d", &n);
if (n <= 2) n = 2;
quadrado(n);
return 0;
}

 

9. (Pirâmide de Números 1) Escreva um programa que desenhe uma pirâmide de números utilizando a função void piramide (int N);. O valor de N, dado pelo utilizador, deverá ser obrigatoriamente superior ou igual 2. A pirâmide apresentada é o exemplo para N = 5.

        1
      1 2 1
    1 2 3 2 1
  1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1

Para este programa utilize as seguintes funções:

void escreveCaracter (char c, int n); (escreve o caracter passado no primeiro parâmetro tantas vezes quantas forem passadas no segundo parâmetro);
void escreveNumerosAsc (int a, int b); (escreve os números inteiros entre o primeiro parâmetro e o segundo em ordem crescente);
void escreveNumerosDesc (int a, int b); (escreve os números inteiros entre o primeiro parâmetro e o segundo em ordem decrescente).

Brevemente

You may also like...

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *