Vous êtes sur la page 1sur 38

Uberlndia, 11 de abril de 2012.

P1) Neste algoritmo houve a traduo de um fluxograma para pseudo-linguagem em que, iniciando em C1, se L1 for verdadeiro, o algoritmo seguira o caminho de C2, se no seguir para L3. O algoritmo passar por varias estruturas de falso ou verdadeiro e de repetio at que chegue a C12 e, portanto, ao fim. Inicio c1 se l1 entao c2 enquanto l2 faca c3 c4 fimenquanto senao enquanto l3 faca c5 se l4 entao se l5 entao c6 c7 fimse senao c8 c9 fimse c10 fimenquanto c11 fimse

c12 fimalgoritmo

P02) Nmero primo aquele que divisvel por 1 e por ele mesmo. O programa em questo diz se determinado nmero primo ou no. O programa pede um valor n e faz o seguinte teste: se o resto da diviso de n por d(que inicialmente vale 2) for igual a 0, ento d divisor de n. Se d divisor de n, ento n no um nmero primo. Se d no for divisor de n ento admite-se outro valor para d(d + 1) at que d seja maior que n. Quando d for maior que n, o programa sai do lao e diz se n primo ou no, seguindo a mesma lgica: ser primo se no existir nenhum d divisor de n, a no ser o prprio n. Algoritmo: "Nmeros primos" var p: logico n, d: inteiro inicio escreval ("Este programa diz se um nmero primo ou no.") escreval ("Digite um valor para n:") leia(n) p <- verdadeiro d <- 2 enquanto ((d <= raizQ(n)) e (p = verdadeiro)) faca se (n%d = 0) entao p <- falso

fimse d <- d+1 fimenquanto se p = verdadeiro entao escreval (n," um nmero primo") senao escreval (n," no um nmero primo") fimse fimalgoritmo

P3) O Algoritmo utiliza uma funo lgica, atravs da condio se encontra-se o valor de L = 0 Algoritmo: Lgico var A, B, C: logico X, Y: real V, L: inteiro inicio A <- falso; B <- verdadeiro; C <- falso; X <- 1*5; Y <- 3*2; X <- X + 1; se C ou ((X+Y>5) ou (nao A e B)) entao L <- 0;

senao L <- 1; fimse; escreval ("valor de L =",L) fimalgoritmo P4) Neste algoritmo foi usado a estrutura de repetio enquanto..faca para que se pudesse fazer com que, dados 2 valores pelo usurio do programa, o algoritmo escrevesse na tela todos os valores inteiros que existiam entre os 2 nmeros escritos pelo usurio. Se o primeiro fosse menor que o segundo, seria escrito o valor do primeiro na tela e o algoritmo somaria o valor com 1 e escreveria cada resultado at que chegasse ao segundo valor escrito pelo usurio. Se o segundo valor fosse menor que o primeiro, o procedimento de soma e escrita de cada resultado seria igual ao primeiro caso. Algoritmo: Inteiros min;max var a, b : inteiro Inicio escreva ("Digite 2 valores:") leia (a, b) se b>a entao enquanto (b>=a) faca escreva (a) a<-a+1

fimenquanto senao enquanto (a>=b) faca escreva (b) b<-b+1 fimenquanto fimse fimalgoritmo

P5) Neste algoritmo foi usado as estruturas enquanto..facae se..entao para que se pudesse escrever os valores existentes entre dois nmeros escritos pelo usurio na forma crescente ou decrescente. Se o primeiro valor fosse maior que o segundo o algoritmo salvava os valores em variveis distintas e comearia a desenvolver a parte crescente de forma que seria escrito o primeiro valor e se somaria a 1, escrevendo cada valor obtido, at que se chegasse ao segundo valor dado pelo usurio. Se o usurio escolhesse D, o algoritmo iria desenvolver a sequencia de forma decrescente da seguinte forma: se compararia o segundo valor ao primeiro e se iria subtraindo 1, tambm escrevendo cada valor, at que o segundo atingisse o valor do primeiro. Se o segundo fosse menor que o primeiro, a lgica de soma e subtrao usada seria a mesma, fazendo assim que se obtivesse uma sequncia de valores crescentes ou decrescentes.

