segunda-feira, 27 de setembro de 2010

3-18. Escreva um algoritmo que leia as notas das duas primeiras provas de um aluno e calcule qual o valor mínimo da terceira nota, para que seja aprovado, considerando a média mínima das 3 provas 6.0.

lgoritmo "Aluno Aprovado"
var
prova1, prova2, proximaProva, media: numerico
inicio
 escreval ("Calcular nota para aluno ser aprovado ")
 escreva ("Informe a primeira nota: ")
 leia (prova1)
 escreva ("Informe a segunda nota: ")
 leia (prova2)
  proximaProva <- (prova1 + prova2) - 18
  media <- (prova1 + prova2 + proximaProva) / 3
  se (media >= 6.0) entao
      escreva ("O aluno foi aprovado com: ", media:5:2, " de média.")
  senao
      escreva ("O aluno foi reprovado" )
  fimse
   fimalgoritmo

3-17. Escreva um algoritmo que leia a quantia em dinheiro que uma pessoa tem para enviar cartas, o preço de um envelope, o preço de um selo, a quantidade de selos que a pessoa já tem e a quantidade de envelopes que a pessoa também já tem. Calcular e informar quantas cartas a pessoa pode enviar.

algoritmo "Votação para o Senado"
var
nome1, nome2, nome3: literal
votos1, votos2, votos3: numerico
inicio
 escreval ("Clacule o senador mais votado ")
 escreva ("Informe o nome do candidato 1: ")
 leia (nome1)
 escreva ("Informe a quantidade de votos do candidato 1: ")
 leia (votos1)
 escreva ("Informe o nome do candidato 2: ")
 leia (nome2)
 escreva ("Informe a quantidade de votos do candidato 2: ")
 leia (votos2)
 escreva ("Informe o nome do candidato 3: ")
 leia (nome3)
 escreva ("Informe a quantidade de votos do candidato 3: ")
 leia (votos3)
 se (votos1 > votos2) e (votos1 > votos3) entao
     escreva ("Maior Votação é do candidato: ", nome1)
 senao
     se (votos2 > votos1) e (votos2 > votos3) entao
         escreva ("Maior Votação é do candidato: ", nome2)
     senao
         se (votos3 > votos1) e (votos3 > votos2) entao
             escreva ("Maior Votação é do candidato: ", nome3)
         senao
             se (votos1 > votos2) e (votos1 = votos3) entao
                escreva ("Maior Votação são dos candidatos: ", nome1, " e " , nome3)
             senao
                 se (votos1 > votos3) e (votos1 = votos2) entao
                     escreva ("Maior Votação são dos candidatos: ", nome1, " e " , nome2)
                 senao
                     se (votos2 > votos1) e (votos2 = votos3) entao
                        escreva ("Maior Votação são dos candidatos: ", nome2, " e " , nome3)
                     senao
                         se (votos1=votos2) e (votos1=votos3) entao
                             escreva ( " Os candidatos: ", nome1, ", " , nome2, " e ", nome3, " tiveram a mesma quantidade de votos." )
                         fimse
                     fimse
                 fimse
             fimse
         fimse
     fimse
 fimse
 fimalgoritmo

3-16. Escreva um algoritmo que leia o nome de 3 candidatos ao Senado, com suas votações. Escreva o nome do candidato mais votado, e em caso de impate, escreva o nome dos mais votados

