sexta-feira, 17 de setembro de 2010

Exercício cap.3.1

1. Resolva as expressões lógicas:

1. 2 >3                                            2. (6 < 8) ou (3 > 7)

3. não (2 <> 2.0)                             4. 5 >= 6 ou 6 < 7 ou não ( a+ 5 – 6 = 8)onde a = 5

5. ( 34 < 9 e 5 + u = 34) ou (5 = 15/3 e 8 > 12) onde u = 29

Resposta:

1. F
2. V ou F = V
3. ñ F = V
4. F ou V ou V = V
5. ( F e V ) ou ( V e F )
         F      ou     F    = F

Exercício cap.3.2

2. Avalie (forneça o resultado da expressão lógica)

(((5/2 = 5/2) e (3.0 <> 3.1)) ou (5 >= 4)) e (não(5 = 5.0))

mostrando todos os passos utilizados para obtenção da solução.

Resposta:

(((5/2 = 5/2) e (3.0 <> 3.1)) ou (5 >= 4)) e (não(5 = 5.0))
        V         e         V          ou       V      e        F
                        V                         ou               F
                                      =  F

Exercício cap.3.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
2. SOMA <- (NUM
3. TUDO <- não ((TESTE ou COD) e (X <> NUM))

Resposta:

1. Terça
2. (312.5) + (3) = 315.5
3. ñ ((F) e (V) = V) = ñ V = F
^2/X) + (X + 1)

Exercício cap.3.4


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


Resposta:

1.  algoritmo "Cálculo"
2.  var
3.   area,raio:real
4.  inicio      

5.        escreva("Digite o valor de raio: ")
6.        leia(raio)
7.      Se ((raio>0) ou (raio=0)) entao
8.        area <- pi*(raio^2)
9.        escreva("Área igual a ",area:5:2)
10.     senao
11.       escreval("O raio precisa ser >=0 ")
12.       escreval("*** F IM ***")
13.     fimse
14. fimalgoritmo


Algoritmo testado no programa VisuAlg.
A variável "pi" não precisa ser declarada no VisuAlg.

Exercício cap.3.5


5. Escreva um algoritmo que lê dois números inteiros e informa se o primeiro é múltiplo do
segundo.


