Buscar

Ex02 PC pascal solução

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Programação de Computadores 
Solução do 2o Exercício 
1 – 
ALGORITMO SAÍDA 
a 6, 5, 4, 3, 2, 1 
b 6, 12, 18 
2 - 
ALGORITMO O QUE FAZ 
a Escreve os números inteiros de 1 a 10 
b Escreve os números inteiros de 1 a N, sendo N fornecido na entrada 
c Determina se um número é primo 
d Calcula a soma dos algarismos de um número 
e Determina o maior divisor de um número 
f Escreve os números impares entre 100 e 1 
g Calcula a raiz quadrada exata de 10 números, caso existam 
h Determina o menor divisor comum não trivial de dois números, caso exista 
3 – 
{ Escreve os números inteiros múltiplos de 3 compreendidos entre 1 e 100 } 
Algoritmo 
 declare X numérico { número múltiplo de 3 } 
 X ← 3 
 repita 
 escreva X 
 X ← X + 3 
 se X > 100 então 
 interrompa 
 fim se 
 fim repita 
fim algoritmo 
4– 
{ Escreve os números ímpares compreendidos em um dado intervalo } 
Algoritmo 
 Defina o tipo das variáveis 
 leia A, B 
 X ← A 
 repita 
 se X > B então 
 interrompa 
 fim se 
 escreva X 
 X ← X + 2 
 fim repita 
fim algoritmo 
ref: Defina o tipo das variáveis 
 declare A, B { números inteiros ímpares que definem o intervalo - entrada } 
 X { número ímpar no intervalo } 
 numérico 
fim ref 
5 – 
{ Tabula a função trigonométrica sen(Ө) no intervalo de 0 a 2π radianos } 
Algoritmo 
 Defina o tipo das variáveis 
 A ← 0 
 repita 
 Seno ← sen(A) 
 escreva A, Seno 
 A ← A + 0,1 
 se A > 6,28 então 
 interrompa 
 fim se 
 fim repita 
fim algoritmo 
ref: Defina o tipo das variáveis 
 declare A { ângulo em radianos } 
 Seno { valor da função sen() para o ângulo A } 
 numérico 
fim ref 
6 – 
{ Escreve todos os divisores de um número inteiro positivo fornecido na entrada } 
Algoritmo 
 Defina o tipo das variáveis 
 leia N 
 D ← 1 
 repita 
 se resto(N , D ) = 0 então 
 escreva D 
 fim se 
 D ← D + 1 
 se D > N então 
 interrompa 
 fim se 
 fim repita 
fim algoritmo 
ref: Defina o tipo das variáveis 
 declare N, { número inteiro positivo qualquer - entrada } 
D { possível divisor } 
numérico 
fim ref 
PS: Este algoritmo pode ser mais eficiente? 
Como exemplo de uma solução melhor, o algoritmo da Questão 7 será alterado para diminuir 
significativamente o número de execuções do comando de repetição. 
7– 
{ Escreve todos os divisores de um número inteiro positivo e a calcula a quantidade destes divisores } 
Algoritmo 
 Defina o tipo das variáveis 
 leia N 
 NumDivisores ← 0 
 D ← 1 
 repita 
 se resto(N , D ) = 0 então 
 Q ← quociente( N, D ) { o quociente é outro divisor, relacionado ao divisor D } 
 escreva D, Q 
 NumDivisores ← NumDivisores + 2 
 fim se 
 D ← D + 1 
 se D ≥ √ N então { acima da raiz de N estão os divisores relacionados a D, } 
 interrompa { que já foram encontrados } 
 fim se 
 fim repita 
 se resto(N, D) = 0 e D = quociente(N, D) então { a “raiz quadrada” exata é um caso particular, } 
 escreva D { pois deve ser escrita e contada uma única vez } 
 NumDivisores ← NumDivisores + 1 
 fim se 
 escreva NumDivisores 
fim algoritmo 
ref: Defina o tipo das variáveis 
 declare N, { número inteiro positivo qualquer - entrada } 
D { possível divisor } 
NumDivisores { quantidade de divisores de N, exceto 1 e o próprio N - saída} 
numérico 
fim ref 
8– 
{ Calcula e escreve a média aritmética de 100 números fornecidos na entrada } 
Algoritmo 
 declare Numero { número do conjunto para cálculo da média } 
 Soma { soma dos números fornecidos na entrada } 
 Media { média do conjunto de números } 
 K { contador } 
 numérico 
