segunda-feira, 27 de setembro de 2010

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