Pages

15 de nov. de 2010

Lista 5 – Ex6

Exercício 5-6

Escreva algoritmo que leia os nomes e conceitos dos alunos de uma turma de tamanho máximo

60. O algoritmo deverá, para todos os alunos lidos, colocar em uma matriz o nome do aluno na

primeira coluna e sua situação na segunda coluna: "aprovado", se o conceito do aluno for superior

a 0; "reprovado" caso contrário. Os conceitos vão de 0 a 4, estando reprovados os alunos cujo

conceito é o 0. O algoritmo pára de ler quando o nome informado for "fim" ou tenham sido lidos o

nome e o conceito de 60 alunos (tamanho máximo da turma).

algoritmo "semnome"

var

nome: vetor [1..60] de literal

conceito: vetor [1..60] de real

mat: vetor [1..60,1..3] de literal

i: inteiro

Inicio

i <- 1

Repita

Escreva("Informe o Nome ",i, " : ")

Leia(nome[i])

Se(nome<>"fim")entao

mat[i,1] <- nome[i]

Escreva("Conceito (0-4): ")

Leia(conceito[i])

Enquanto (conceito[i] < 0) ou (conceito[i] > 4) FACA

Escreval("O conceito deve estar entre 0 e 4.")

Escreva("Conceito (0-4): ")

Leia(conceito[i])

Fimenquanto

mat[i,2] <- conceito[i]

Se(conceito[i]>0)entao

mat[i,3] <- "Aprovado"

Senao

mat[i,3] <- "Reprovado"

Fimse

Fimse

i <- i + 1


 

Ate(nome[i]= "fim") ou (i > 60)

Fimalgoritmo

Copiado de http://apenaspaulino.blogspot.com/

L5 – Ex 7

Exercício 5-7

Escreva algoritmo que leia a 1ª prestação de uma conta e a taxa de juros e calcule e coloque em

um vetor os valores das próximas 10 prestações.

algoritmo "semnome"

var

prestacao: vetor [1..10] de real

juros,valor: real

i:inteiro

inicio

// Seção de Comandos

escreva("Digite o valor da primeira prestação")

leia(valor)

escreva("Digite o valor da taxa de juros")

leia(juros)

para i de 1 ate 10 faca

valor<-(valor*juros)+valor

prestacao[i]<-valor

escreval(prestacao[i])

fimpara

fimalgoritmo

L5 – Ex 3

Exercício 5-3

Seja o seguinte algoritmo:

01. algoritmo "semnome"

02. var

03. vetA, vetB, vetC: vetor[1..5] de literal

04. i, j, k : numérico

05. achou : lógico

06. início

07. i <- 1

08. repita

09. escreva("Entre com", i, "o elemento do vetor A")

10. leia(vetA[i])
// aqui serão colocados os seguintes valores "k", "j", "d", "s", "h"

11. escreva("Entre com", i, "o elemento do vetor B")

12. leia(vetB[i])// aqui serão colocados os seguintes valores "d", "s", "k", "j", "m"

13. i < i + 1

14. até i > 5

15. i <-1

16. repita

17. vetC[i] <- ""

18. i < i + 1 //O vetor C ficará vazio em 5 posições

19. até i > 5

20. i <- 1

21. k <- 1

22. repita

23. j <- 1

24. achou <- FALSO

25. repita

26. se vetA[j] = vetB[j] então//F para todas as vezes

27. vetC[k] <- vetA[i]

28. k <- k+1

29. achou <- VERDADEIRO

30. fimse

31. j <- j+1

32. até (j > 5) ou achou //Cai na condição j>5

33. i <- i+1

34. até i > 5

35. fimalgoritmo//FALSO para ACHOU

Determine o conteúdo final de vetC, mostrando o teste de mesa completo utilizado para tal,

supondo que os valores lido foram

"k", "d", "j", "s", "d", "k", "s", "j", "h" e "m",

nessa ordem.