Algoritmo: Crescente ou decrescente var a,y,b,x : inteiro ordem: caractere Inicio escreval ("Digite um valor.") leia (a) escreval ("Digite outro valor.") leia (b) escreval ("Escolha C para ordem crescente e D para ordem decrescente.") leia (ordem) y<-a x<-b se b>a entao enquanto (b>=a) faca se (ordem = "C") entao escreval(a) a<- a + 1 senao se (ordem = "D") entao enquanto (b>=y) faca escreval(b)

b<-b-1 fimenquanto fimse fimse fimenquanto senao enquanto (a>=b) faca se (ordem = "C") entao escreval(b) b<-b+1 senao se (ordem = "D")entao enquanto (a>=x) faca escreval(a) a<-a-1 fimenquanto fimse fimse fimenquanto fimse fimalgoritmo

P6) Neste algoritmo foram usadas as funes se..entaoe repita..at para que se pudesse obter um algoritmo que lesse quantos valores o usurio decidisse e somasse todos at que o usurio digitasse o valor -1 e finalizasse o programa, dando a soma final. O algoritmo consiste em o primeiro valor dado pelo usurio ser armazenado em uma varivel e, a partir do segundo valor, os valores seriam armazenados em uma outra varivel , respeitando uma funo repita at que o usurio digitasse -1. Uma terceira varivel faria o papel de soma e, a cada novo valor obtido, a soma dos valores anteriores se somaria com este novo valor. Uma vez digitado o valor -1, o programa d a somatria total e encerra o funcionamento. Algoritmo: Preo var x,y,z,k:real inicio escreval("Digite um preo. Se desejar encerrar, digite '-1'") leia(x) se (x=-1) entao escreval("Fim.") fimse se (x<>-1)entao repita escreval("Digite outro preo, se desejar encerrar digite '-1'.")

leia(y) se (y>=0) entao z<-x+y x<-z k<-y fimse ate (y=-1) se (y=-1) entao escreval("A soma dos valores :", z) fimse fimse fimalgoritmo

P7) Neste exerccio o programa ir ler 3 valores, sendo eles o primeiro termo da p.a, a razo da p.a e o nmeros de valores existentes na p.a. A partir dos valores inserido a varivel na(ltimo termo da p.a) assumira o valor da multiplicao da razo pela soma do primeiro termo e a subtrao do nmero de valores existentes na p.a por 1. Em seguida x assumir valores do primeiro termo at a varivel an com passo razo. Feito isso o programa escrever os valores de x e se encerrar. Algoritimo: Progresso aritmtica var

a1,razao,N,an,x: inteiro inicio escreval("Digite o valore do primeiro termo") leia(a1) limpatela escreval("Digite o valor da razao") leia(razao) limpatela escreval("Digite o numero de valores existentes na pa") leia(N) limpatela an <- a1 + (N-1) * razao para x de a1 ate an passo razao faca escreva(x) fimpara fimalgoritmo

P8) O Algoritmo pede o nmero de termos, o primeiro termo e a razo, a partir disso usando a funo para n de n ate 1 fica estabelecido a frmula da P.G an<-a1*q^(n-1) de onde possvel extrair os N primeiros termos da P.G

Algoritmo: Progresso Geomtrica var a1, q, n :inteiro an : real inicio escreval (" Digite o nmero de termos:") leia (n) escreval ("Digite o primeiro termo: ") leia (a1) escreval (" Digite a razao: ") leia (q) para n de 1 ate (n) faca an<-a1*q^(n-1) escreva (an) fimpara fimalgoritmo P09) O algoritmo funciona informando-se no incio o numero de voltas e os tempos de cada volta. Informa-se uma varivel que ir valer de 1 at o numero de voltas dado pelo usurio. A cada valor desta varivel sero coletados as duraes das voltas e, usando variveis temporrias se pode fazer a soma e a mdia das voltas e comparar para adquirir-se a melhor e a pior volta do piloto.