algoritmo "Votação para o Senado"
var
nome1, nome2, nome3: literal
votos1, votos2, votos3: numerico
inicio
 escreval ("Clacule o senador mais votado ")
 escreva ("Informe o nome do candidato 1: ")
 leia (nome1)
 escreva ("Informe a quantidade de votos do candidato 1: ")
 leia (votos1)
 escreva ("Informe o nome do candidato 2: ")
 leia (nome2)
 escreva ("Informe a quantidade de votos do candidato 2: ")
 leia (votos2)
 escreva ("Informe o nome do candidato 3: ")
 leia (nome3)
 escreva ("Informe a quantidade de votos do candidato 3: ")
 leia (votos3)
 se (votos1 > votos2) e (votos1 > votos3) entao
     escreva ("Maior Votação é do candidato: ", nome1)
 senao
     se (votos2 > votos1) e (votos2 > votos3) entao
         escreva ("Maior Votação é do candidato: ", nome2)
     senao
         se (votos3 > votos1) e (votos3 > votos2) entao
             escreva ("Maior Votação é do candidato: ", nome3)
         senao
             se (votos1 > votos2) e (votos1 = votos3) entao
                escreva ("Maior Votação são dos candidatos: ", nome1, " e " , nome3)
             senao
                 se (votos1 > votos3) e (votos1 = votos2) entao
                     escreva ("Maior Votação são dos candidatos: ", nome1, " e " , nome2)
                 senao
                     se (votos2 > votos1) e (votos2 = votos3) entao
                        escreva ("Maior Votação são dos candidatos: ", nome2, " e " , nome3)
                     senao
                         se (votos1=votos2) e (votos1=votos3) entao
                             escreva ( " Os candidatos: ", nome1, ", " , nome2, " e ", nome3, " tiveram a mesma quantidade de votos." )
                         fimse
                     fimse
                 fimse
             fimse
         fimse
     fimse
 fimse
 fimalgoritmo

3-15. Escreva um algoritmo que leia duas datas, na forma dia, mês e ano, e informe qual é a mais recente.

algoritmo "Informe a data recente"
var
ano1, ano2, mes1, mes2, dia1, dia2, primeiraData, segundaData: inteiro
inicio
 escreval ("Qual é a data mais recente ")
 escreva ("Informe o ano da primeira data: ")
 leia (ano1)
 escreva ("Informe o mês da primeira data: ")
 leia (mes1)
 escreva ("Informe o dia da primeira data: ")
 leia (dia1)
 escreva ("Informe o ano da segunda data: ")
 leia (ano2)
 escreva ("Informe o mês da segunda data: ")
 leia (mes2)
 escreva ("Informe o dia da segunda data: ")
 leia (dia2)
 primeiraData <- (ano1*365) + (mes1*30) + dia1
 segundaData <- (ano2*365) + (mes2*30) + dia2
 se primeiraData > segundaData entao
    escreva ("A data mais recente é a Primeira Data: ", ano1, " de ", mes1, " de" , dia1)
 senao
    escreva ("A data mais recente é a Segunda Data: ", ano2, " de ", mes2, " de" , dia2)
 fimse

  
fimalgoritmo

3-14 - Escreva um algoritmo que leia 3 valores correspondentes ao dia, mês e ano de nascimento de uma pessoa e outros três valores correspondentes ao dia, mês e ano do dia corrente. O algoritmo deve escrever a idade da pessoa.

algoritmo "Calcule a idade"
var
ano, mes, dia, diaNascimento, mesNascimento, anoNascimento, diaAtual, mesAtual, anoAtual: real
inicio
 escreval ("Calcule a idade ")
 escreva ("Informe o dia do nascimento: ")
 leia (diaNascimento)
 escreva ("Informe o mês do nascimento: ")
 leia (mesNascimento)
 escreva ("Informe o ano do nascimento: ")
 leia (anoNascimento)
 escreva ("Informe o dia de hoje: ")
 leia (diaAtual)
 escreva ("Informe o mês corrente: ")
 leia (mesAtual)
 escreva ("Informe o ano corrente: ")
 leia (anoAtual)
  ano <- anoAtual - anoNascimento
  mes <- mesAtual - mesNascimento
  dia <- diaAtual - diaNascimento
  escreva (" Você tem hoje: ", ano, " ano(s) ", mes, " mês(es) e ", dia, " dia(s)")
  
fimalgoritmo