Lista 5 - Exercício 2

Escreva um algoritmo que leia o nome dos alunos de uma turma de tamanho indefinido (mas não

superior a 60) e sua nota em uma prova (0 a 10; o algoritmo deve verificar se a nota fornecida é

válida). O algoritmo pára de ler quando o nome do aluno fornecido for vazio (""). Para cada aluno,

o algoritmo deve escrever seu nome e sua nota normalizada, dada pela fórmula:

NNi = Ni X 10/Nmax (5.5)

Onde NNi é a nota normalizada do i-ésimo aluno, Ni é sua nota original, e Nmax é a nota máxima obtida dentre todos os alunos da turma.


 

algoritmo "Calcula Média"

// Função :

// Autor :

// Data : 08/11/2010

// Seção de Declarações

var

nome: vetor[1..60] de literal

nota: vetor[1..60] de real

notaNormalizada: vetor[1..60] de real

notaMaxima:real

i,cont, contMedia,contNotasNomes:inteiro

inicio

// Seção de Comandos

i<-0

repita

i<-i+1

escreva("Digite o nome do aluno")

leia(nome[i])

se(nome[i] <> "") entao

escreva("Digite a nota do aluno")

leia(nota[i])

se(nota[i]<0)entao

escreva("Nota inválida")

escreva("Digite a nota do aluno")

leia(nota[i])

senao

fimse

fimse

ate ((i=60) ou (nome[i]=""))


 

notaMaxima <- nota[1]


 

para cont de 2 ate i-1 faca

se(notaMaxima < nota[cont]) entao

notaMaxima<- nota[cont]

fimse

fimpara


 

para contMedia de 1 ate i-1 faca

notaNormalizada[contMedia]<-(nota[contMedia] * 10 )/ notaMaxima

fimpara


 

para contNotasNomes de 1 ate i-1 faca

escreval(nome[contNotasNomes] ,notaNormalizada[contNotasNomes])

fimpara

fimalgoritmo


 

Lista dia 25 de outubro de 2010 – Algoritmos e LD I

  1. Faça um programa que calcule a média aritmética de 35 alunos do curso de Algoritmos. Use comandos de repetição.


     

algoritmo "Média"

// Função :

// Autor :

// Data : 25/10/2010

// Seção de Declarações

var

media, nota, soma:real

i:inteiro

inicio

// Seção de Comandos

soma<-0

para i de 1 ate 35 faca

escreva("Entre com a ",i,"a nota")

leia(nota)

soma<-soma+nota


 

fimpara

media<-soma/35

escreval("A média total é: ",media )


 

fimalgoritmo


 

2)    Faça um programa que mostre na tela o(s) número(s) dentro do intervalo entre 600 e 700 que sejam múltiplos de 5 e também de 7.


 

algoritmo "Múltiplos"

// Função :

// Autor :

// Data : 25/10/2010

// Seção de Declarações

var

i<-inteiro

inicio

// Seção de Comandos

para i de 600 ate 700 faca

se((i mod 5 =0) e (i mod 7=0))entao

escreval(i)

fimse

fimpara


 

fimalgoritmo


 

3)    Faça um programa que, dado um número, imprima a sua tabuada completa.


 

// Autor :

// Data : 25/10/2010

// Seção de Declarações

var

numero,i :inteiro

inicio

// Seção de Comandos

escreva("Digite o número que você gostaria de ver a tabuada")

leia(numero)

para i de 0 ate 10 faca

total<-numero*i

escreval(numero, "x" ,i, "=",total)

fimpara

fimalgoritmo


 