Algoritmo: Nmero de voltas var n,k,melhorvolta: inteiro tempo,menorvolta,media,soma: real inicio k<-1 soma<-0 escreval("Digite o numero de voltas:") leia(n) enquanto (k<=n) faca escreval("Digite o tempo da ",k," volta") leia(tempo) se (k=1) entao melhorvolta<-k menorvolta<-tempo fimse se (menorvolta>tempo) entao menorvolta<-tempo melhorvolta<-k fimse soma<-soma+tempo k<-k+1 fimenquanto media<-soma/(k-1) escreval("A media dos tempos das voltas :",media) escreval("O melhor tempo foi de:",menorvolta) escreval("A volta em que o menor tempo ocorreu foi a volta:",melhorvolta) fimalgoritmo P10)

Este programa faz a lista dos nmeros de 1 a 200, dizendo se cada um perfeito, abundante ou reduzido. O nmero ser perfeito quando for igual soma dos seus divisores, abundante quando for menor que a soma dos seus divisores, e reduzido quando for maior que a soma de seus divisores. O programa faz o teste para n, com n adquirindo valores de 1 a 200. Para fazer a soma dos divisores de determinado nmero, o programa usa a seguinte condio: se o resto da diviso de n por um valor x(inicialmente 1) for igual a zero, ento x divisor de n. Se x for divisor de n, o programa guarda a soma deste primeiro divisor em uma varivel y usando a expresso y = y + x. Se o resto da diviso for diferente de 0, ento x no divisor de n, e x recebe outro valor para teste (x+1) enquanto x for menor que n. No final, o programa faz o teste: se n igual a y(soma dos divisores), ento n um nmero perfeito. Se for menor do que y, um nmero abundante, e se for maior, um nmero reduzido. Outra funo a contagem. O programa conta quantos nmeros perfeitos existem de 1 a 200, quantos abundantes e tambm quantos reduzidos. Para isso, utilizase as variveis totp(total de perfeitos), tota(total de abundantes) e totr(total de reduzidos). Inicialmente todas estas variveis valem 0. Quando constata-se que um nmero perfeito (pelo mtodo descrito no 2 pargrafo), a varivel totp assume o valor de totp + 1, fazendo, assim, a contagem. O mesmo acontece com os reduzidos e abundantes. Algoritmo: "classificanumeros" var n, x, y, totp, tota, totr: inteiro

inicio totp <- 0 tota <- 0 totr <- 0 para n de 1 ate 200 faca x <- 1 enquanto (x < n) faca se ((n % x)=0) entao y <- y + x fimse x <- x + 1 fimenquanto se n = y entao escreval (n:3," um nmero perfeito") totp <- totp + 1 se n = x entao y <- 0 fimse senao se n < y entao escreval (n:3," um nmero abundante") tota <- tota + 1 se n = x entao y <- 0 fimse senao se n > y entao escreval (n:3," um nmero reduzido") totr <- totr + 1 se n = x entao y <- 0 fimse fimse

fimse fimse fimpara escreval ("O nmero total de nmeros perfeitos ",totp) escreval ("O nmero total de nmeros abundantes ",tota) escreval ("O nmero total de nmeros reduzidos ",totr) fimalgoritmo P11) No algoritmo pedido um nmero e atravs de um teorema possvel verificar se ele primo ou no. Usando a funo enquanto foi introduzido o teorema ((x <= raizQ(n)) e (k = verdadeiro)) e com o artifcio se foi possvel estabelecer as condies para nmeros primos. Algoritmo: Nmeros Primos var n, x: inteiro k: logico inicio escreval ("Digite um nmero:") leia(n) k <- verdadeiro x <- 2 enquanto ((x <= raizQ(n)) e (k = verdadeiro)) faca se (n%x = 0) entao k <- falso

fimse x <- x+1 fimenquanto se k = verdadeiro entao escreval (n," um nmero primo") senao escreval (n," no um nmero primo") fimse fimalgoritmo