Soma ← 0 
k ← 0 
repita 
leia Numero 
Soma ← Soma + Numero 
k ← k + 1 
se k = 100 então 
‘ interrompa 
fim se 
fim repita 
Media ← Soma / 100 
escreva Media 
fim algoritmo 
9– 
{ Calcula e escreve a média aritmética de N números fornecidos na entrada } 
Algoritmo 
 Defina o tipo das variáveis 
leia N 
Soma ← 0 
k ← 0 
repita 
leia Numero 
Soma ← Soma + Numero 
k ← k + 1 
se k = N então 
‘ interrompa 
fim se 
fim repita 
Media ← Soma / N 
escreva Media 
fim algoritmo 
ref: Defina o tipo das variáveis 
 declare N { quantidade de números a serem fornecidos na entrada } 
Numero { número do conjunto para cálculo da média } 
 Soma { soma dos números fornecidos na entrada } 
 Media { média do conjunto de números } 
 K { contador } 
 numérico 
fim ref 
10– 
{ Calcula e escreve a média aritmética de uma quantidade indeterminada de nos fornecidos na entrada } 
Algoritmo 
 declare Numero { número do conjunto para cálculo da média } 
 Soma { soma dos números fornecidos na entrada } 
 Media { média do conjunto de números } 
 K { contador } 
 numérico 
Soma ← 0 
k ← 0 
repita 
leia Numero 
se Numero ≤ 0 então 
‘ interrompa 
fim se 
Soma ← Soma + Numero 
k ← k + 1 
fim repita 
Media ← Soma / k 
escreva Media 
fim algoritmo 
ref: Defina o tipo das variáveis 
 declare Numero { número do conjunto para cálculo da média } 
 Soma { soma dos números fornecidos na entrada } 
 Media { média do conjunto de números } 
 K { contador } 
 numérico 
fim ref 
11 – 
{ Determina a maior altura de um grupo de 100 pessoas } 
Algoritmo 
 Defina o tipo das variáveis 
 leia Altura 
 MaiorAltura ← Altura { considera a 1ª altura a maior do grupo } 
 K ← 1 
 repita 
leia Altura 
 se Altura > MaiorAltura então { verifica se altura é maior do que as anteriores } 
 MaiorAltura ← Altura 
 fim se 
K ← K + 1 
 se K = 100 então 
 interrompa 
 fim se 
 fim repita 
 escreva Maioraltura 
fim algoritmo 
ref: Defina o tipo das variáveis 
 declare Altura, { altura de uma pessoa em metros } 
 MaiorAltura { maior altura do grupo } 
 K { contador de pessoas } 
numérico 
declare Nome { nome de uma pessoa } 
literal 
fim ref 
12 – 
{ Determina as duas maiores alturas de um grupo de 100 pessoas } 
Algoritmo 
 Defina o tipo das variáveis 
 leia Altura 
 PrimeiraMaiorAltura ← Altura { em um grupo de 1 altura, ela é a primeira e a segunda maior } 
 SegundaMaiorAltura ← Altura 
 K ← 1 
 repita 
leia Altura 
 Determine se a nova Altura é a primeira maior ou a segunda maior 
K ← K + 1 
 se K = 100 então 
 interrompa 
 fim se 
 fim repita 
 escreva PrimeiraMaiorAltura, SegundaMaiorAltura 
fim algoritmo 
 
ref: Determine se a nova Altura é a primeira maior ou a segunda maior 
 se Altura > PrimeiraMaiorAltura então 
 SegundaMaiorAltura ← PrimeiraMaiorAltura 
 PrimeiraMaiorAltura ← Altura 
 senão 
 se Altura > SegundaMaiorAltura então 
 SegundaMaiorAltura ← Altura 
 fim se 
fim ref 
ref: Defina o tipo das variáveis 
 declare Altura { altura de uma pessoam metros } 
 K { contador de pessoas } 
 Primeira MaiorAltura { primeira maior altura do grupo } 
 SegundaMaiorAltura { segunda maior altura do grupo } 
numérico 
fim ref 
13 – 
{ Determina o nome da pessoa mais alta de um grupo de 100 pessoas } 
Algoritmo 
 Defina o tipo das variáveis 
 leia Nome, Altura 
 MaiorAltura ← Altura 
 PessoaMaisAlta ← Nome { o que se busca é o nome, e não a altura da pessoa } 
 K ← 1 
 repita 