4)    Faça um programa para achar todos os números inteiros e positivos entre dois números lidos (N1 e N2), tais que:

  1. Não terminem em zero;
  2. Se o dígito à direita for removido, o número restante seja divisor do número original. (ex: 39 (3 é divisor de 39).


 

algoritmo "semnome"

// Função :

// Autor :

// Data : 26/10/2010

// Seção de Declarações

var

n1,n2,n:inteiro

digito:real

inicio

// Seção de Comandos

escreva("Entre com o primeiro número: ")

leia(n1)

escreva("Entre com o segundo número: ")

leia(n2)

repita

n<-n2

repita

se(n mod 10 <> 0) entao

k<-n div 10

se(k<>0) entao

se(n mod k = 0) entao

escreval(n)

fimse

fimse

fimse

n<-n+1

ate (n>n2)

fimalgoritmo


 

5)    Faça um programa que seja capaz de calcular o resultado de uma operação de multiplicação (x vezes y), utilizando-se para isso apenas do operador de soma (+).


 

Ex.: 12 * 3 = 36 = 12+12+12 (3 vezes)


 

algoritmo "Calcula Multiplicação com SOMA"

// Função :

// Autor :

// Data : 31/10/2010

// Seção de Declarações

var

x,y,i,soma:inteiro

inicio

// Seção de Comandos

y<-0

soma<- 0

escreva("Entre com um número:")

leia(x)

escreva("Entre com um número multiplicador:")

leia(y)


 

para i de y ate 1 passo -1 faca

soma <- soma+x


 

fimpara

escreval(x," x ",y," = ",soma)


 

fimalgoritmo


 

6)    Faça um programa que seja capaz de calcular o resultado de uma operação de divisão inteira (x dividido y), utilizando-se para isso apenas do operador de subtração (-).


 

Ex.: 12 / 3 = 4 = 12-3=9-3=6-3=3-3=0 (4 vezes)

Re

algoritmo "Calcula Divisão com SUBTRAÇÃO"

// Função :

// Autor :

// Data : 31/10/2010

// Seção de Declarações

var

x,y,vezes,soma:inteiro

inicio

// Seção de Comandos

y<-0

soma<- 0

escreva("Entre com um número:")

leia(x)

escreva("Entre com um número divisor:")

leia(y)


 

se(x<y) entao

escreva("Não é possível realizar uma divisão inteira")

senao

soma<-x

vezes<-0

repita

soma<-soma-y //Descresce o valor de x

vezes<-vezes+1 //Conta quantas vezes isso acontece até a soma chegar a 0, assim

//tem-se o resultado da divisão

ate(soma=0)

escreval(x," / ",y," = ",vezes)

fimse

fimalgoritmo


 

7)    Leia um numero N (inteiro, positivo >5). Depois, leia para um determinado grupo de pessoas (N) as seguintes informações:


 

Idade

Peso

Sexo


 

Este programa deve fornecer como saída:

  1. A média dos pesos dos homens;
  2. A média das idades das mulheres;
  3. Quantas mulheres acima de 25 anos;


 

algoritmo "Calcula Média e quantidade de mulheres acima de 25 anos"

// Função :

// Autor :

// Data : 31/10/2010

// Seção de Declarações

var

grupoPessoas, quantidadeHomens,quantidadeMulheres,mediaIdadeMulheres,idade,mulheresAcima25Anos:inteiro

mediaPesoHomens,peso:real

sexo:caracter

inicio

idade<-1

quantidadeMulheres<-0

quantidadeHomens<-0

mediapesoHomens <- 0


 

escreva("Entre com a quantidade de pessoas: ")

leia(grupoPessoas)


 

se (grupoPessoas > 5 ) entao

para grupoPessoas de grupoPessoas ate 1 passo -1 faca


 

escreva("Informe o sexo M ou F: ")

leia(sexo)


 

se (sexo = "M") entao

quantidadeHomens<-quantidadeHomens +1

escreva("Informe o peso do homem: ")

leia(peso)

mediaPesoHomens<- mediaPesoHomens + peso

escreva("Informe a idade do homem: ")

leia(idade)


 

senao


 

quantidadeMulheres<-quantidadeMulheres +1


 

escreva("Informe o peso da mulher: ")

leia(peso)

escreva("Informe a idade da mulher: ")