P12) Se um nmero igual soma dos divisores de outro, esses nmeros so amigos. Para fazer esse teste, o programa pede dois valores x e y no comeo. Para determinar a soma dos divisores de x e y, usase, respectivamente, as variveis p e q. Para determinar a quantidade de divisores p, feito o seguinte teste: se o resto da diviso de x por m(inicialmente 1) for igual a 0, ento m divisor de x e adicionado ao valor de y(inicialmente 0), da seguinte forma: y = y + m. Se o resto for diferente de 0, ignora-se este valor de m e faz-se o teste com o prximo (m+1), enquanto m < x. Usa-se o mesmo mtodo para calcular a soma dos divisores de y, a diferena que ao invs de usar-se p e m, usa-se q e n. Para dois nmeros serem amigos, a soma dos divisores de um deve ser igual ao outro. Ou seja, x(um dos nmeros) deve ser igual a q(soma dos divisores de y) e y(o

outro nmero) deve ser igual a p(soma dos divisores de x). Se isso acontecer, so amigos. Se no, no so amigos. Algoritmo "numerosamigos" var x, y, m, n, p, q: inteiro inicio p <- 0 q <- 0 escreval ("Este programa diz se dois nmeros so amigos ou no.") escreval ("Digite um valor para x:") leia(x) escreval ("Digite um valor para y:") leia (y) m <- 1 enquanto (m < x) faca se ((x % m)=0) entao p <- p + m fimse m <- m + 1 fimenquanto n <- 1 enquanto (n < y) faca se ((y % n)=0) entao q <- q + n fimse n <- n + 1 fimenquanto se (x = q) e (y = p) entao escreval ("estes nmeros so amigos.") senao escreval ("Estes nmeros no so amigos.")

fimse fimalgoritmo P13) Neste algoritmo, se chamaria o numero de usurios de energia na cidade de uma variavel, e atribuiria o valor de 1 para outra varivel. Assim, se coletaria todos os dados que o algoritmo pede para o primeiro usurio e aps o acontecido se somaria 1 ao valor desta outra varivel para que se pudesse coletar os dados dos usurios seguintes at que esta se tornaria igual ao numero de consumidores totais. As informaes de cada consumidor seriam armazenadas e assim se poderia dizer qual o total cada consumidor teria que pagar, e, comparando os consumos, no final da coleta de dados daria para informar a mdia geral dos consumos, o maior e o menor consumo registrado entre todos os consumidores. Por ltimo, para se poder dar o consumo total de cada um dos 3 tipos de consumidores existentes foi necessrio armazenar cada consumo nas variveis tipo1 , tipo2 , tipo3 e assim, no final da execuo o algoritmo exibiria na tela cada somatria de cada tipo de consumidor. Algoritmo: Consumo de energia var n, k, codigo: inteiro p, individual, soma, tipo1, tipo2, tipo3: real z, x, c, maior, menor, mg : real inicio

k<-1 tipo1<-0 tipo2<-0 tipo3<-0 escreval ("Fornea o preo de kWh, em reais, de sua cidade: ") leia(p) escreval("Fornea a quantidade de consumidores:") leia (n) escreval("Codigos: Para residencial,1. Para comercial, 2. Para industrial,3.;") enquanto (k<=n) faca escreval ( " Fornea o consumo de energia do" ,k,"o consumidor, em kWh: ") leia(c) escreval ("Digite o cdigo do " ,k,"o consumidor ( 1, 2 ou 3 ): ") leia (codigo) se (k=1) entao menor<-c maior<-c fimse se (menor>c) entao x<-menor

menor<-c maior<-x fimse se (maior<c) entao z<-maior maior<-c menor<-z fimse se (codigo = 1) entao tipo1<- tipo1 + c senao se (codigo = 2)entao tipo2<-tipo2 + c senao tipo3<-tipo3 + c fimse fimse individual<- (p)*(c) soma<-soma + c mg<- soma/n escreval ("O ",k,"o consumidor ir pagar R$", individual,) k<-k+1

fimenquanto escreval ("O maior consumo, em kWh foi de ",maior," e o menor foi de ", menor) escreval ("O total de consumo residencial foi de ",tipo1," kwh. ") escreval("O total de consumo comercial foi de ", tipo2,"kwh. ") escreval ("O total de consumo industrial foi de ", tipo3, " kwh.") escreval ( "A mdia geral do consumo foi de", mg," kwh") fimalgoritmo