leia Nome, Altura 
 se Altura > MaiorAltura então 
 MaiorAltura ← Altura 
 PessoaMaisAlta ← Nome { o nome da pessoa acompanha a sua altura } 
 fim se 
K ← K + 1 
 se K = 100 então 
 interrompafim se 
 fim repita 
 escreva PessoaMaisAlta 
fim algoritmo 
ref: Defina o tipo das variáveis 
 declare Altura, { altura de uma pessoa em metros } 
 K { contador de pessoas } 
numérico 
declare Nome { nome de uma pessoa } 
 PessoaMaisAlta { nome da pessoa mais alta } 
literal 
fim ref 
14 – 
{ Determina os divisores comuns para 30 pares de números inteiros } 
Algoritmo 
 Defina o tipo da variáveis 
 K ← 1 
 repita 
 se K > 30 então 
 interrompa 
fim se 
leia A, B 
 escreva A, B 
Determine e escreva os divisores comuns de A e B 
K ← K + 1 
fim repita 
fim algoritmo 
ref: Determina os divisores comuns de A e B 
 D ← 1 
 repita 
 se resto(A , D ) = 0 e resto(B , D ) = 0 então 
 escreva D 
 fim se 
 D ← D + 1 
 se ( D > A ) ou ( D > B ) então 
 interrompa 
 fim se 
 fim repita 
fim ref 
ref: Defina o tipo das variáveis 
 declare A, B {números inteiros a serem lidos} 
 K {contador} 
D {possível divisor} 
numérico 
fim ref 
15 – 
{ Calcula o fatorial de um conjunto de n números inteiros} 
Algoritmo 
 defina o tipo das variáveis 
 leia n 
 Cont ← 0 
 repita 
 leia X 
 Calcule o fatorial de X 
 escreva X, FatX 
 Cont ← Cont + 1 
 se Cont = n então 
 interrompa 
 fim se 
 fim repita 
fim algoritmo 
ref : Calcula o fatorial de X 
 FatX ← 1 
 I ← 2 
 repita 
 se I > X então 
 interrompa 
 fim se 
 FatX ← FatX x I 
 I ← I + 1 
 fim repita 
fim ref 
ref: defina o tipo das variáveis 
 declare n { quantidade de valores } 
 X { número inteiro positivo fornecido na entrada } 
 FatX { valor do fatorial do número lido } 
 Cont { contador de valores } 
 I { auxiliar } 
 numérico 
fim ref 
16 – 
{ Escreve mensagem para números inteiros positivos fornecidos na entrada que sejam Primos } 
Algoritmo 
 defina o tipo das variáveis 
 repita 
 leia N 
 se N < 0 então { o usuário fornece número negativo para finalizar entrada de dados } 
 interrompa 
 fim se 
 Verifica se N é primo 
 fim repita 
fim algoritmo 
ref : Verifica se N é primo 
 Primo ← verdadeiro { assume que N é primo e tenta provar o contrário } 
 D ← 2 
 repita 
 se ( D > √ N ) ou ( não Primo ) então { acima da raiz quadrada só existem divisores corres- } 
 interrompa { pondentes aos que estão abaixo } 
 fim se { quando achar um divisor também interrompe } 
 se resto(N , D ) = 0 então 
 Primo ← falso { provou que N não é primo } 
 fim se 
 D ← D + 1 
 fim repita 
 se Primo e N ≠ 1 então { a variável Primo sinaliza o resultado da verificação } 
 escreva “NÚMERO PRIMO” { o número 1 não é primo } 
 senão 
 escreva “NÚMERO NÃO É PRIMO” 
 fim se 
fim ref 
ref: defina o tipo das variáveis 
 declare N { número inteiro positivo candidato a ser primo } 
 D { possível divisor para N } 
 numérico 
 declare Primo { sinaliza o resultado da verificação } 
 lógico 