Resposta:1.  algoritmo " São múltiplos ou não múltiplos"
2.  var
3.    x,y:real
4.  inicio
5.    escreval(" São múltiplos ou não múltiplos.")
6.    escreva(" Digite o primeiro número = ")
7.      leia(x)
8.    escreva(" Digite o segundo  número = ")
9.      leia(y)
10.  se ((x>y e ((x mod y)= 0)) entao
11.    escreva ("São múltiplos.")
12.  senao
13.    escreva("Não são múltiplos.")
14.  fimse
15. fimalgoritmo

Exercício cap.3.6


6. Um sistema de equações lineares do tipo:
 

pode ser resolvido da seguinte forma:
 
  
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.

Resposta:

1.  algoritmo "Cálculo"
2.  var
3.     a,b,c,d,ee,f,x,y:numerico
4.  inicio
5.     escreval("Cálculo de uma expressão linear.")
6.     escreva("digite o valor de a ")
7.      leia(a)
8.     escreval("Digite o valor de b ")
9.     escreva("(diferente de zero) = ")
10.     leia(b)
11.    escreva("Digite o valor de c = ")
12.     leia(c)
13.    escreva("Digite o valor de d = ")
14.     leia(d)
15.    escreval("Digite o valor de e ")
16.    escreva("(diferente de zero) = ")
17.     leia(d)
18.    escreva("Digite o valor de f = ")
19.     leia(f)
20.     x <- ((c*ee)-(b*f))/((a*ee)-(b*d))
21.     y <- ((a*f)-(c*d))/((a*ee)-(b*d))
22.     escreval("Valor de x é, ",x:5:2," de y é, ",y:5:2)
23.     escreval("*** F I M ***")
24. fimalgoritmo

Exercício cap.3.7


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.

Resposta:

1.  algoritmo "Cliente"
2.  var
3.    c1,c2,c3,c4,c5:literal
4.    vcc1,vcc2,vcc3,vcc4,vcc5:real
5.    vtt,media:real
6.  inicio
7.     escreval("CLiente (valor total, média, compras acimas de 20 reais).")
8.     escreva("Digite o nome  do primeiro cliente           = ")
9.     leia(c1)
10.    escreva("Digite o valor da compra do primeiro cliente = ")
11.    leia(vcc1)
12.    escreva("Digite o nome  do segundo cliente            = ")
13.    leia(c2)
14.    escreva("Digite o valor da compra do segundo cliente  = ")
15.    leia(vcc2)
16.    escreva("Digite o nome  do terceiro cliente           = ")
17.    leia(c3)
18.    escreva("Digite o valor da compra do terceiro cliente = ")
19.    leia(vcc3)
20.    escreva("Digite o nome do quarto cliente              = ")
21.    leia(c4)
22.    escreva("Digite o valor da compra do quarto cliente   = ")23.    leia(vcc4)
24.    escreva("Digite o nome do quinto cliente              = ")
25.    leia(c5)
26.    escreva("Digite o valor da compra do quinto cliente   = ")
27.    leia(vcc5)
28.    vtt   <- vcc1+vcc2+vcc3+vcc4+vcc5
29.    media <- vtt/5
30.    escreval("O valor total pago pelos cinco clientes é igual a = ",vtt:5:2)
31.    escreval("O valor médio das compras efetuadas é igual a ",media:5:2)
32.    escreval("Os nomes dos clientes que efetuaram compras superiores a 20 reais, são: ")
33.    se vcc1>20 entao
34.    escreval(c1)
35.    fimse
36.      se vcc2>20 entao
37.      escreval(c2)
38.      fimse
39.        se vcc3>20 entao
40.        escreval(c3)
41.        fimse
42.          se vcc4>20 entao
43.          escreval(c4)
44.          fimse
45.            se vcc5>20 entao
46.            escreval(c5)
47.            fimse
48. fimalgoritmo

Exercício cap.3.8

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.

Resposta:

29 em decimal é representado por 11101 em binário.

Exercício cap.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”, “-“, “

1º operando operação 2º operando = resultado.

Por exemplo, se os valores lidos foram 4, “*” e 5, o algoritmo deve escrever:

   4*5 = 20.

Resposta:

1.  algoritmo "Cálculo da calculadora"
2.  var
3.    oper:literal
4.    oper1,oper2,calc1,calc2,calc3,calc4:numerico
5.  inicio
6.    escreval("Cálculo da calculadora")
7.    escreva("Digite o primeiro operando  = ")
8.    leia(oper1)
9.    escreva("Digite a operação (+,-,*,/) = ")
10.   leia (oper)
11.   escreva("DIgite o segundo  operando  = ")
12.   leia(oper2)
13.   se oper= ("+") entao
14.    calc1 <- ((oper1)+(oper2))
15.    escreva(oper1 , oper ,oper2," = ",calc1)
16.   senao
17.     se oper= ("-") entao
18.      calc2 <- ((oper1)-(oper2))
19.      escreva(oper1,oper,oper2," = ",calc2)
20.     senao
21.       se oper=("*") entao
22.        calc3 <- ((oper1)*(oper2))
23.        escreva(oper1,oper,oper2," = ",calc3)
34.       senao
35.         se oper=("/") entao
36.          calc4 <- ((oper1)/(oper2))
37.          escreva(oper1,oper,oper2," = ",calc4)
38.         senao
39.         escreva("Operação não correspondente, tente + , - , * ou /  ")
40.         fimse
41.       fimse
42.     fimse
43.   fimse
45. fimalgoritmo

*”, ou “/”) e o segundo operando. Ele deve escrever:

Exercício cap.3.10


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 mais de 18 anos são da categoria SENIOR.


Resposta:


1.   algoritmo "Categoria de um nadador"
2.   var
3.     nome:literal
4.     idade:real
5.   inicio
6.     escreval("Categoria do nadador")
7.     escreva(" Digite a idade do(a) nadador(a) - ")
8.       leia(idade)
9.   se ((idade>=5) e (idade<=7)) entao
10.    escreva("A categoria de ",nome," é INFANTIL A")
11.  senao
12.    se ((idade>=8) e (idade<=10)) entao
13.      escreva("A categoria de ",nome," é INFANTIL B")
14.     senao
15.       se ((idade>10) e (idade<=13)) entao
16.         escreva("A categoria de ",nome," é JUVENIL A")
17.        senao
18.          se ((idade>=14) e (idade<=18)) entao
19.            escreva( "A categoria de ",nome," é JUVENIL B")
20.           senao
21.             se (idade>18) entao
22.               escreva("A categoria de ",nome," é SENIOR")
23.              senao
24.                escreva("A idade não é suficiente para nadar.")
25.
26.             fimse
27.          fimse
28.       fimse
29.    fimse
30. fimse
31. fimalgoritmo