P14) O Algoritmo calcula o menor nmero possvel de notas a ser decomposto; com o uso da funo ate define-se um valor positivo, utilizando enquanto possvel separar os valores de acordo com as notas que se somam para a decomposio, ex: enquanto (din >= 100) faca x100 := x100+1 din := din - 100

Algoritmo: Contagem de dinheiro var din: inteiro

x100, x50, x10, x5, x1: inteiro inicio Repita escreval ("Digite um valor") Leia (din) ate (din>0) escreval ("o valor que ser decomposto :", din,"reais") x100 := 0 x50 := 0 x10 := 0 x5 := 0 x1 := 0 enquanto (din >= 100) faca x100 := x100+1 din := din - 100 fimenquanto enquanto (din>= 50) faca x50 := x50 + 1 din := din - 50 fimenquanto enquanto (din>=10) faca x10 := x10 + 1

din := din - 10 fimenquanto enquanto (din>=5) faca x5 := x5 + 1 din := din - 5 fimenquanto enquanto (din >=1) faca x1 := x1 + 1 din := din - 1 fimenquanto escreval ("A quantidade de notas de 100 :", x100) escreval ("de 50 :", x50) escreval ("de 10 :", x10) escreval ("de 5 :", x5) escreval ("e de 1 de:", x1) fimalgoritmo P15) O algoritmo pede dois nmeros e atravs da funo enquanto usando o artifcio MOD possvel calcular o MDC entre os dois nmeros Algoritmo: MDC var a,b,c, dividendo, divisor:inteiro

inicio // Seo de Comandos escreval("Digite o primeiro nmero:") leia (a) limpatela escreval("Digite o segundo nmero:") leia (b) limpatela dividendo <- a divisor <- b enquanto ((dividendo MOD divisor) <> 0) faca c <- (dividendo MOD divisor) dividendo <- divisor divisor <- c fimenquanto escreva (" O MDC igual a ",divisor) fimalgoritmo P16) Neste exerccio o programa ir ler o valor inserido e logo em seguida h uma condio. Se o resto da diviso entre o nmero digitado e 400 for 0 ento o programa ir escrever que o ano um ano bissexto, seno teremos outra condio. Na outra condio se o resto da diviso do nmero por 400 for diferente de 0 ento a varivel x

assumir o valor do resto da diviso entra o ano por 4 e varivel y assumir o valor do resto da diviso entre o ano e 100, e ento teremos outra condio. Se a varivel x for igual a e a varivel y for diferente de 0 o programa escrever que o ano um ano bissexto, se essa ltima condio no for satisfeita o programa escreva que o ano no um ano bissexto e se encerrar. Algoritmo: Ano Bissexto var x,ano,y: inteiro inicio // Seo de Comandos escreval("Digite um ano") leia(ano) limpatela se(ano MOD 400 = 0) entao escreval(ano," um ano bissexto") senao se (ano MOD 400 <> 0) entao x <- (ano MOD 4) y <- (ano MOD 100) se (x = 0) e (y <> 0) entao escreval(ano," um ano bissexto") senao

escreval(ano," no um ano bissexto") fimse fimse fimse fimalgoritmo

P17) Neste exerccio o programa ir ler 3 variveis, senda elas a, b e c. Logo no comeo teremos 3 somas e 3 subtraes entre as variveis, disponveis da seguinte forma: soma1 <- a+b soma2 <- a+c soma3 <- b+c sub1 <- a-b sub2 <- a-c sub3 <- b-c Em seguida temos uma condio, se a for maior que sub 3 e menor que soma 3, b for maior que sub 2 e menor que soma 2 e c for maior que sub 3 e menor que soma 3 ento entraremos em outra condio, sendo ela: se a for igual a b e a for diferente de c, ou, a for igual a c e a for diferente de b ento o programa escrever que o tringulo issceles. Se esta condio no for satisfeita o programa entrar em outra condio, que : se a for igual b e c ento o programa escrever que o tringulo equiltero. Se essa condio tambm no for satisfeita o programa entrar em

