sábado, 18 de setembro de 2010

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

Cap 3 -Exercício 3-4 Escreva um algoritmo para calcular a área de um círculo, fornecido o valor do raio, que deve ser positivo ou zero.

algoritmo "Calcular área de um círculo"

var
area, raio: real
piRecebe: numerico

inicio
piRecebe <- 3.141518
escreva ("Digite o raio: ")
leia (raio)
se ((raio>0) ou (raio=0)) entao
    area <- pi*(raio^2)
    escreva ("A área do círculo eh:  " ,area:5:2)
senao
    escreva ("O raio precisa ser >= 0")
fimse

Cap 3 - Exercício 3-3 Quais os valores armazenados em SOMA, NOME e TUDO após executados os passos abaixo, supondo-se que NUM, X, COR, DIA, TESTE e COD valem, respectivamente, 5, 2, “AZUL”, “TERÇA”, FALSO e VERDADEIRO?

1. NOME <- DIA
     TERÇA
2. SOMA <- (NUM^2/X) + (X + 1)
     15.5           (5^2/2)      +  (2+1)
3. TUDO <- não ((TESTE ou COD) e (X <> NUM))
      V         não (F)