ATPS - Construção De Algoritmos _ Anhanguera
Pesquisas Acadêmicas: ATPS - Construção De Algoritmos _ Anhanguera. Pesquise 862.000+ trabalhos acadêmicosPor: javier1960 • 4/11/2013 • 3.116 Palavras (13 Páginas) • 572 Visualizações
1 - INTRODUÇÃO:
No contexto abaixo, serão apresentadas as sugestões para resolução dos problemas sugeridos na atividade de ATPS (Atividades Práticas Supervisionadas), da disciplina Cosntrução de Algoritmos.
Sendo que o primeiro trata-se do calculo dos números impares existentes entre um determinado range de número, o segundo sobre a média de distancia, o terceiro sobre quantidade de leds necessários para a construção de um número e o quarto sobre a distribuição e retirada das pessoas em um determinado jogo (Problema de Josephus).
Estas propostas apresentadas não são a única possibilidade de solução, porem foi a que o grupo concluiu como a mais adequada para a solução dos problemas.
2 – Relatório 1 – Solução para o Problema 1:
Foi apresentado um problema que consiste em efetuar a soma dos números inteiros impares existentes entre o range de dois outros números informados. Também será informado dinamicamente um valor de casos de testes a serem executados.
2.1 – Desenvolvimento:
Foi criada uma entrada de dados para que o usuário informe a quantidade de ocorrências (casos) que ele pretende checar. Após obter esta informação, é solicitado ao usuário que informa o valor do primeiro número inteiro do range, e logo após será solicitado que informe o segundo número inteiro do range.
Neste momento e feita a conferencia de se o segundo número informado é maior que o primeiro número informado, caso não seja, será solicitado ao usuário que informe novamente o segundo número inteiro.
O processo para identificação dos números impares, consista em efetuar a divisão do numero por 2, e verificar se o resto é igual a 1, caso seja este numero é impar. Conforme é feita a identificação dos números impares, os mesmos são acumulados e apresentado o total no final do processamento.
2.2 – Identificação das variáveis:
Para esta solução do problema apresentado serão utilizadas as variáveis abaixo apresentadas:
- ContOcor Controle de ocorrências atendidas, recebera dados do tipo inteiro;
- Ocorrencia Quantidade ocorrências solicitadas, recebera dados do tipo inteiro;
- ContNumeros Controle de incremente dos números, recebera dados do tipo inteiro;
- PrimNumero Primeiro número do range a ser testado, recebera dados do tipo inteiro;
- SegNumero Segundo número do range a ser testado, recebera dados do tipo inteiro;
- SomaImpares Acumulador da soma dos números impares existentes no range solicitado, recebera dados do tipo inteiro.
2.3 – Tabelas verdades:
Estão descritas as tabelas verdade dos pontos de questionamento.
Tabela verdade para solicitação de 2 (duas) ocorrências:
ContOcor Ocorrencia ContOcor < Ocorrencia Resultado
1 2 V Continua processamento
2 2 V Continua processamento
3 2 F Encerra processamento
4 2 F Encerra processamento
Tabela verdade para comparação do range solicitado:
SegNumero PrimNumero SegNumero <= PrimNumero Resultado
5 7 V Retorna Solicitação
3 3 V Retorna Solicitação
7 3 F Continua Processamento
9 1 F Continua Processamento
Tabela verdade para identificação de fim:
ContNumeros SegNumero ContNumeros < SegNumero Resultado
3 7 V Continua operação
5 7 V Continua operação
7 7 F Demonstra resultado da soma
2.4 – Representação do problema:
Abaixo esta a representação gráfica da solução do problema e a respectiva codificação em VisualG.
2.4.1 – Representação por Pseudo-Linguagem (VisualG)
algoritmo "ATPS - Ativ 1"
// Função : Calcular a soma dos numeros impares existentes entre
// dois numeros informados.
// Autor :
// Data : 13/08/2013
// Seção de Declarações
var
ContOcor: inteiro
Ocorrencia: inteiro
ContNumeros: inteiro
PrimNumero: inteiro
SegNumero: inteiro
SomaImpares: inteiro
inicio
// Seção de Comandos
// Obter a quantidades de ocorrências
escreval ("Informe a quantidade e ocorrencias deseja:")
leia (Ocorrencia)
ContOcor <- 0
SomaImpares <- 0
ContNumeros <- 0
// Checargem da qtde ocorrencias e obtenção dos numeros da
// sequência
enquanto ContOcor < Ocorrencia faca
escreval ("Informe o primeiro número")
leia (PrimNumero)
escreval ("Informe o segunfo número")
leia (SegNumero)
// Checagem se o segundo número e maior que o primeiro, e caso
// não sejam solicita a digitação de outro número
enquanto SegNumero <= PrimNumero faca
...