Resolução

Propaganda
EMGI – Programação
Ficha 7 – Resolução
“Programação”
1 – Calcular a hipotenusa de um triângulo rectângulo, sabendo as medidas dos
seus catetos:
variáveis cat1, cat2, hipotenusa : real;
inicio
escrever (“Escreva a medida do cateto 1:”);
ler (cat1);
escrever (“Escreva a medida do cateto 2:”);
ler (cat2);
hipotenusa ← raizde (quadrado(cat1) + quadrado(cat2));
escrever (“A hipotenusa tem valor “, hipotenusa);
fim.
2 – Determinar o dobro ou o triplo de um número consoante seja, maior que
100 ou menor ou igual a 100.
Parte Declarativa
Entrada: num: real;
Saída: dobro, triplo: real;
Parte Operativa
inicio
escrever (“Introduza um número:”);
ler(num);
SE num>100
ENTÃO inicio
dobro ← num * 2;
escrever (“ O numero é maior que 100 !”);
escrever (“ O seu dobro é :”,dobro);
fim
SENÃO inicio
triplo ← num * 3;
escrever (“ O numero é menor ou igual a 100 !”);
escrever (“ O seu triplo é :”,triplo);
fim
fim SE
Fim.
Programação – Ficha de Trabalho 7
Pag. 1/13
EMGI – Programação
Ficha 7 – Resolução
3 – Determinar o maior de três números.
Parte Declarativa
Entradas: a, b, c: real
Saídas: maior: real
Parte Operativa
Inicio
escrever (“Introduza um número:”);
ler(a);
escrever (“Introduza um número:”);
ler(b);
escrever (“Introduza um número:”);
ler(c);
maior ← a;
SE maior < b
ENTÃO inicio
maior ← b
SE maior < c
ENTÃO maior ← c
fimSe
fim
SENÃO inicio
SE maior < c
ENTÃO maior ← c
fimSe
Fim
fimSe
escrever (“O maior dos três é:”, maior);
Fim.
Programação – Ficha de Trabalho 7
Pag. 2/13
EMGI – Programação
Ficha 7 – Resolução
4 – Considere as seguintes correspondências entre unidades de medida:
(1)1 cm
(2)1 Kg
(3)1 l
(4)1 ºF
2,54 pol
2,204622622 lbm
3,7854 gal
(ºF-32)/1,8 ºC
Elabore um algoritmo que converta um valor de uma das unidades para outra.
Parte Declarativa
Entradas: unidade – inteiro;
Saídas: valor - inteiro;
Parte Operativa
Inicio
escrever (“Qual a unidade que deseja converter?”);
escrever(“[1. cm → pol; 2. Kg → lbm; 3. l → gal; 4. F → C]”);
ler (unidade);
escrever (“introduza um valor a converter: “);
ler (valor);
SE unidade = 1
ENTÃO escrever (“Valor em polegadas é “, valor * 2,54)
SENÃO inicio
SE unidade = 2
ENTÃO escrever (“Valor em lbm é ”, valor * 2,204622622)
SENÃO
SE unidade = 3
ENTÃO escrever (“Valor em galões é “, valor * 3,7854)
SENÃO escrever (“Valor em graus Celsius é “, (valor-32)/1,8);
fimSE
fimSE
fim
fimSE
Fim.
Programação – Ficha de Trabalho 7
Pag. 3/13
EMGI – Programação
Ficha 7 – Resolução
5 – Calcular a área e o perímetro das seguintes figuras: Rectângulo, Trapézio
rectângulo e Círculo.
Constantes pi=3,14;
Variáveis c, l, B, b, h, r : real; /* variáveis de entrada têm de ser superiores a
0*/
Variáveis perimetro, area : real; /* variáveis de saída*/
Variáveis escolha : inteiro;
/* valor para escolher a figura*/
Inicio
escrever (“Qual a figura escolhida? [1. Rectângulo; 2. Trapézio rectângulo;
3. Círculo]”);
ler (escolha);
CASO escolha
“1” FAZ inicio
escrever (“Qual o comprimento?”);
ler (c);
escrever (“Qual a largura?”);
ler (l);
perimetro ← 2 * c + 2 * l;
area ← c * l;
escrever (“A área do rectângulo é: “, area);
escrever (“O perímetro do rectângulo é: “, perimetro);
fim
“2” FAZ inicio
escrever (“Qual a Base Maior?”);
ler (B);
escrever (“Qual a base menor?”);
ler (b);
escrever (“Qual a altura do trapézio?”):
ler(h);
area ← (B + b) / 2 * h;
escrever (“A área do trapézio rectângulo é: “, area);
fim
“3” FAZ inicio
escrever (“Qual a medida do raio?”);
ler (r);
perimetro ← 2 * pi * r;
area ← pi * quadrado (r);
escrever (“A área do círculo é: “, area);
escrever (“O perímetro do círculo é: “, perimetro);
fim
SENÃO FAZ escreve (“Dados mal introduzidos!”);
fimCaso
Fim.
Programação – Ficha de Trabalho 7
Pag. 4/13
EMGI – Programação
Ficha 7 – Resolução
Programação – Ficha de Trabalho 7
Pag. 5/13
EMGI – Programação
Ficha 7 – Resolução
6 – Indicar se um carácter é letra maiúscula, letra minúscula, algarismo ou sinal
de pontuação.
variáveis car: caracter;
inicio
escrever (“Introduza um caracter:”);
ler (car);
SE car >= ‘A’ E car <= ‘Z’
ENTÃO escrever (“Letra maiúscula!”)
SENÃO inicio
SE car >= ‘a’ E car <= ‘z’
ENTÃO escrever (“Letra minúscula!”)
SENÃO inicio
SE car = ‘.’ OU car = ‘;‘ OU car = ‘,’ OU car = ‘!’
OU (...)
ENTÃO escrever (“Sinal de pontuação!”)
SENÃO escrever (“É algarismo!”);
fim
fim
fim.
7 – Calcule a soma dos primeiros N números inteiros.
variáveis cont, soma, n: inteiro;
inicio
escrever (“ Introduza o número limite para a soma (n) “);
ler (n);
cont ← 0;
soma ← 0;
SE n > 0
ENTÃO inicio
REPETIR
cont ← cont + 1;
soma ← soma + cont;
ATÉ (cont = n);
fim
SENÃO soma ← 0;
fimSE
escrever (“A soma dos números inteiros até ao limite dado é :”, soma);
fim.
Programação – Ficha de Trabalho 7
Pag. 6/13
EMGI – Programação
Ficha 7 – Resolução
8 – Escrever no ecrã o quadrado de todos os números compreendidos entre x1 e
x2.
variáveis x1, x2, cont, quad: inteiro;
inicio
escrever (“Introduza um valor inicial.”);
ler (x1);
escrever (“ Introduza um valor final.”);
ler (x2);
DE cont ← x1 ATÉ x2 FAZ
quad ← cont^2;
escrever (“O quadrado de”,cont, “é “, quad);
cont ← cont + 1;
fimDe
fim.
9 – Para uma sequência de N elementos, determine a soma dos elementos
ímpares.
variáveis n, i, soma: inteiro;
inicio
i ← 0;
soma ← 0;
escrever (“Introduza um valor inteiro positivo [nº negativo para terminar]”);
REPETIR
ler (n);
SE n > 0
ENTÃO inicio
SE restode (i / 2) = 1
ENTÃO
soma ← soma + i;
i←i+1
SENÃO
soma ← soma;
i ← i + 1;
fimSE
fim
fimSE
ATÉ (n < 0);
escrever (“ A soma dos números ímpares é: “, soma);
fim.
Programação – Ficha de Trabalho 7
Pag. 7/13
EMGI – Programação
Ficha 7 – Resolução
10 – Escrever a tabuada de um número entre 1 e 10.
Parte Declarativa
Entradas: num (número: inteiro)
Auxiliares: ind (número:inteiro)
Saídas: tabuada (número:inteiro)
Parte Operativa
inicio
escrever (“Indique qual número para o cálculo da tabuada.”);
ler (num);
ind ← 1;
DE ind ← 1 ATÉ 10 FAZ
tabuada ← ind * num;
escrever (num,” * ”,ind, “ = ”, tabuada);
ind ← ind + 1;
fimDe
fim.
11 – Calcular o valor da potência sendo dado a base (real) e o expoente para
expoentes do tipo inteiro.
/* solução com PARA ... DESDE ... ATÉ */
Parte Declarativa
Entradas: exp (número: inteiro), base (número:real)
Auxiliares: pot (número:inteiro)
Saídas: valor (número:real)
inicio
escrever (“Indique a base e o expoente:”);
ler (base);
ler (exp);
pot ← 1;
PARA pot DESDE 1 ATÉ exp FAZ
valor ← valor * base;
pot ← pot + 1;
escrever (“A potencia de “, base, “ elevado a”, pot, “é: “, valor);
fimPARA
escrever (“A potencia de “, base, “ elevado a”, exp, “é: “, valor);
fim.
Programação – Ficha de Trabalho 7
Pag. 8/13
EMGI – Programação
Ficha 7 – Resolução
/* solução REPETIR */
Parte Declarativa
Entradas: exp (número: inteiro),base (número:real)
Auxiliares: pot (número:inteiro)
Saídas: valor (número:real)
Parte Operativa
inicio
escrever (“Indique a base e o expoente:”);
ler (base);
ler (exp);
pot ← 1;
REPETIR
valor ← valor * base;
escrever (“A potencia de “, base, “ elevado a”, pot, “é: “, valor);
pot ← pot + 1;
ATÉ (pot = exp);
escrever (“A potencia de “, base, “ elevado a”, exp, “é: “, valor);
fim.
12 – Calcular os divisores de um número N.
Parte Declarativa
Entradas: num (número: inteiro)
Auxiliares: cont (número:inteiro)
Parte Operativa
inicio
escrever (“ Escreva um número:”);
ler (num);
PARA cont DESDE 1 ATÉ num FAZ
SE rest_div_Inteira (num / cont) = 0
ENTÃO
escrever (cont, “é divisor de”, num);
cont ← cont + 1
SENÃO cont ← cont + 1;
fimSe
fimPARA
fim.
Programação – Ficha de Trabalho 7
Pag. 9/13
EMGI – Programação
Ficha 7 – Resolução
13 – Calcular os N múltiplos de um número X.
variáveis x, n, mult, cont: inteiro;
Parte Operativa
inicio
escrever (“Escreva o número do qual pretende determinar os múltiplos:”);
ler (x);
escrever (“Indique até que valor pretende saber os múltiplos:”);
ler (n);
cont ← 0;
ENQUANTO cont <> n FAZ
mult ← x * cont;
escrever (mult, “ “);
cont ← cont + 1;
fimENQUANTO
fim.
14 – Cálculo da média de uma sequência de valores.
variáveis soma, cont, n , media: real;
inicio
escrever (“ Introduza valor positivo [número negativo para terminar]”);
soma ← 0;
cont ← 0;
REPETIR
ler (n);
SE n > 0
ENTÃO inicio
soma ← soma + n;
cont ← cont + 1;
fim
SENÃO escrever (“Fim de sequência!”);
ATÉ (n < 0);
media ← soma / cont;
escrever (“ A média dos valores introduzidos é:”, media);
fim.
Programação – Ficha de Trabalho 7
Pag. 10/13
EMGI – Programação
Ficha 7 – Resolução
15 – Dada uma sequência de números inteiros positivos, determine quantos
números são pares e quantos são ímpares, a finalização da sequência é indicada
com um número negativo.
variáveis num, p, i : inteiro;
inicio
p ← 0;
i ← 0;
escrever (“Introduza um número inteiro positivo [nº negativo para
terminar]:”);
REPETIR
ler (num);
SE num > 0
ENTÃO inicio
SE restode (num/2) = 0
ENTÃO p ← p + 1
SENÃO i ← i + 1;
fim
fimSE
ATÉ (num < 0);
escrever (“Introduziu “, p , “números pares”):
escrever (“Introduziu “, i , “números ímpares”):
fim.
16 – Dado o preço de um determinado artigo e a quantidade de dinheiro
disponível, determinar quantas unidades se pode comprar e quanto dinheiro
sobra.
variáveis preco, dinh, unid, sobr: real;
inicio
escrever (“Qual o preço do artigo?: “);
ler (preco);
escrever (“Qual a quantia de dinheiro disponível?: “);
ler (dinh);
SE preco < dinh
ENTÃO inicio
unid ← dinh / preco;
/* divisao inteira*/
sobr ← restode (dinh / preco);
/*resto
da
inteira*/
escrever (“Podem ser compradas “, unid, “unidades”);
escrever (“A quantia que sobra é: “, sobr);
fim
SENÃO escrever (“Não é possível comprar!”);
fimSE
fim.
Programação – Ficha de Trabalho 7
divisão
Pag. 11/13
EMGI – Programação
Ficha 7 – Resolução
17 – Calcular o factorial de um número n, sendo n>=0.
variáveis num, factorial: inteiro;
inicio
escrever (“Calculo do factorial de um número:”);
escrever (“Introduza um número inteiro: “);
ler (num);
factorial ← 1;
ENQUANTO num > 1
FAZ inicio
factorial ← factorial * num;
num ← num – 1;
fim
fimENQUANTO
escrever (“O factorial de “, num, “e: “, factorial);
fim.
5
18 – Calcular a expressão x = ∑ i!
i =1
variáveis soma, i, p: inteiro;
inicio
i ← 1;
soma ← 0;
REPETIR
p ← 1;
j ← i;
REPETIR
p ← p * j;
j ← j – 1;
ATÉ j < 1;
soma ← soma + p;
i ← i + 1;
ATÉ i > 5;
escrever (“ O somatório é; “, soma);
fim.
Programação – Ficha de Trabalho 7
Pag. 12/13
EMGI – Programação
Ficha 7 – Resolução
19 – Dados dois números a e b (a>=b) inteiros, listar no monitor todos os
números primos no intervalo [a,b].
variáveis a, b, i, j ,k, primo: inteiro;
inicio
REPETIR
escrever (“Introduza o valor de b: “);
ler (b);
escrever (“Introduza o valor de a: “);
ler (a);
ATÉ (a>=b) E ((a>0) E (b>0));
PARA i ← b ATÉ a FAZ
inicio
k ← i / 2;
/divisao inteira/
primo ← 1;
PARA j ←2 ATÉ k FAZ
SE restode (i / j) = 0 ENTÃO primo ← 0;
fimPARA
SE primo=1 ENTÃO escrever (i);
fim
fimPARA
fim.
Programação – Ficha de Trabalho 7
Pag. 13/13
Download