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