Exercício cap.3.11


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.

Resposta:

1.  algoritmo "dias corridos"
2.  var
3.    dia,mes,ano,dc,dc2:inteiro
4.  inicio
5.    escreval("Número de dias corridos no ano.")
6.    escreva("Digite o dia = ")
7.    leia(dia)
8.    escreva("Digite o mês = ")
9.    leia(mes)
10.   escreva("Digite o ano = ")
11.   leia(ano)

12.   se mes > 12 entao
13.    escreva("O valor do mês não corresponde, tente um valor de 1 a 12.")
14.    fimalgoritmo
15.   senao
16.    se dia > 31 entao
17.      escreva("O valor do dia não corresponde, tente um valor de 1 a 31.")
18.      fimalgoritmo
19.    senao
20.    fimse
21.   se ((ano mod 4)=0) e ((ano mod 100)<>0) entao
22.      ano <- 366
23.   senao
24.      ano <- 365
25.   fimse
26.     se (mes = 12) entao
27.       dc <- (ano-31)
28.       dc <- (dc+dia)
29.     senao
30.       ano <- ano-31
31.     fimse
32.       se (mes = 11) entao
33.         dc <-(ano-30)
34.         dc <- (dc+dia)
35.       senao
36.         ano <- (ano-30)
37.       fimse
38.         se (mes = 10) entao
39.           dc <- (ano-31)
40.           dc <- (dc+dia)
41.         senao
42.          ano <- (ano-31)
43.         fimse
44.          se (mes = 9) entao
45.            dc <- (ano-30)
46.            dc <- (dc+dia)
46.          senao
47.             ano <- (ano-30)
48.          fimse
49.             se (mes = 8) entao
50.               dc <- (ano-31)
51.               dc <- (dc+dia)
52.             senao
53.               ano <- (ano-31)
54.             fimse
55.               se (mes = 7) entao
56.                 dc <- (ano-30)
57.                 dc <- (dc+dia)
58.               senao
59.                 ano <- (ano-30)
60.               fimse
61.                 se (mes = 6) entao
62.                  dc <- (ano-31)
63.                  dc <- (dc+dia)
64.                 senao
65.                   ano <- (ano-31)
66.                 fimse
67.                   se (mes = 5) entao
68.                     dc <- (ano-30)
69.                     dc <- (dc+dia)
70.                   senao
71.                     ano <- (ano-30)
72.                   fimse
73.                     se (mes = 4) entao
74.                       dc <- (ano-31)
75.                       dc <- (dc+dia)
76.                     senao
77.                       ano <- (ano-31)
78.                     fimse
79.                       se (mes = 3) entao
80.                         dc <- (ano-30)
81.                         dc <- (dc+dia)
82.                       senao
83.                        ano <- (ano-30)
84.                       fimse
85.                         se mes = 2 entao
86.                         se (mes=2) e (dia>29) entao
87.                          escreva("O valor do dia não corresponde, tente um valor de 1 a 29.")
88.                          fimalgoritmo
89.                         senao
90.                           se((ano mod 4)=0)e((ano mod 100)<>0) entao
91.                             dc <- (ano-29)
92.                             dc <- (dc+dia)
93.                           senao
94.                             dc <- (ano-28)
95.                             dc <- (dc+dia)
96.                            fimse
97.                         fimse
98.                           se mes = 1 entao
99.                             dc <- dia
100.                          fimse

101.                          fimse
102.                          fimse
103. escreval("Dias corridos é igual a ",dc,".")
104. escreval("*** F I M ***")
105. fimalgoritmo

Exercício cap.3.12

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

Resposta:

algoritmo "Média aritmética"
var
  p1,p2,p3,media:real