uma ltima condio, que : se a for diferente de b e de c e b for diferente de c ento o programa escrever que o tringulo escaleno. Se nenhuma das condies citadas for satisfeita o programa escrever que a condio de existncia de um tringulo no foi satisfeita e se encerrar Algoritmo: Tringulos var x,y,z,soma1,soma2,soma3,sub1,sub2,sub3: inteiro inicio escreval ("Este programa classifica um tringulo em issceles, escaleno ou equiltero.") escreval("digite um valor para x:") leia(x) escreval("digite um valor para y") leia(y) escreval("digite um valor para z") leia (z) soma1 <- x+y soma2 <- x+z soma3 <- y+z sub1 <- x-y sub2 <- x-z sub3 <- y-z

se (x > sub3) e (x < soma3) e (y > sub2) e (y < soma2) e (z > sub3) e (z < soma3) entao se (x=y) e (x<>z) ou (x=z) e (x<>y) entao escreval("O tringulo issceles") senao se (x=y) e (y=z) entao escreval("O tringulo equiltero") senao se (x<>y) e (y<>z) e (z<>x) entao escreval("O tringulo escaleno") fimse fimse fimse senao escreval("A condio de existncia de um tringulo no foi satisfeita.") fimse fimalgoritmo

P18) Neste exerccio o usurio ir digita um valor de 1 a 5 para votar em um dos 3 candidatos ou nulo ou em branco. Em seguida o programa ir ler a resposta e entrar na primeira condio. Se a resposta dada pelo usurio for 1 ento o

programa adicionar 1 varivel fulano, se a condio no for satisfeita ele entrar em outra condio. Se a resposta for 2 ento o programa adicionar 1 varivel beltrano, se a condio no for satisfeita ele entrar em outra condio. Se a resposta for 3 ento o programa adicionar 1 varivel siclano, se a condio no for satisfeita ele entrar em outra condio. Se a resposta for 4 ento o programa adicionar 1 varivel votonulo, se a condio no for satisfeita ele entrar em outra condio. Se a resposta for 5 ento o programa adicionar 1 varivel votobranco, se a condio no for satisfeita ele entrar em outra condio. O programa ir repetir a ao acima at que a soma entre todas as variveis seja igual a 99. Quando isso acontecer o programa ira escrever quantos votos cada varivel recebeu e ir se encerrar. Algoritmo: Votao var resp, ful, sic, bel, nul, bran: inteiro inicio escreval ("Este programa usado para as eleies presidenciais. Escolha seu candidato:") escreval ("1- Fulano") escreval ("2- Sicrano") escreval ("3- Beltrano") escreval ("4- Voto nulo") escreval ("5- Voto branco") enquanto resp <> 99 faca

escreval ("Digite o nmero correspondente ao seu candidato:") leia (resp) escolha (resp) caso 1 escreval ("Voc votou em Fulano") ful <- ful + 1 caso 2 escreval ("Voc votou em Sicrano") sic <- sic + 1 caso 3 escreval ("Voc votou em Beltrano") bel <- bel + 1 caso 4 escreval ("Voc votou nulo") nul <- nul + 1 caso 5 escreval ("Voc votou em branco") bran <- bran + 1 caso 99 interrompa outrocaso escreval ("Voto invlido")

