Problema De Josephus Em Portugol
Trabalho Universitário: Problema De Josephus Em Portugol. Pesquise 862.000+ trabalhos acadêmicosPor: robiinho • 16/10/2013 • 294 Palavras (2 Páginas) • 1.119 Visualizações
O Problema é definido onde pessoas estão organizadas em um circulo. Começando com uma primeira pessoa designada, prosseguimos em torno do circulo, removendo cada pessoa. Depois que cada pessoa e removida, a contagem prossegue em torno do circulo restante. Esse processo continua ate todas as pessoas terem sido removidas. A ordem em que as pessoas são removidas do circulo define a permutação de Josephus, a resolução do problema segue abaixo:
4.2 - Identificação de dados e variáveis.
Variáveis “NC”,”i”,”c”,”excluídos”,”cont”, do tipo Inteiro.
Variável ”d”vetor , do tipo inteiro.
Variável ”n”vetor, do tipo inteiro.
4.3 - Descrição do Algoritmo em português estruturado.
algoritmo "Josephus"
// Função : Eliminar todos os numeros deixando apenas 1
var
NC, i, c, excluidos, cont: inteiro
//contador do laco e contador para controle da ordem de eliminado
d: vetor[1..30, 1..2]de inteiro
//armazena numero maximo e passo
n: vetor[1..10000] de inteiro
inicio
//Etapa I - valida o numero de casos
escreva ("Digite a quantidade de casos (Max. 30): ")
leia(NC)
escreval()
enquanto NC>=30 faca
limpatela
escreval("Numero invalido! ")
escreva("Digite um numero entre 1 e 30: ")
leia(NC)
escreval()
fimenquanto
//Etapa 2 - Numero Maximo e tamanho do passo
para i de 1 ate NC faca
limpatela
escreval("Numero de casos: ", NC)
escreval()
escreva (" Caso ",i," - Digite um Numero (Max. 10.000): ")
leia(d[i,1])
escreval()
enquanto (d[i,1] >10000) ou (d[i,1] <=1) faca
escreval()
escreval("Numero invalido!")
escreval("O numero deve estar entre 1 e 10.000")
escreval()
escreva(" Caso ",i," - Digite um Numero (Max. 10.000): ")
leia(d[i,1])
fimenquanto
limpatela
escreval("*** Caso ",i," ***")
escreva("Numero: ",d[i,1])
escreval()
escreval()
escreva("Digite o tamanho do
...