inicio
  escreval("Cálculo da média aritmética.")
  escreva("Digite o valor da prova 1 = ")
  leia(p1)
  escreva("Digite o valor da prova 2 = ")
  leia(p2)
  escreva("Digite o valor da prova 3 = ")
  leia(p3)
  se (p1>10)ou(p1<0)entao
   escreva("O valor da prova 1 deve ser de 0 a 10.")
  senao
    se (p2>10)ou(p2<0)entao
     escreva("O valor da prova 2 deve ser de 0 a 10.")
    senao
      se (p3>10)ou(p3<0)entao
       escreva("O valor da prova 3 deve ser de 0 a 10.")
      fimse
  media <- (p1+p2+p3)/3
  escreval("Nota do aluno é igual a ",media:5:2)
  escreval("*** F I M ***")
  fimse
  fimse
fimalgoritmo

Exercício cap.3.13

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 do homem = (72,7 x altura) – 58


peso ideal da mulher = (62,1 x altura) – 44,77


O algoritmo deve, também, informar se a pessoa está abaixo ou acima de seu peso ideal e em quantos quilos.

Resposta:

1.  algoritmo "peso ideal"
2.  var
3.    sexo:literal
4.    h,p,pih,pih2,pim,pim2:real

5.  inicio
6.    escreval("Cálculo do peso ideal.")
7.    escreva("Informe seu sexo (M para masculino ou F para feminino) = ")
8.    leia(sexo)
9.    escreva("Informe sua altura     = ")
10.   leia(h)
11.   escreva("Informe seu peso em Kg = ")
12.   leia(p)
13.   se sexo = "M"  entao
14.     pih <- (72.7*h)-58
15.      se pih>p entao
16.        pih2 <- pih-p
17.        escreval("Seu peso ideal é ",pih:5:2," Kg. Você está ",pih2:5:2," Kg, abaixo do seu peso ideal.")
18.      senao
19.        se pih<p entao
20.          pih2 <- p-pih
21.          escreval("Seu peso ideal é ",pih:5:2," Kg. Você está ",pih2:5:2," Kg, acima do seu peso ideal.")
22.        senao
23.          se pih=p entao
24.           escreval("Você está no seu peso ideal.")
25.          fimse
26.        fimse
27.      fimse
28.   fimse
29.   se sexo = "F" entao
30.      pim <- (62.1*h)-44.77
31.       se pim>p entao
32.       pim2 <- pim-p
33.        escreval("Seu peso ideal é ",pim:5:2," Kg. Você está ",pim2:5:2," Kg, abaixo do seu peso ideal.")
34.      senao
35.        se pim<p entao
36.          pim2 <- p-pim
37.          escreval("Seu peso ideal é ",pim:5:2," Kg. Você está ",pim2:5:2," Kg, acima do seu peso ideal.")
38.        senao
39.          se pim=p entao
40.           escreval("Você está no seu peso ideal.")
41.          fimse
42.       fimse
43.     fimse
44.   fimse
45.    se (sexo<>"m") ou (sexo<>"f") entao
46.    escreval("O sexo não corresponde, tente F para feminino ou M para masculino.")
47.    fimse
48.    escreval("*** F I M ***")
49. fimalgoritmo

Exercício cap.3.14

14. Escreva um algoritmo que leia três 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.

Resposta:

1.  algoritmo "Cálculo de idade"
2.  var
3.    dn,mn,an:inteiro
4.    d,m,a:inteiro
5.    idd:inteiro
6.  inicio
7.    escreval("Cálcuo da idade.")
8.    escreva("Digite o dia do seu nascimento = ")
9.    leia(dn)
10.   escreva("Digite o mês do seu nascimento = ")
11.   leia(mn)
12.   escreva("Digite o ano do seu nascimento = ")
13.   leia(an)
14.   escreva("Digite o dia de hoje         = ")
15.   leia(d)
16.   escreva("Digite o mês do dia corrente = ")
17.   leia(m)
18.   escreva("Digite o ano do dia corrente = ")
19.   leia(a)
20.   se (m>=mn) entao
21.    idd <- a-an
22.   senao
23.     se (m=mn) entao
24.       se (d<dn) entao
25.        idd <- (a-an)-1
26.       senao
27.        idd <- (a-an)
28.       fimse
29.     senao
30.      idd <- (a-an)-1
31.     fimse
32.   fimse
33.   escreva("Sua idade é ",idd)
34. fimalgoritmo

Exercício cap.3.15

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

Resposta:

