Algoritmo "Ordena"
Var
num: inteiro
vet: vetor [1..10] de inteiro
Inicio
Procedimento recebe()
Var
k: inteiro
Inicio
k <- 0
Repita
k <- k + 1
Escreva("Vetor [",k,"]: ")
Leia(vet[k])
Ate(k >= 10)ou(vet[k] = 0)
num <- k
Fimprocedimento
Procedimento ordena_enq()
Var
s, aux: inteiro
Inicio
s <- 1
Enquanto (s < num) FACA
Se(vet[s+1] < vet[s]) entao
aux <- vet[s+1]
vet[s+1] <- vet[s]
vet[s] <- aux
s <- 1
Senao
s <- s + 1
Fimse
Fimenquanto
Fimprocedimento
Procedimento mostra()
Var
j: inteiro
Inicio
Escreval("O mesmo vetor ordenado corresponde a: ")
Para j de 1 ate num faca
Escreval("Vetor [",j,"]: ",vet[j])
Fimpara
Fimprocedimento
Escreval("Digite os valores para serem ordenados")
Escreval("No maximo 10 valores - (zero) para terminar")
Escreva("")
recebe()
ordena_enq()
mostra()
Fimalgoritmo
Física | Análise de Circuitos | Lógica de Programação | Tecnologia da Informação | Sobre o blog
Algoritmos | Lista de Exercícios: ALG1 | ALG2 | ALG3 | ALG5
Fundamentos da Computação | Lista de Exercícios: FC1 | FC2
Laboratório de Desenvolvimento | Projeto de LD1 | Lista de Exercícios: LD1
Fundamentos da Computação | Lista de Exercícios: FC1 | FC2
Laboratório de Desenvolvimento | Projeto de LD1 | Lista de Exercícios: LD1
Mostrando postagens com marcador Algoritmos. Mostrar todas as postagens
Mostrando postagens com marcador Algoritmos. Mostrar todas as postagens
domingo, 28 de novembro de 2010
sábado, 20 de novembro de 2010
Algoritmo comentado, explicando o funcionamento lógico
Marcadores:
Algoritmos
Faça um procedimento que recebe, por parâmetro, a hora de inicio e a hora de término de um jogo, ambas subdivididas em 2 valores distintos: horas e minutos. O procedimento deve retornar, também por parâmetro, a duração do jogo em horas e minutos, considerando que o tempo máximo de duração de um jogo é de 24 horas e que o jogo pode começar em um dia e terminar no outro.
Algoritmo "tempo de jogo"
Var
hi, mi, hf, mf: inteiro
//hora inicial, minutos inicial, hora final e minutos final, do tipo inteiro
Inicio
//*Procedimento ficam dentro do código, porém antes de quaisquer comandos
//
//Este procedimento calcula a Duração do jogo
Procedimento duracao(ho,mo,ht,mt: inteiro)
// HO recebe o valor da variável HI, por parâmetro
//MO recebe MI, HT recebe HF, e MT recebe o valor de MF
Var
hd,md: inteiro
// hd = quantidade de Hora Total, ==> tempo de Jogo
//md = quantidade de Minutos no tempo do Jogo
Inicio
//Hora total Inicia com ZERO
hd <- 0
Se(ho >= ht)entao
//***Se Hora Inicial for maior doque a Final
//É porque o programa começou em um dia
//E acabou no outro.
hd <- 12
ht <- ht + 12
//**Se Hora Inicial for Igual a Final, é porque durou 24 horas
//(Limite de tempo, segundo o enunciado)
Fimse
Se (mo >mt) entao
//Se Minuto Inicial For Maior do que o Final
hd <- hd - 1
mt <- mt + 60
//Tira uma Hora do Tempo Total
//E adiciona 60 minutos, ao Minuto Final
//
Fimse
md <- (mt - mo) //(Aqui, Min Final sempre será Maior ou Igual à Min Inicial)
hd <- hd + (ht - ho)
//Hora total Recebe Ela, somado de (Hora Final menos Hora Inicial)
//Neste caso, Hora Final, sempre será Maior ou Igual, analogamente
Escreva("O jogo durou ",hd, " horas e ",md, " minutos.")
//MOSTRA a Saída na Tela!
Fimprocedimento
//FIM do procedimento
//
//Inicio do Programa principal
//*(O programa na verdade começa aqui!)
Escreval("Informe o horario inicial do jogo: ")
Escreva("hora inicial: ")
Leia(hi)
//Atribui o valor que o usuário digita para Hora Inicial
Enquanto (hi > 23) ou (hi < 0) FACA
//**Enquanto a Hora não for digitada corretamente, o código não continua
Escreva("Hora invalida. hora inicial: ")
Leia(hi)
Fimenquanto
Escreva("min inicial: ")
Leia(mi)
Enquanto (mi > 59) ou (mi < 0) FACA
Escreva("Minutos invalidos. min inicial: ")
Leia(mi)
Fimenquanto
Escreval("Informe o horario final do jogo: ")
Escreva("hora final: ")
Leia(hf)
Enquanto (hf > 23) ou (hf < 0) FACA
Escreva("Hora invalida. hora final: ")
Leia(hf)
Fimenquanto
Escreva("min final: ")
Leia(mf)
Enquanto (mf > 59) ou (mf < 0) FACA
Escreva("Minutos invalidos. min final: ")
Leia(mf)
Fimenquanto
//
//Passa por Parâmetro os valores, para que o procedimento possa
//Calcular e Escrever o tempo de Duração do Jogo (Horas e Minutos)
duracao(hi,mi,hf,mf)
//Na hora de passar os valores,
//***Não se esqueça que a ORDEM das variáveis deve estar correta,
//**Caso contrário, causaria um ERRO LÓGICO, e não de Sintaxe
Fimalgoritmo
// Espero ter ajudado! :D
sexta-feira, 19 de novembro de 2010
Faça um procedimento que recebe, por parâmetro, a hora de inicio e a hora de término de um jogo, ambas subdivididas em 2 valores distintos: horas e minutos.
Marcadores:
Algoritmos
Faça um procedimento que recebe, por parâmetro, a hora de inicio e a hora de término de um jogo, ambas subdivididas em 2 valores distintos: horas e minutos. O procedimento deve retornar, também por parâmetro, a duração do jogo em horas e minutos, considerando que o tempo máximo de duração de um jogo é de 24 horas e que o jogo pode começar em um dia e terminar no outro.
Algoritmo "tempo de jogo"
Var
hi, mi, hf, mf: inteiro
Inicio
Procedimento duracao(ho,mo,ht,mt: inteiro)
Var
hd,md: inteiro
Inicio
hd <- 0
Se(ho >= ht)entao
hd <- 12
ht <- ht + 12
Fimse
Se (mo >mt) entao
hd <- hd - 1
mt <- mt + 60
Fimse
md <- (mt - mo)
hd <- hd + (ht - ho)
Escreva("O jogo durou ",hd, " horas e ",md, " minutos.")
Fimprocedimento
Escreval("Informe o horário inicial do jogo: ")
Escreva("hora inicial: ")
Leia(hi)
Enquanto (hi > 23) ou (hi < 0) FACA
Escreva("Hora invalida. hora inicial: ")
Leia(hi)
Fimenquanto
Escreva("min inicial: ")
Leia(mi)
Enquanto (mi > 59) ou (mi < 0) FACA
Escreva("Minutos inválidos. min inicial: ")
Leia(mi)
Fimenquanto
Escreval("Informe o horário final do jogo: ")
Escreva("hora final: ")
Leia(hf)
Enquanto (hf > 23) ou (hf < 0) FACA
Escreva("Hora invalida. hora final: ")
Leia(hf)
Fimenquanto
Escreva("min final: ")
Leia(mf)
Enquanto (mf > 59) ou (mf < 0) FACA
Escreva("Minutos inválidos. min final: ")
Leia(mf)
Fimenquanto
duracao(hi,mi,hf,mf)
Fimalgoritmo
Algoritmo Verificado!
Jefferson, este código está funcionando,
mas se quiser depois posto o mesmo código com comentários
vlw, até mais ^^
mas se quiser depois posto o mesmo código com comentários
vlw, até mais ^^
Faça um procedimento que recebe a idade de um nadador por parâmetro e retorna, também por parâmetro, a categoria desse nadador de acordo com a tabela abaixo:
Marcadores:
Algoritmos
5 a 7 anos - Infantil A
8 a 10 anos - Infantil B
11-13 anos - Juvenil A
14-17 anos - Juvenil B
Maiores de 18 anos (inclusive) - Adulto
Algoritmo "Classifica nadador por idade"
var
idade: inteiro
Inicio
//inicio do procedimento
Procedimento classificacao(id: inteiro)
// recebe o valor da variavel id por parametro
Inicio
Escreval("A classificacao é ")
// Faz a estrutura de condição, com o valor digitado pelo usuário
Se (id >= 5) entao
Se (id <= 7) entao
Escreva("Infantil A")
Senao
Se (id <= 10) entao
Escreva("Infantil B")
Senao
Se (id <= 13) entao
Escreva("Juvenil A")
Senao
Se (id <= 17) entao
Escreva("Juvenil B")
Senao
Escreva("Adulto")
Fimse
Fimse
Fimse
Fimse
Senao
Escreva("E muito criança para nadar!")
Fimse
Fimprocedimento
//fim do procedimento
Escreva("Informe a idade do nadador: ")
Leia(idade)
// Leia a idade
// Passa o valor da idade por parametro para o procedimento
classificacao(idade)
//O procedimento escreve na tela a categoria do nadador
Fimalgoritmo
8 a 10 anos - Infantil B
11-13 anos - Juvenil A
14-17 anos - Juvenil B
Maiores de 18 anos (inclusive) - Adulto
Algoritmo "Classifica nadador por idade"
var
idade: inteiro
Inicio
//inicio do procedimento
Procedimento classificacao(id: inteiro)
// recebe o valor da variavel id por parametro
Inicio
Escreval("A classificacao é ")
// Faz a estrutura de condição, com o valor digitado pelo usuário
Se (id >= 5) entao
Se (id <= 7) entao
Escreva("Infantil A")
Senao
Se (id <= 10) entao
Escreva("Infantil B")
Senao
Se (id <= 13) entao
Escreva("Juvenil A")
Senao
Se (id <= 17) entao
Escreva("Juvenil B")
Senao
Escreva("Adulto")
Fimse
Fimse
Fimse
Fimse
Senao
Escreva("E muito criança para nadar!")
Fimse
Fimprocedimento
//fim do procedimento
Escreva("Informe a idade do nadador: ")
Leia(idade)
// Leia a idade
// Passa o valor da idade por parametro para o procedimento
classificacao(idade)
//O procedimento escreve na tela a categoria do nadador
Fimalgoritmo
terça-feira, 16 de novembro de 2010
L7 - 13 - Escreva um algoritmo que leia duas matrizes 3 X 3 e coloque o produto da multiplicação delas em uma terceira matriz.
Marcadores:
Algoritmos,
Lista de Exercícios ALG5
Escreva um algoritmo que leia duas matrizes 3 X 3 e coloque o produto da multiplicação delas em uma terceira matriz. No exemplo abaixo é mostrado o resultado da multiplicação de duas matrizes:
Sendo A e B as matrizes multiplicando e multiplicador, a matriz produto C é obtida da seguinte forma:
A0,0 X B0,0 + A0,1 X B1,0 + A0,2 X B2,0
A1,0 X B0,0 + A1,1 X B1,0 + A1,2 X B2,0
A2,0 X B0,0 + A2,1 X B1,0 + A2,2 X B2,0
A0,0 X B0,1 + A0,1 X B1,1 + A0,2 X B2,1
A1,0 X B0,1 + A1,1 X B1,1 + A1,2 X B2,1
A2,0 X B0,1 + A2,1 X B1,1 + A2,2 X B2,1
A0,0 X B0,2 + A0,1 X B1,2 + A0,2 X B2,2
A1,0 X B0,2 + A1,1 X B1,2 + A1,2 X B2,2
A2,0 X B0,2 + A2,1 X B1,2 + A2,2 X B2,2
Algoritmo "exercício13"
Var
matA: vetor [1..3,1..3] de inteiro
matB: vetor [1..3,1..3] de inteiro
matC: vetor [1..3,1..3] de inteiro
i, j: inteiro
Inicio
Escreval("Informe os valores da matriz A:")
Para i de 1 ate 3 faca
Para j de 1 ate 3 faca
Escreva("Matriz A ",i , " x ",j , " : ")
Leia(matA[i,j])
Fimpara
Fimpara
Limpatela
Escreval("Informe os valores da matriz B:")
Para i de 1 ate 3 faca
Para j de 1 ate 3 faca
Escreva("Matriz B ",i , " x ",j , " : ")
Leia(matB[i,j])
Fimpara
Fimpara
Limpatela
Para i de 1 ate 3 faca
Para j de 1 ate 3 faca
matC[i,j] <- ( matA[i,1] * matB[1,j] ) + (matA[i,2] * matB[2,j] ) + (matA[i,3] * matB[3,j] )
Escreval("Matriz C ",i , " x ",j , " : ", matC[i,j])
Fimpara
Fimpara
Fimalgoritmo
Algoritmo Verificado!
segunda-feira, 15 de novembro de 2010
L7 - 6 - Escreva algoritmo que leia os nomes e conceitos dos alunos de uma turma de tamanho máximo 60.
Marcadores:
Algoritmos,
Lista de Exercícios ALG5
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 "exercicio6"
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
L7 - 5 - Escreva algoritmo que leia caracteres em dois vetores vetA e vetB, de cinco posições.
Marcadores:
Algoritmos,
Lista de Exercícios ALG5
Escreva algoritmo que leia caracteres em dois vetores vetA e vetB, de cinco posições.Após os dois vetores terem sido lidos, o algoritmo deverá colocar em um terceiro vetor vetC a diferença dos dois primeiro, i.e., os caracteres que estão contido em vetA e não estão contido em vetV. Por exemplo, se
vetA = { “A”, “E”, “F”, “6“,“?”}
e
vetB = { “F”, “3”, “?”, “F“,“H”,“E”}
então
vetC = { “A”,“6“}
Algoritmo "exercicio5"
Var
vetA, vetB: vetor [1..5] de literal
vetC: vetor [1..10] de literal
i, j, k: inteiro
difer: logico
Inicio
Escreval("Informe os valores do vetor A")
Para i de 1 ate 5 faca
Escreva("informe o ",i, "o valor: ")
Leia(vetA[i])
Fimpara
Limpatela
Escreval("Agora, Informe os valores do vetor B")
Para i de 1 ate 5 faca
Escreva("informe o ",i, "o valor: ")
Leia(vetB[i])
Fimpara
Limpatela
k<-1
Para i de 1 ate 5 faca
difer <- VERDADEIRO
Para j de 1 ate 5 faca
Se (vetA[i]= vetA[j]) entao
Se (i <> j) entao
difer <- FALSO
Fimse
Fimse
Se (vetA[i]=vetB[j]) entao
difer <- FALSO
Fimse
Fimpara
Se (difer=VERDADEIRO) entao
vetC[k] <- vetA[i]
k <- k + 1
Fimse
Fimpara
Para i de 1 ate 5 faca
difer <- VERDADEIRO
Para j de 1 ate 5 faca
Se (vetB[i]=vetA[j]) entao
difer <- FALSO
Fimse
Se (vetB[i]=vetB[j]) entao
Se(i <> j) entao
difer <- FALSO
Fimse
Fimse
Fimpara
Se (difer=VERDADEIRO) entao
vetC[k] <- vetB[i]
k <- k + 1
Fimse
Fimpara
Fimalgoritmo
Assinar:
Postagens (Atom)