fim ref 
Solução alternativa do refinamento para verificar se o número é primo, sem utilizar a variável lógica. 
ref : Verifica se N é primo 
 D ← 2 
 repita 
 se D > √ N ou resto(N , D ) = 0 então { interrompe por uma das condições: ou não tem } 
 interrompa { mais candidatos a divisor, ou achou um divisor } 
 fim se 
 D ← D + 1 
 fim repita 
 se D > √ N e N ≠ 1 então { pela condição que interrompeu o repita, sabe-se } 
 escreva “NÚMERO PRIMO” { o resultado a verificação. } 
 senão { Também evita considerar o no 1 como primo } 
 escreva “NÚMERO NÃO É PRIMO” 
 fim se 
fim ref 
17 – 
{ Tabula a série S = 52 + 62 + 72 + 82 + 92 + ... utilizando os 100 primeiros termos } 
Algoritmo 
 declare S { valor da série } 
N { auxiliar para gerar os termos } 
k { contador de termos } 
 numérico 
S ← 0 
k ← 0 
N ← 5 
 repita 
 S ← S + N2 
 N ← N + 1 
 k ← k + 1 
 se k = 20 então 
 interrompa 
 fim se 
 fim repita 
escreva S 
fim algoritmo 
18 – 
{ Tabula a série S = (1/ 11) – (2/22) + (3/33) – (4/44) + (5/55) – ... utilizando os 20 primeiros termos } 
Algoritmo 
 defina o tipo das variáveis 
S ← 0 
Sinal ← 1 
N ← 1 
 repita 
 S ← S + ( N / NN ) x Sinal 
 Sinal ← - Sinal 
 N ← N + 1 
 se N > 20 então 
 interrompa 
 fim se 
 fim repita 
escreva S 
fim algoritmo 
ref: defina o tipo das variáveis 
 declare S { valor da série } 
N { auxiliar para gerar e contar os termos } 
 numérico 
fim ref 
19 – 
{ Ex. 1.12.5 do livro: Calcular o no de anos necessários para que a população de um país A ultrapasse } 
{ ou iguale a população do país B, dada a população atual e a taxa de crescimento de cada país } 
Algoritmo 
declare PopulacaoPaisA, { população atual de 90.000.000 e taxa de crescimento de 3% } 
PopulacaoPaisB { população atual de 200.000.000 e taxa de crescimento de 1,5% } 
 TotalDeAnos { número de anos a ser calculado } 
numérico 
TotalDeAnos ← 0 
PopulacaoPaisA ← 90.000.000 
PopulacaoPaisB ← 200.000.000 
repita 
se PopulaçãoPaisA ≥ PopulacaoPaisB então 
interrompa 
fim se 
PopulacaoPaisA ← PopulacaoPaisA x 1,03 { a população do país A aumenta de 3% por ano } 
PopulacaoPaisB ← PopulacaoPaisB x 1,015 { a população do país B aumenta de 1,5% por ano } 
TotalDeAnos ← TotalDeAnos + 1 
fim repita 
escreva TotalDeAnos 
fim algoritmo 
20 – 
{ Ex. 1.12.10 do livro: Calcula porcentagens de audiência de emissoras de TV } 
Algoritmo 
 defina o tipo das variáveis 
 atribua valores inicias necessários 
 repita 
 leia Canal, NumPessoas 
 se Canal = 0 então 
 interrompa 
 fim se 
 contabilize a audiência 
 fim repita 
 calcule e escreva as porcentagens de audiência 
fim algoritmo 
ref : contabilize a audiência 
 se Canal = 4 então 
 C4 ← C4 + NumPessoas 
 senão 
 se Canal = 5 então 
 C5 ← C5 + NumPessoas 
 senão 
 se Canal = 7 então 
 C7 ← C7 + NumPessoas 
 senão 
 C12 ← C12 + NumPessoas 
 fim se 
fim se 
fim se 
fim ref 
ref : calcule e escreva as porcentagens 
 Total ← C4 + C5 + C7 + C12 
Porcentagem ← (C4 / Total ) / 100 
escreva 4 , Porcentagem 
Porcentagem ← (C5 / Total ) / 100 
escreva 5 , Porcentagem 
Porcentagem ← (C7 / Total ) / 100 
escreva 7 , Porcentagem 
Porcentagem ← (C12 / Total ) / 100 
escreva 12 , Porcentagem 
fim ref 
ref : atribua os valores iniciais necessários 
 C4 ← 0 
 C5 ← 0 
 C7 ← 0 
 C12 ← 0 
fim ref 
ref: defina o tipo das variáveis 
 declare Canal { número do canal assistido } 