1.  algoritmo "Qual data é mais recente"
2.  var
3.    d1,d2,m1,m2,a1,a2,data1,data2:inteiro
4.  inicio
5.    escreval("Qual data é mais recente.")
6.    escreva("Digite o dia da primeira data = ")
7.    leia(d1)
8.    escreva("Digite o mês da primeira data = ")
9.    leia(m1)
10.   escreva("Digite o ano da primeira data = ")
11.   leia(a1)
12.   escreva("Digite o dia da segunda data  = ")
13.   leia(d2)
14.   escreva("Digite o mês da segunda data  = ")
15.   leia(m2)
16.   escreva("Digite o ano da segunda data  = ")
17.   leia(a2)

18.   se (d1>31) entao
19.     escreva("O dia da primeira data não corresponde, tente um valor de 1 a 31.")
20.     fimalgoritmo
21.   senao
22.     se (m1>12) entao
23.       escreva("O mês da primeira data não corresponde, tente um valor de 1 a 12.")
24.       fimalgoritmo
25.     senao
26.       se ((a1 mod 4)=0) e ((a1 mod 100)<>0) entao
27.         a1<-(a1*366)
28.        37.  se m1 = "2" entao
29.           se (m1>29) entao
30.             escreva("O mês da primeira data não corresponde, tente um valor de 1 a 29.")
31.           senao
32.            m1<- m1*29
33.           fimse
34.         fimse
35.       senao
36.         a1<-(a1*365)
37.         m1<-(m1*30)
38.         data1 <- a1+m1+d1
39.       fimse
40.       fimse
41.       fimse
42.      
43.   se (d2>31) entao
44.     escreva("O dia da segunda data não corresponde, tente um valor de 1 a 31.")
45.   senao
46.     se (m2>12) entao
47.       escreva("o mês da segunda data não corresponde, tente um valor de 1 a 12.")
48.     senao
49.       se ((a2 mod 4)=0) e ((a2 mod 100)<>0) entao
50.         a2<-(a2*366)
51.         se m2 = "2" entao
52.            se (m2>29) entao
53.              escreva("O mês da segunda data não corresponde, tente um valor de 1 a 12.")
54.            senao
55.            m2 <- m2*29
56.            fimse
57.         fimse
58.       senao
59.         a2<-(a2*365)
60.         m2<- (m2*30)
61.         data2<- a2+m2+d2
62.       fimse
63.         se data1>data2 entao
64.           escreva("A primeira data é mais recente.")
65.         senao
66.           escreva("A Segunda data é mais recente.")
67.         fimse
68.         fimse
69.         fimse

70. fimalgoritmo

Exercício cap.3.16

16. Escreva um algoritmo que leia os nomes dos três candidatos ao Senado (para uma vaga) com suas respectivas votações. O algoritmo deve escrever o nome do candidato mais votado. Por exemplo:


Maior votação: João da Silva


No caso de haver empate entre dois (os mais votados) ou entre os três candidatos, devem ser escritos os nomes desses candidatos. Por exemplo:


Maior votação: João da Silva, Maria do Socorro.

Resposta:

1.  algoritmo "Votação de senador"
2.  var
3.    c1,c2,c3:literal
4.    v1,v2,v3:inteiro
5.  inicio
6.    escreval("Votação a senador.")
7.    escreva("Informe o nome do primeiro candidato = ")
8.    leia(c1)
9.    escreva("Informe a quantidade de votos do primeiro candidato = ")
10.   leia(v1)
11.   escreva("Informe o nome do segundo candidato = ")
12.   leia(c2)
13.   escreva("Informe a quantidade de votos do segundo candidato = ")
14.   leia(v2)
15.   escreva("Informe o nome do terceiro candidato = ")
16.   leia(c3)
17.   escreva("Informe a quantidade de votos do terceiro candidato = ")
18.   leia(v3)
19.   se (v1>v2) e (v1>v3) entao
20.     escreva("Maior votação: ",c1)
21.   senao
22.     se (v1>v2) e (v1=v3) entao
23.       escreva("Maior votação: ",c1,",",c3)
24.     senao
25.       se (v1=v2) e (v1>v3) entao
26.         escreva("Maior votação: ",c1,",",c2)
27.       fimse
28.     fimse
29.   fimse
30.   se (v2>v1) e (v2>v3) entao
31.     escreva("Maior votação: ",c2)
32.   senao
33.     se (v2>v1) e (v2=v3) entao
34.       escreva("Maior votação: ",c2,",",c3)
35.     fimse
36.   fimse
37.   se (v3>v1) e (v3>v2) entao
38.     escreva("Maior votação: ",c3)
39.   senao
40.     se (v1=v2) e (v2=v3) entao
41.       escreva("Maior votação: ",c1,",",c2,",",c3)
42.     fimse
43.   fimse
44. fimalgoritmo