fimescolha fimenquanto escreval ("Total de votos para Fulano:",ful) escreval ("Total de votos para Sicrano:",sic) escreval ("Total de votos para Beltrano:",bel) escreval ("Total de votos nulos:",nul) escreval ("Total de votos em branco:",bran) fimalgoritmo P19) Neste exerccio o programa ir ler um valor e em seguida entrar em um loop que : enquanto o valor inserido no for maior que 0 a seguinte mensagem ir aparecer "valor invlido, digite um valor maior que 0". Quando o nmero for maior que 0 o programa ir entrar em uma condio. Enquanto o nmero inserido for maior que 10 o programa ir dividi-lo por 10 e a varivel k assumir o valor de k + 1 e em seguida o programa imprimir o valor de k(nmero de algarismos de n(nmero inserido). Na segunda parte do algoritmo teremos outra condio. Enquanto o nmero inserido for maior ou igual a 1 a varivel b assumir o valor do resto da diviso entre o nmero e 10. Em seguida a varivel soma assumir o valor de soma + b. Logo depois n(nmero inserido) assumir o valor da diviso da subtrao de n por b por 10. Feito isso o programa imprimir a soma dos algarismos do nmero inserido. Algoritmo: soma dos dgitos var

k, n, z,soma,b: inteiro r: real inicio k <- 1 escreval("Digite um nmero inteiro maior que zero") leia(n) enquanto (n<0) faca escreval(" Digite um valor maior que zero") leia(n) fimenquanto r <- n enquanto (r>10) faca r <- r/10 k <- k+1 fimenquanto soma <- 0 enquanto n >= 1 faca b <- n MOD 10 soma <- soma + b n <- int((n-b) / 10) fimenquanto escreval("A quantidade de dgitos :", k)

escreval("A soma dos algarismos ", soma) fimalgoritmo P20) Neste algoritmo o programa ler um valor. Em seguida o programa desmembra os algaritimos do valor inserido e os reordena de trs para frente, como por exemplo: 123 ser imprimido como 321. Algoritmo: Palindromo var x,y,z,c,v: inteiro inicio // Seo de Comandos leia(x) limpatela y <- int(x / 10) z <- x MOD 10 c <- int(y / 10) v <- y MOD 10 escreval("O palndromo desejado ",x,z,v,c) fimalgoritmo

P21)

Este programa levanta o perfil psicolgico de uma pessoa a partir de certas contas feitas com a data de nascimento da mesma. Usamos as variveis dia, mes, ano, a, b, c, d, f, todas com valores inteiros. As variveis dia, mes e ano se referem, respectivamente, ao dia, ms e ano de nascimento da pessoa. A varivel a a soma mes + ano + dia*100. A varivel c o resto da diviso da varivel a por 100. A varivel b a diviso da subtrao das variveis a e c por 100. A varivel d a soma das variveis b e c A varivel f o resto da diviso da varivel d por 5. A varivel f utilizada para o levantamento do perfil psicolgico. Algoritmo "perfilpsicologico" var dia, mes, ano, a, b, c, d, f: inteiro inicio escreval ("Este programa levanta o seu perfil psicolgico.") escreval ("Digite o dia em que voc nasceu.") leia (dia) escreval ("Digite o ms em que voc nasceu.") leia (mes) escreval ("Digite o ano em que voc nasceu.") leia (ano) a <- dia*100 + mes + ano c <- a % 100 b <- int((a - c) / 100) d <- b + c f <- int(d % 5) escolha (f)

caso 0 escreval ("Tmido") caso 1 escreval ("Sonhador") caso 2 escreval ("Paquerador") caso 3 escreval ("Atraente") caso 4 escreval ("Irresistvel") fimescolha fimalgoritmo P22) Neste algoritmo foi usada a funo para i de .. ate .. para que se pudesse fazer a somatria do determinado numero elevado e dividido por outro numero, sendo que este segundo seria de 1 at tal limite. Quando o numero elevado e dividido fosse 1, o valor da primeira varivel seria ele prprio, porem quando elevado e divido por 2 at o limite determinado pelo usurio , o resultado seria guardado em 2 novas variveis, sendo que uma para a elevao do numero e outra para a diviso deste. Ento se teria a varivel soma e esta no final seria somada ao valor da primeira varivel para que se obtivesse a somatria total.

Algoritmo: Somatria var n,x,i:inteiro k,v,w,r,p,t:real

inicio escreval("Digite um valor para x") leia(x) limpatela escreval("Digite um valor para n") leia(n) limpatela para i de 1 ate 1 faca k<-x fimpara para i de 2 ate n faca p <-x^i t<-p/i v<-t+w w<-v fimpara r<-k+w escreval(r) // Seo de Comandos fimalgoritmo

P23)

O corpo do lao enquanto ser executado 5 vezes e os valores de x e y imediatamente aps a sada desse lao sero, respectivamente, 5 e 5. P24) O corpo do lao enquanto ser executado 5 vezes e os valores de x e y imediatamente aps a sada desse lao sero, respectivamente, 5 e 5.