3-13 - Escreva um algoritmo que leia a altura (em metros), o peso (em quilogramas) e o sexo ("Masculino" ou Feminino") e calcule seu peso ideal, dado por: peso ideal homem = (72,7 x altura) - 58 ou peso ideal da mulher = (62,1x altura) - 44. O algoritmo deve, também, informar se a pessoa está abaixo ou acima de seu peso ideal em quilos.

algoritmo "Peso Ideal"
var
altura: numerico
peso, pesoIdealHomem, pesoIdealMulher, pesoAcima, pesoAbaixo: real
sexo: literal
inicio
 escreval ("Calcule o peso ideal ")
 escreva ("Informe o peso em quilograma: ")
 leia (peso)
 escreva ("Informe a altura em metros: ")
 leia (altura)
 escreva ("Informe o sexo, masculino (m) ou feminino (f): ")
 leia (sexo)
   se (sexo = "m") entao
     pesoIdealHomem <- (72.7 * altura) - 58
       se (pesoIdealHomem < peso) entao
         pesoAcima <- peso - pesoIdealHomem
           escreva (" Você está com: ", pesoAcima:5:2, " kg acima de seu peso ideal")
       senao
         se (pesoIdealHomem > peso) entao
           pesoAbaixo <- pesoIdealHomem - peso
              escreva (" Você está com: ", pesoAbaixo:5:2, " kg abaixo de seu peso ideal")
         fimse
       fimse
   fimse
 se (sexo = "f") entao
     pesoIdealMulher <- (62.1 * altura) - 44.77
       se (pesoIdealMulher < peso) entao
         pesoAcima <- peso - pesoIdealMulher
           escreva (" Você está com: ", pesoAcima:5:2, " kg acima de seu peso ideal")
       senao
         se (pesoIdealMulher > peso) entao
           pesoAbaixo <- pesoIdealMulher - peso
              escreva (" Você está com: ", pesoAbaixo:5:2, " kg abaixo de seu peso ideal")
         fimse
       fimse
   fimse
  
fimalgoritmo

3-12 Escreva um algoritmo que leia as notas das três provas de um aluno (p1, p2 e p3), calcule sua média artmética e escreva-a. As notas devem estar no intervalor (0,10).

lgoritmo "Média de 3 Provas"
var
prova1, prova2, prova3, media: real
inicio
 escreval ("Calcule a média das 3 provas")
 escreva ("Informe a nota da prova 1: ")
 leia (prova1)
 escreva ("Informe a nota da prova 2: ")
 leia (prova2)
 escreva ("Informe a nota da prova 3: ")
 leia (prova3)
  se (prova1 >= 0) e (prova1<= 10) entao
     se (prova2 >= 0) e (prova2<= 10) entao
        se (prova3 >= 0) e (prova2<= 10) entao
            media <- (prova1+prova2+prova3)/3
        fimse
     fimse
  fimse
 escreva (" A média das 3 provas eh: ", media:5:2)
fimalgoritmo

3-11 - Escreva um algoritmo que leia um dia, mês e ano e escreva, para essa data lida, o número de dias transcorridos no ano.

algoritmo "Dias transcorridos no ano"
var
dia, mes, ano, diasCorridos: inteiro
inicio
  escreval ("Calcule os dias transcorridos de uma data")
  escreva ("Informe a dia: ")
  leia (dia)
  escreva ("Informe o mês: ")
  leia (mes)
  escreva ("Informe o ano: ")
  leia (ano)
  se ((ano%4) = 0) entao
    diasCorridos <- 366
  senao
    diasCorridos <- 365
  fimse
  se (mes=12) entao
    diasCorridos <- diasCorridos - 31
    diasCorridos <- diasCorridos + dia
  senao
    diasCorridos <- diasCorridos - 31
    se (mes=11) entao
      diasCorridos <- diasCorridos - 30
      diasCorridos <- diasCorridos + dia
    senao
      diasCorridos <- diasCorridos - 30
      se (mes=10) entao
        diasCorridos <- diasCorridos - 31
        diasCorridos <- diasCorridos + dia
      senao
        diasCorridos <- diasCorridos - 31
        se (mes=09) entao
          diasCorridos <- diasCorridos - 30
          diasCorridos <- diasCorridos + dia
        senao
          diasCorridos <- diasCorridos - 30
          se (mes=08) entao
            diasCorridos <- diasCorridos - 31
            diasCorridos <- diasCorridos + dia
          senao
            diasCorridos <- diasCorridos - 31
            se (mes=07) entao
              diasCorridos <- diasCorridos - 31
              diasCorridos <- diasCorridos + dia
            senao
              diasCorridos <- diasCorridos - 31
              se (mes=06) entao
                diasCorridos <- diasCorridos - 30
                diasCorridos <- diasCorridos + dia
              senao
                diasCorridos <- diasCorridos - 30
                se (mes=05) entao
                    diasCorridos <- diasCorridos - 31
                    diasCorridos <- diasCorridos + dia
                senao
                   diasCorridos <- diasCorridos - 31
                   se (mes=04) entao
                     diasCorridos <- diasCorridos - 30
                     diasCorridos <- diasCorridos + dia
                   senao
                     diasCorridos <- diasCorridos - 30
                     se (mes=03) entao
                        diasCorridos <- diasCorridos - 31
                        diasCorridos <- diasCorridos + dia
                     senao
                        diasCorridos <- diasCorridos - 31
                        se (mes=02) entao
                           se ((ano%4) = 0) entao
                               diasCorridos <- diasCorridos - 29
                               diasCorridos <- diasCorridos + dia
                           senao
                              diasCorridos <- diasCorridos - 28
                              diasCorridos  <- diasCorridos + dia
                           fimse
                        senao
                           diasCorridos <- dia
                        fimse
                     fimse
                   fimse
                fimse
              fimse
             fimse
          fimse
        fimse
      fimse
    fimse
  fimse

  escreva ("O total de dias corridos eh: ", diasCorridos)
fimalgoritmo

sábado, 18 de setembro de 2010

Cap. 3 -Exercício 3-10-Escreva um algoritmo que leia o nome de um nadador e sua idade. O algoritmo deve escrever A categoria de Marcos é INFANTIL B. A categoria é determinada conforme abaixo: • nadadores com idade entre 5 e 7 anos são da categoria INFANTIL A; • nadadores com idade entre 8 e 10 anos são da categoria INFANTIL B; • nadadores com idade entre 11 e 13 anos são da categoria JUVENIL A; • nadadores com idade entre 14 e 18 anos são da categoria JUVENIL B;e • nadadores com idade superior a 18 anos são da categoria SÊNIOR;

algoritmo "Classificar Categoria de Nadador por idade com nome"

var
 idade: inteiro
 nome: literal

inicio
 escreval ("Informe o nome do nadador: ")
 leia (nome)
 escreval ("Informe a idade do nadador")
 leia (idade)
 escreval
 se (idade < 5) entao
   escreva ("O nadador ", nome, " Não Compete")
 senao
   se (idade >= 5) e (idade <=7) entao
     escreva ("A categoria de ", nome , " eh Infantil A")
   senao
     se (idade >= 8) e (idade <=10) entao
       escreva ("A categoria de ", nome , " eh Infantil b")
     senao
       se(idade >= 11) e (idade <=13) entao
         escreva ("A categoria de ", nome , " eh Juvenil A")
       senao
         se (idade >=14) e (idade <=17) entao
           escreva ("A categoria de ", nome , " eh Juvenil B")
         senao
           escreva ("A categoria de ", nome , " eh SÊNIOR")
         fimse
       fimse
     fimse
   fimse
 fimse
fimalgoritmo

Cap. 3 -Exercício 3-9-Escreva um algoritmo que implemente uma calculadora de quatro operações. O algoritmo lê o primeiro operando, a operação (algum dos quatro símbolos: “x”, “-“, “*”, ou “/”) e o segundo operando. Ele deve escrever 1º operando operação 2º operando = resultado. Por exemplo, se os valores lidos foram 4, “*” e 5, o algoritmo deve escrever 4*5 = 20.

algoritmo "calculadora de 4 operações"

var
numero1, numero2, resultado: real
sinal: literal

inicio
escreval ("calculadaora de 4 operações")
escreva ("Informe o primeiro número: ")
leia (numero1)
escreva ("Informe o segundo número: ")
leia (numero2)
escreva ("Informe a operação: ")
leia (sinal)
se sinal = "+" entao
   resultado <- (numero1 + numero2)
   escreva (" a operação " , numero1, "+" , numero2, "=" ,resultado)
senao
  se sinal = "-" entao
   resultado <- (numero1 - numero2)
   escreva (" a operação " , numero1, "-" , numero2, "=" ,resultado)
  senao
    se sinal = "*" entao
      resultado <- (numero1 * numero2)
      escreva (" a operação " , numero1, "*" , numero2, "=" ,resultado)
    senao
      se sinal = "/" entao
         resultado <- (numero1 / numero2)
         escreva (" a operação " , numero1, "/" , numero2, "=" ,resultado)
      senao
      fimse
    fimse
  fimse
fimse
fimalgoritmo

Cap.3 - Exercício 3-8 - Seja o seguinte algoritmo:

01. algoritmo “Dec2Bin”
02. var
03. b: literal
04. n, q, r: numérico
05. início
06. b <- “ “
07. escreva(“Entre com um número”)
08. leia(n)
09. q <- n
10. r<- q%2
11. q <- q\2
12. se r = 0 então
13. b <- “0” + b
14. senão
15. b <- “1” + b
16. fimse
17. r <- q%2
18. q <- q\2
19. se r = 0 então
20. b <- “0” + b
21. senão
22. b <- “1” + b
23. fimse
24. r <- q%2
25. q <- q\2
26. se r = 0 então
27. b <- “0” + b
28. senão
29. b <- “1” + b
30. fimse
31. r <- q%2
32. q <- q\2
33. se r = 0 então
34. b <- “0” + b
35. senão
36. b <- “1” + b
37. fimse
38. r <- q%2
39. q <- q\2
40. se r = 0 então
41. b <- “0” + b
42. senão
43. b <- “1” + b
44. fimse
45. escreva(n, “ em decimal é representado por “, b, “ em binário”)
46. fimalgoritmo
O que será escrito na tela, supondo que o valor de n é 29? Mostre o teste de mesa utilizado para
determinar o valor de b.
----
Na tela aparecerá:
  entre com o número29
  29em decimal é representado por 11111em binário
  ***Fim da execução

Obs.: Não consegui encontrar o erro, mas o algoritmo está calculando errado, pois 29 em binário é 11101, mas não consegui visualizar qual processo não está lendo o valor 0.

Cap. 3 -Exercício 3-7 -Escreva um algoritmo que leia o nome de cinco clientes de uma loja e valor (em reais) que cada um desses clientes pagou por sua compra. O algoritmo deverá escrever: 1. o valor total pago pelos cinco clientes; 2. o valor médio das compras efetuadas; 3. os nomes dos clientes que efetuaram compras superiores a 20 reais.

algoritmo "Clientes de um loja"

var
cliente1, cliente2, cliente3, cliente4, cliente5: literal
valorCliente1, valorCliente2, valorCliente3, valorCliente4, valorCliente5, valorMedio, valorTotal: real


inicio
escreval ("valores gastos pelos clientes na loja")
escreva ("Informe o nome do cliente 1: ")
leia (cliente1)
escreva ("Informe o valor gasto cliente 1, R$ ")
leia (valorCliente1)
escreva ("Informe o nome do cliente 2: ")
leia (cliente2)
escreva ("Informe o valor gasto cliente 2, R$ ")
leia (valorCliente2)
escreva ("Informe o nome do cliente 3: ")
leia (cliente3)
escreva ("Informe o valor gasto cliente 3, R$ ")
leia (valorCliente3)
escreva ("Informe o nome do cliente 4: ")
leia (cliente4)
escreva ("Informe o valor gasto cliente 4, R$ ")
leia (valorCliente4)
escreva ("Informe o nome do cliente 5: ")
leia (cliente5)
escreva ("Informe o valor gasto cliente 5, R$ ")
leia (valorCliente5)

valorTotal <- (valorCliente1 + valorCliente2 + valorCliente3 + valorCliente4 + valorCliente5)

valorMedio <- (valorTotal / 5)

escreval (" o valor total gasto na loja pelos clientes eh de R$ ",  valorTotal:5:2)
escreval ("O valor médio das compras efetuadas na loja eh de R$ ", valorMedio:5:2)


se valorCliente1 > 20 entao
    escreval ( "O Cliente " , cliente1, " gastou mais de R$20,00, ele gastou R$" , valorCliente1:5:2)
  se valorCliente2 > 20 entao
      escreval ( "O Cliente ", cliente2, "gastou mais de R$20,00, ele gastou R$" , valorCliente2:5:2)
    se valorCliente3 > 20 entao
        escreval ( "O Cliente ", cliente3, "gastou mais de R$20,00, ele gastou R$" , valorCliente3:5:2)
      se valorCliente4 > 20 entao
         escreval ( "O Cliente ", cliente4, "gastou mais de R$20,00, ele gastou R$" , valorCliente4:5:2)
       se valorCliente5 > 20 entao
         escreval ( "O Cliente ", cliente5, "gastou mais de R$20,00, ele gastou R$" , valorCliente5:5:2)
       fimse
      fimse
    fimse
  fimse
fimse
fimalgoritmo

Cap 3 -Exercício 3-6 Um sistema de equações lineares do tipo: ax X + b x y = c d x X + e x y = f pode ser resolvido da seguinte forma: x = c x e - b x f a x e - b x d y = a x f – c x d a x e – b x d Escreva um algoritmo que leia os coeficientes a, b, c, d e f e calcule e escreva os valores de x e y. Lembre-se de que os denominadores das equações não podem ser zero.

algoritmo "Calcular x e y"

var
a, b, c, d, f, x, y: numerico
inicio
escreval ( "calcule o valor de x e de y")
escreva ("informe o valor de a: ")
leia (a)
escreva ("informe o valor de b: ")
leia (b)
escreva ("informe o valor de c: ")
leia (c)
escreva ("informe o valor de d: ")
leia (d)
escreva ("informe o valor de f: ")
leia (f)
se (a<>0) ou (b<>0) ou (d<>0) entao
    x <- (c) - (b*f)/(a) - (b*d)
    y <- (a*f) - (c*d)/ (a)- (b*d)
    escreva ("O valor de x eh:  ", x)
    escreva ("O valor de y eh:  ", y)
senao
   escreva ("A equação não pode ser resolvida")
fimse
fimalgoritmo

Cap 3 -Exercício 3-5 Escreva um algoritmo que lê dois números inteiros e informa se o primeiro é múltiplo do segundo.

algoritmo "Verificar se 2 números são múltiplos"

var
x1, x2, resto: inteiro

inicio
escreval (" Verifique se os números são múltiplos ")
escreva ("Informe o valor de x1: ")
leia (x1)
escreval
escreva ("Informe o valor de x2: ")
leia (x2)
se (x1 > 0) entao
   resto <- (x1 mod x2)
senao
   resto <- (x2 mod x1)
fimse
   se (resto = 0) entao
   escreva ("Os números são múltiplos")
   senao
   escreva ("Os números não são múltiplos")
   fimse

fimalgoritmo