NumPessoas { quantidade de pessoas assistindo o canal } 
 C4, C5, C7, C12 { contadores de audiência por canal } 
Porcentagem { porcentagem de audiência } 
Total { total de pessoas } 
 numérico 
fim ref 
21 – 
{ Ex. 1.12.13 do livro: Pesquisa sobre o consumo mensal de energia elétrica em uma cidade } 
Algoritmo 
 defina o tipo das variáveis 
 atribua valores inicias necessários 
 leia PrecoKwh, Consumidor, Consumo, TipoConsumidor 
 MaiorConsumo ← Consumo 
 MenorConsumo ← Consumo 
 repita 
 TotalAPagar ← Consumo x PrecoKwh 
 escreva Consumidor, TotalAPagar 
 NC ← NC + 1 
 leia PrecoKwh, Consumidor, Consumo, TipoConsumidor 
 se Consumidor = 0 então 
 interrompa 
 fim se 
 Determine se este Consumo é o maior ou o menor da cidade 
 Calcule o total de consumo para cada um dos três tipos 
 fim repita 
 MediaGeral ← ( TotalResidencial + TotalComercial + TotalIndustrial ) / NC 
 escreva MaiorConsumo, MenorConsumo 
 escreva TotalResidencial, TotalComercial, TotalIndustrical, MediaGeral 
fim algoritmo 
ref : Determine se este Consumoé o maior ou o menor da cidade 
 se Consumo > MaiorConsumo então 
 MaiorConsumo ← Consumo 
 senão 
 se Consumo < MenorConsumo então 
 MenorConsumo ← Consumo 
fim se 
fim ref 
ref : Calcule o total de consumo para cada um dos três tipos 
 se Tipo = “Residencial” então 
 TotalResidencial ← TotalResidencial + Consumo 
 senão 
 se Tipo = “Comercial” então 
 TotalComercial ← TotalComercial + Consumo 
 senão 
 TotalIndustrial ← TotalIndustrial + Consumo 
fim se 
fim se 
fim ref 
ref : atribua os valores iniciais necessários 
 NC ← 0 
 TotalResidencial ← 0 
 TotalComercial ← 0 
 TotalIndustrial ← 0 
fim ref 
ref: defina o tipo das variáveis 
 declare Consumidor { número do consumidor } 
PrecoKWh { preço unitário do Kilowatt/hora } 
 Consumo { consumo mensal em Kilowatts/hora } 
TipoConsumidor { um dos códigos: residencial, comercial ou industrial } 
TotalAPagar { valor total mensal a ser pago pelo consumidor } 
NC { número de consumidores - contador } 
MenorConsumo { menor consumo verificado no mês } 
MaiorConsumo { maior consumo verificado no mês } 
TotalResidencial { total mensal de consumo para consumidores do tipo Residencial } 
TotalComercial { total mensal de consumo para consumidores do tipo Comercial } 
TotalIndustrial { total mensal de consumo para consumidores do tipo Industrial } 
 numérico 
fim ref 
22 – 
{ Ex. 1.12.22 do livro: Otimiza o lucro de uma fábrica de rádios } 
Algoritmo 
 Defina o tipo das variáveis 
 leia X, Y 
 NumOpStandard ← 24 { 1ª tentativa: 24 operários na linha standart e nenhum linha luxo } 
 NumOpLuxo ← 0 
LucroMáximo ← 0 
Sinal ← 1 
 repita 
 Lucro ← NumOpStandard x X + (NumOpLuxo / 2) x Y 
se Lucro > LucroMáximo então 
 LucroMáximo ← Lucro 
 MelhorNumOpStandard ← NumOpStandard { objetivo: saber a melhor alocação de operários} 
 MelhorNumOpLuxo ← NumOpLuxo 
 fim se 
NumOpStandard ← NumOpStandard – 2 { próxima alocação possível para os operários } 
NumOpLuxo ← NumOpLuxo + 2 
 se NumOpStandard < 0 então 
 interrompa 
 fim se 
 fim repita 
 NumRadiosStandard ← MelhorNumOpStandard 
NumRadiosLuxo ← MelhorNumOpLuxo / 2 
escreva LucroMáximo 
escreva MelhorNumOpStandard, NumRadiosStandard 
escreva MelhorNumOpLuxo, NumRadiosLuxo 
fim algoritmo 
 