leia(idade)


 

mediaIdadeMulheres<- mediaIdadeMulheres + idade


 

se (idade > 25) entao


 

mulheresAcima25Anos<- mulheresAcima25Anos + 1


 

fimse


 

fimse


 

fimpara


 

escreval("A média de peso dos homens é: ",mediaPesoHomens/quantidadeHomens)

escreval(" A media de idade das mulheres é: ",mediaIdadeMulheres/quantidadeMulheres)

se(mulheresAcima25anos = 0) entao

escreva("Não há mulheres acima de 25 anos")

senao

escreval("Há ",mulheresAcima25Anos, " mulheres acima de 25 anos",)

fimse

senao


 

escreval("O grupo de pessoas é menor que 5")


 

fimse


 

fimalgoritmo


 

8)    Fazer um programa para calcular a soma dos N primeiros números, onde N é lido.

Ex.: N=5. Soma = 1+2+3+4+5


 

algoritmo "Calcula a soma do número e seus antecessores"

// Função :

// Autor :

// Data : 31/10/2010

// Seção de Declarações

var

n,i,soma: inteiro

inicio

// Seção de Comandos

escreva("Digite um número")

leia(n)


 

para i de n ate 1 passo -1 faca

soma<-i+soma

fimpara

escreval("A soma é:", soma)

fimalgoritmo


 

23 de set. de 2010

L3-Exercício 3-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


algoritmo "Senado"
// Função :
// Autor :
// Data : 23/09/2010
// Seção de Declarações
var
   n1,n2,n3:literal
   v1,v2,v3:inteiro
inicio
// Seção de Comandos
   escreva("Digite o nome dos 3 candidatos seguidos de enter ")
   leia(n1,n2,n3)
   escreva("Digite a quantidade de votos que receberam respectivamente ")
   leia(v1,v2,v3)

   se((v1=v2) e (v1=v3)) entao
    escreva(n1,",",n2,",",n3," tiveram os mesmos votos")
   senao
    se(v1=v2)entao
        se(v3>v1)entao
         escreva(n3)
        senao
         escreva(n1,",",n2)
        fimse
    senao
     se(v1>v2)entao
      se(v1>v3)entao
       escreva("O candidato ",n1, " tem o maior número de votos.")
      senao
       escreva("O candidato ",n2, " tem o maior número de votos.")
      fimse
     senao
      se(v2>v3)entao
       escreva("O candidato ",n2, " tem o maior número de votos.")
      senao
       escreva("O candidato ",n3, " tem o maior número de votos.")
      fimse
     fimse
    fimse
   fimse
fimalgoritmo

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


algoritmo "Data R"        ecente
// Função :
// Autor :
// Data : 23/09/2010
// Seção de Declarações
var
  m1,d1,a1,m2,d2,a2: inteiro
  idade:real

inicio
// Seção de Comandos
   escreva("Entre com o dia, mês e ano  seguidos de enter.")
   leia(d1,m1,a1)
   escreva("Entre com o dia, mês e ano seguidos de enter.")
   leia(d2,m2,a2)
 
  se(a2>a1)entao
   escreva("A data" ,d2,"/",m2,"/",a2," é a mais recente")
  senao
    se(a1>a2)entao
      ("A data" ,d1,"/",m1,"/",a1," é a mais recente")
    senao
      se(m1>m2)entao
        escreva("A data" ,d1,"/",m1,"/",a1," é a mais recente")
      senao
        se(m2>m1)entao
           escreva("A data" ,d2,"/",m2,"/",a2," é a mais recente")
        senao
            se(d1>d2) entao
             escreva("A data" ,d1,"/",m1,"/",a1," é a mais recente")
            senao
             se (d2>d1)entao
                escreva("A data" ,d2,"/",m2,"/",a2," é a mais recente")
             senao
               escreva("As datas são iguais.")
             fimse
            fimse
        fimse
      fimse
    fimse
  fimse
 
fimalgoritmo