Exercício cap.3.17

17. Escreva um algoritmo que leia a quantia R$ em dinheiro que uma pessoa tem para enviar cartas,o preço PE de um envelope, o preço PS de um selo, a quantidade QS de selos que a pessoa já dispõe e a quantidade de envelopes QE que a pessoa também já dispõe. O algoritmo deve calcular e informar quantas cartas a pessoa pode enviar.

Resposta:

1.  algoritmo "Cálculo para enviar cartas"
2.  var
3.    qdd,ps,pe,ce,qce,qca:real
4.    //ps = preço selo
5.    //pe = preço envelope
6.    //ce = custo envio
7.    //qdd = Quantidade dinheiro disponível
8.    //qce = Quantidade de cartas enviadas
9.    //qca = Quantidade de cartas a mais
10.   qs,qe,qer,qsa,qea:inteiro
11.   //qs = Quantidade selo
12.   //qe = Quantidade envelope
13.   //qer = Quantos envios restantes
14.   //qsa = Quantos selos posso comprar
15.   //qea = Quantos envelopes posso comprar
16. inicio
17.   escreval("Cálculo para saber quantas cartas uma pessoa pode enviar.")
18.   escreva("Informe a quantia de dinheiro (em reais) disponível = ")
19.   leia(qdd)
20.   escreva("Informe a quantia de selos disponível = ")
21.   leia(qs)
22.   escreva("Informa a quantia de envelopes disponível = ")
23.   leia(qe)
24.   escreva("Informe o preço (em reais) de um envelope = ")
25.   leia(pe)
26.   escreva("informa o preço (em reais) de um selo = ")
27.   leia(ps)
28.   ce <- pe+ps
29.   se (qe>qs) entao
30.    qer <- qe-qs
31.     se ((qer*ps)<=qdd entao
32.       qdd <- qdd-(qer*ps)
33.       qce <- qs
34.       qca <- qdd \ ce
35.       qce <- qce+qca
36.     senao
37.       qsa <- qdd \ ps
38.       qce <- qs+qsa
39.     fimse
40.   senao
41.     se (qs>qe) entao
42.       qer <- qs-qe
43.       se ((qer*pe) <= qdd) entao
44.         qdd <- qdd-(qer*pe)
45.         qce <- qe
46.         qca <- qdd \ ce
47.         qce <- qce+qca
48.       senao
49.         qea <- qdd \ pe
50.         qce <- qe+qea
51.       senao
52.         qce <- qs
53.         qca <- qdd \ ce
54.         qce <- qce+qca
55.       fimse
56.   fimse
57.   fimse
58.   escreva("A quantidade de cartas que podem ser enviadas é igual a ",qce)
59. fimalgoritmo

Exercício cap.3.18

18. Escreva um algoritmo que leia as notas das duas primeiras provas de um aluno (p1 e p2) e calcule qual o valor mínimo da terceira nota (p3), para que este aluno seja aprovado, considerando que a média aritmética mínima das três provas deva ser 6.0 para que o aluno seja aprovado.

Resposta:

1.  algoritmo "notas"
2.  var
3.    n1,n2,n3:real
4.  inicio
5.   escreval("Cálculo das notas.")
6.   escreva("Informe o valor da primeira prova (valor de 1 a 10) = ")
7.   leia(n1)
8.   escreva("Informe o valor da segunda prova ( valor de 1 a 10) = ")
9.   leia(n2)
10.   n3 <- 18-(n1+n2)
11.   escreva("A nota minima desejada é ",n3)
12. fimalgoritmo

sexta-feira, 10 de setembro de 2010

CATEGORIA DE NADADOR

Elabore um algoritmo que dada a idade de um nadador classifique-o em uma das seguintes categorias:
infantil A = 5 a 7 anos
infantil B = 8 a 10 anos
Juvenil A = 11 a 13 anos
Juvenil B = 14 a 17 anos
Adulto = maiores de 18 anos




Resposta:

1.   algoritmo "Categoria de um nadador"
2.   var
3.     idade:real
4.   inicio
5.     escreval("Categoria do nadador")
6.     escreva(" Digite a idade do(a) nadador(a) - ")
7.       leia(idade)
8.   se ((idade>=5) e (idade<=7)) entao
9.     escreva(" Infantil A")
10.  senao
11.    se ((idade>7) e (idade<=10)) entao
12.      escreva(" Infantil B")
13.     senao
14.       se ((idade>10) e (idade<=13)) entao
15.         escreva(" Juvenil A")
16.        senao
17.          se ((idade>13) e (idade<=17)) entao
18.            escreva( "Juvenil B")
19.           senao
20.             se (idade>=18) entao
21.               escreva(" Adulto")
22.              senao
23.                escreva(" Não compete")
24.             fimse
25.          fimse
26.       fimse
27.    fimse
28. fimse
29. fimalgoritmo

SÃO MULTIPLOS OU NÃO MULTIPLOS

Elabore um algoritmo que lê 2 valores a e b e os escreve com a mensagem: "São múltiplos" ou "Não múltiplos".
Resposta:

1.  algoritmo " São múltiplos ou não múltiplos"
2.  var
3.    a,b:real
4.  inicio
5.    escreval(" São múltiplos ou não múltiplos.")
6.    escreva(" Digite o valor de a ")
7.      leia(a)
8.    escreva(" Digite o valor de b ")
9.      leia(b)
10.  se ((a>b e ((a mod b)= 0)) entao
11.    escreva ("São múltiplos.")
12.  senao
13.    escreva("Não múltiplos.")
14.  fimse
15. fimalgoritmo

MOSTRE O VALOR MAIOR

Elabore um algoritmo que lê 3 valores a,b,c e os escreva. A seguir , encontre o maior dos 3 valores e escreva com a mensagem: "É o maior".


Resposta:

1.  algoritmo "Encontre o valor maior."
2.  var
3.    a,b,c:real
4.  inicio
5.    escreval("Encontre o valor maior.")
6.    escreva(" Digite o valor de a ")
7.     leia(a)
8.    escreva(" Digite o valor de b ")
9.     leia(b)
10.   escreva(" Digite o valor de c ")
11.    leia(c)
12.   se ((a>b) e (a>c) entao
13.    escreva(" a é o maior.")
14.   senao
15.     se (b>c) entao
16.      escreva(" b é o maior.")
17.     senao
18.       se (c>b) entao
19.        escreva(" c é o maior.")
20.       senao
21.         se (a=b) e (b=c) e (c=a) entao
22.          escreva(" Todos tem valores iguais.")
23.         fimse
24.       fimse
25.     fimse
26.   fimse
27. fimalgoritmo

quinta-feira, 2 de setembro de 2010

Exercício cap.2.21

21. A comissão de formatura de um curso está organizando a festa de formatura de sua turma e levantou as seguintes informações:

1. Custo do salão ( capacidade de 800 pessoas com mesas de 4 pessoas) R$ 2000.00;
2. Custo da sonorização: R$ 500.00
3. Custo da decoração: R$ 800.00
Além desses custos, que serão rateados igualmente entre os formandos, há custos cuja divisão é proporcional ao número de convidados do formando. São eles:

1. Segurança: necessário um segurança para cada 80 pessoas da festa;
2. Garçom: um garçom consegue atender 48 pessoas (ou 12 mesas de 4 pessoas); e
3. Bebidas.

Escreva um algoritmo que leia o nome de cada um dos cinco formandos  com seus respectivos números de convidados. Ele também deve ler os custos de um segurança, de um garçom e da bebida. O algoritmo deve calcular e escrever, para cada formando o número  de mesas  destinadas para seus convidados e o custo da festa para eles. As mesas poderão ser compartilhadas entre convidados de diferentes formandos.



Resposta:

1.  algoritmo "Cálculo para fazer uma festa de formatura."
2.  var
3.    f1,f2,f3,f4,f5:literal
4.    ncf1,ncf2,ncf3,ncf4,ncf5:inteiro
5.    pg,ps,pb,tc,tg,ts,tm,custotal:inteiro
6.    mf1,mf2,mf3,mf4,mf5,ppc:real
7.  inicio
8.    escreval("Cálculo para fazer uma festa de formatura.")
9.    escreva(" Digite o nome do primeiro formando                 ")
10.    leia(f1)
11.   escreva(" Digite o número de convidados do primeiro formando ")
12.    leia(ncf1)
13.   escreva(" Digite o nome do segundo formando                  ")
14.    leia(f2)
15.   escreva(" Digite o número de convidados do segundo formando  ")
16.    leia(ncf2)
17.   escreva(" Digite o nome do terceiro formando                 ")
18.    leia(f3)
19.   escreva(" Digite o número de convidados do terceiro formando ")
20.    leia(ncf3)
21.   escreva(" Digite o nome do quarto formando                   ")
22.    leia(f4)
23.   escreva(" Digite o número de convidados do quarto formando   ")
24.    leia(ncf4)
25.   escreva(" Digite o nome do quinto formando                   ")
26.    leia(f5)
27.   escreva(" Digite o número de convidados do quinto formando   ")
28.    leia(ncf5)
29.   escreva(" Digite o preço de um garçom                        ")
30.    leia(pg)
31.   escreva(" Digite o preço de um segurança                     ")
32.    leia(ps)
33.   escreva(" Digite o preço das bebidas                         ")
34.    leia(pb)
35.   tc <- (ncf1+ncf2+ncf3+ncf4+ncf5)
36.  se tc>800 entao
37.   escreva("O salão não suporta o número de pessoas.")
38. fimalgoritmo
39.  senao
40.   tg  <- (tc div 48)+1
41.   ts  <- (tc div 80)+1
42.   tm  <- ((tc+5) div 4)
43.   mf1 <- ncf1 / 4
44.   mf2 <- ncf2 / 4
45.   mf3 <- ncf3 / 4
46.   mf4 <- ncf4 / 4
47.   mf5 <- ncf5 / 4
48.   custotal < pb+((tg*pg)+(ts*ps))
49.   ppc <- custotal/tc
50.  fimse
51.   escreval("Para o(s) convidado(s) de ",f1," existe(m) ",mf1," mesa(s).")
52.   escreval("Cada convidado de ",f1," pagará R$",ppc:5:2,".")
53.   escreval("Para o(s) convidado(s) de ",f2," existe(m) ",mf2," mesa(s).")

54.   escreval("Cada convidado de ",f2," pagará R$",ppc:5:2,".")
55.   escreval("Para o(s) convidado(s) de ",f3," existe(m) ",mf3," mesa(s).")
56.   escreval("Cada convidado de ",f3," pagará R$",ppc:5:2,".")
57.   escreval("Para o(s) convidado(s) de ",f4," existe(m) ",mf4," mesa(s).")

58.   escreval("Cada convidado de ",f4," pagará R$",ppc:5:2,".")
59.   escreval("Para o(s) convidado(s) de ",f5," existe(m) ",mf5," mesa(s).")

60.   escreval("Cada convidado de ",f5," pagará R$",ppc:5:2,".")
61.   escreval(" *** F I M *** ")
62. fimalgoritmo



Exercício cap.2.20

20. Escreva um algoritmo que leia o nome, o valor da hora e o número de horas trabalhadas por um empregado. O algoritmo deve escrever o nome e o salário liquido do empregado calculado conforme as seguintes regras:

1. O salário bruto mensal é o produto das horas trabalhadas pelo valor das horas.
2. Sobre o salário bruto mensal é aplicado um desconto de 9% referente ao INSS e 8% de FGTS; e
3. O salário liquido é o salário bruto mensal menos os encargos

Resposta:
1.  algoritmo "Cálculo do salário"
2.  var
3.    nome:literal
4.    vh,nh,sb,sl:real
5.  inicio
6.    escreval("Cálculo do salário de um empregado.")
7.    escreva(" Digite o nome do empregado               -> ")
8.     leia(nome)
9.    escreva(" Digite quanto ele recebe por hora        -> ")
10.    leia(vh)
11.   escreva(" Digite a quantidade de horas trabalhadas -> ")
12.    leia(nh)
13.   sb <- (vh*nh)
14.   sl <- sb-(sb*0.08)-(sb*0.09)
15.   escreval(" O salário do empregado ",nome," é de R$",sl:5:2," .")
16.   escreval(" *** F I M ***")
17. fimalgoritmo