bloqueio

quarta-feira, 18 de maio de 2011

AULA 11 - 17/05/2011 - Exercícios

   Hoje continuamos a resolver as questões da ultima aula, sendo adicionado as questões 6 e 7 pelo professor Jossandro, disponibilizarei todas corrigidas a seguir.

3 - Faça um programa que fique lendo e somando números enquanto que o produto deles seja inferior a mil.

ate_mil
var
    n, soma: inteiro
inicio
      soma<- 0
      REPITA
      escreva("Digite um número para somar: ")
           leia(n)
           soma<- soma + n
           escreval("Soma até agora: ", soma)
      ATE soma > 1000
fimalgoritmo

4 - Faça um programa que leia e some números, enquanto o número lido seja diferente de zero. Ao final mostre a média dos números lidos. Cuidado com divisão por zero!

soma_0
var
    num, quant, soma: inteiro
    media: real
inicio
      soma<- 0
      quant<- 0
      REPITA
            escreval("Digite um número para somar ou 0 para sair")
            leia(num)
            soma<- soma+num
            SE (num>0) ENTAO
               quant<- quant+1
               escreval("A soma até agora é :", soma)
            FIMSE
      ATE num=0
      SE quant>0 ENTAO
         media<- soma/quant
         escreval("A média é: ", media)
         escreval("A soma total é: ", soma)
      SENAO
           escreva("Você não somou números para fazer a média.")
      FIMSE
fimalgoritmo

5 - Faça um programa que fique lendo 2 notas, calcule e mostra a média, enquanto o usuário quiser. Dica, leia “0” (Não) ou “1” (Sim) para fazer o teste.

5_op
var
    op:inteiro
    n1, n2, media: real
inicio
      REPITA
            escreva("Digite a primeira nota: ")
            leia(n1)
            escreva("Digite a segunda nota: ")
            leia(n2)
            media<- (n1+n2)/2
            escreval("A média é ",media)
            escreval("Deseja fazer outro calculo? Digite 0 para não e 1 para sim")
            REPITA
                  leia(op)
                  SE (op<>0) e (op<>1) ENTAO
                     escreval("Operação inválida, digite novamente.")
                  FIMSE
            ATE (op=0) ou (op=1)
      ATE op=0
fimalgoritmo


6 - Faça um programa que leia um número N e que indique quantos valores inteiros e positivos devem ser lidos a seguir. Para cada número lido, mostre uma tabela contendo valor lido e o fatorial desse valor.

fat_esc
var
    n, num, i, j, fat:inteiro
inicio
      escreval("Quantos fatoriais você quer calcular?")
      leia(n)
      PARA i <- ate n FACA
           escreval("Digite um número para calcular o fatorial.")
           leia(num)
           fat<- 1
           PARA j <- 1 ate num FACA
                fat<- fat*j
           FIMPARA
           escreval("O fatorial de ", num," é ", fat)
      FIMPARA
fimalgoritmo

7 - Foi feita uma estatística em cinco cidades brasileiras para coletar dados sobre acidentes de trânsito, foram obtidos os seguintes dados:
a) Código da cidade;
b) Número de veículos de passeio(em 2010);
c) Número de acidentes de trânsito com vitimas(em 2010).
Deseja-saber:
a) Qual o maior e  menor índice de acidentes de trânsito e a que cidades pertencem;
b) Qual a média de veículos nas cinco cidades juntas;
c) Qual a média de acidentes de trânsito nas cidades com menos de 2.000 veículos de passeio.

transito
var
   cont, cod, num_vei, num_acid, maior, cid_maior, menor, cid_menor: inteiro
   media_vei, media_acid: real
   soma_vei, soma_acid, cont_acid:inteiro
inicio
   soma_vei <-0
   soma_acid <-0
   cont_acid <- 0
   para cont <- 1 ate 5 faca
      escreval("Digite o codigo da cidade, o numero de veiculos e o numero de acidentes" )
      leia(cod, num_vei, num_acid)
      se (cont=1) entao
         maior <- num_acid
         cid_maior <- cod
         menor <- num_acid
         cid_menor <- cod
      senao
         se (num_acid > maior) entao
            maior <- num_acid
            cid_maior <- cod
         fimse
         se (num_acid < menor) entao
            menor <- num_acid
            cid_menor <- cod
         fimse
      fimse
      soma_vei <- soma_vei + num_vei
      se (num_vei < 2000) entao
         soma_acid <- soma_acid + num_acid
         cont_acid <- cont_acid + 1
      fimse
   fimpara
   escreval("O maior indice e ",maior," na cidade ",cid_maior)
   escreval("O menor indice e ",menor," na cidade ",cid_menor)
   media_vei <- soma_vei / 5
   escreval("A media de veiculos e ",media_vei)
   se (cont_acid = 0) entao
      escreval("Nao foi digitada nenhuma cidade com menos de 2000 veiculos" )
   senao
      media_acid <- soma_acid / cont_acid
      escreval("A media de acidentes em cidades com menos de 2.000 veiculos e ", media_acid)
   fimse
fimalgoritmo


Hoje tive muitas dificuldades, principalmente na questão 7, pois nela é preciso muita lógica, parte esta onde tenho dificuldade, mas depois com a explicação do professor acabei entendendo. Vai ficando cada vez mais claro onde se é possível usar cada comando de repetição por exemplo, pois somente exercitando é que iremos adquirir pratica. Nos foi chamado a atenção também que toda variável que se utilizará em uma divisão terá de ser obrigatoriamente real, pois em uma divisão há uma grande probabilidade de o resultado ser um número com vírgula, pertencendo então aos números reais.