ref: Defina o tipo das variáveis 
declare 
X, { lucro em reais na venda de um rádio standard } 
 Y { lucro em reais na venda de um rádio luxo } 
 NumOpStandard { número de operários na linha Standard - máximo de 24 } 
 NumOpLuxo { número de operários na linha Luxo - máximo de 32 } 
MelhorNumOpStandard { número de operários na linha Standard para lucro máximo } 
 MelhorNumOpLuxo { número de operários na linha Luxo para lucro máximo } 
 LucroMáximo { lucro máximo da empresa } 
 NumRadiosStandard { número de rádios produzidos na linha Standard para lucro máximo } 
 NumRadiosLuxo { número de rádios produzidos na linha Luxo para lucro máximo } 
numérico 
fim ref 
23 – 
{ Ex. 1.12.32 do livro: Calcula o valor aproximado de π } 
Algoritmo 
 Defina o tipo das variáveis 
S ← 1 
 CT ← 1 
N ← 3 
 repita 
 S ← S + ( 1 / N3 ) x (-1) CT 
 CT ← CT + 1 
 se CT = 51 então { utiliza os primeiros 51 termos da série } 
 interrompa 
 fim se 
 N ← N + 2 
 fim repita 
 Pi ← 3 32×S 
 escreva Pi 
fim algoritmo 
ref: Defina o tipo das variáveis 
 declare N { Números impares, denominador da serie} 
 S { Valor da serie } 
 Pi { Valor aproximado para π } 
 CT { Contador de Termos } 
 numérico 
fim ref 
 
24 – 
{ x. 1.12.55 do livro: Calcula a trigésima aproximação da raiz da equaçãp X3 – 3X2 + 1 = 0 } 
Algoritmo 
 declare X { Raiz aproximada da equação } 
 N { Contador de aproximações } 
numérico 
 X ← 1,5 
 N ← 0 
 repita 
 se N = 30 então 
 interrompa 
fim se 
N ← N + 1 
X ← (X3 - 3 x X2 + 1) / (3 x X2 - 6 x X) 
 fim repita 
 escreva X 
fim algoritmo 
25 – 
{ Ex. 1.12.56 do livro: tabulação de função F = (x2 + 3x + y2) / (xy – 5y – 3x + 15) } 
Algoritmo 
 Defina o tipo das variáveis 
 N ← 1 
 repita 
 se N > 10 então 
 interrompa 
fim se 
X ← N2 { X assume como valores os quadrados perfeitos entre 1 e 100 } 
Calcule e escreva o valor da função para cada valor de Y 
N ← N + 1 
 fim repita 
fim algoritmo 
ref: Calcule e escreva o valor da função para cada valor de Y 
 Y ← 0 
 repita 
 se Y > 5 então 
 interrompa 
 fim se 
 F ← (X2 + 3 x X + Y2) / (X x Y – 5 x Y – 3 x X + 15) 
 escreva X, Y, F 
 Y ← Y + 1 
 fim repita 
fim ref 
ref: Defina o tipo das variáveis 
 declare X, Y { incógnitas da função } 
 F { função a ser calculada } 
 N { auxiliar para gerar os valores de X } 
numérico 
fim ref 
26 – 
{ Ex. 1.12.66 do livro: Determina os nos menores que 10.000 que são quadrados perfeitos e capicuas } 
Algoritmo 
Defina o tipo das variáveis 
X ← 1 
repita 
N ← X2 
Determine o número formado pelos algarismos invertidos de N 
se N = NInvertido então { se N é capicua } 
escreva N 
fim se 
X ← X + 1 
se X > 100 então 
interrompa 
fim se 
fim repita 
fim algoritmo 
 
ref: Determine o número formado pelos algarismos invertidos de N 
NInvertido ← 0 
Aux ← N { cópia de N, cujo valor será alterado } 
repita 
se Aux = 0 então 
interrompa 
fim se 
NInvertido ← NInvertido x 10 + Resto( Aux, 10 ) 
Aux ← Quociente( Aux, 10 ) 
fim repita 
fim ref 
ref: Defina o tipo das variáveis 
declare X { número inteiro de 1 a 100 } 
 N { quadrado perfeito de X – número entre 1 e 10.000 } 
 NInvertido { número formado pelos algarismos invertidos de N } 
 Aux { variável auxiliar para salvar o valor de N } 
 numérico 
fim ref

Outros materiais