ATPS - CONSTRUÇÃO DE ALGORITMOS
Por: LeChato • 14/11/2015 • Trabalho acadêmico • 2.314 Palavras (10 Páginas) • 168 Visualizações
Problema 1
Definir um número inteiro N que será o número de casos de teste. Cada caso de teste é uma linha que contém dois números inteiros X e Y. O problema se resume em imprimir a soma de todos os valores ímpares entre os dois números inteiros, excetuando-os.
Entrada
A primeira linha de entrada é um número inteiro N que é o número de casos de teste a serem solucionados. Cada caso de teste é uma linha contendo dois inteiros X e Y.
Saída
Imprimir a soma de todos os números ímpares entre X e Y.
Lógica para solução do problema 1
Dados de Entrada:
- Informar o numero de teste a executar;
- Fornecer dois números inteiros de limite para o calculo dos ímpares entre eles;
Como fazer?
- Declarar Variáveis;
- Solicitar o numero de testes;
- Digitar os dados de entrada para definir o numero de repetições;
- Exibir o numero do caso de teste;
- Solicitar os dois numeros inteiros para o calculo;
- Digitar os dados de entrada para definir os limites do cálculo;
- Verificar os numeros ímpares no intervalo entre os dois numeros inteiros limites definidos para o teste;
- Somar os números ímpares encontrados no intervalo dos dois números inteiros inseridos para o teste;
- Exibir os dois números inteiros do caso de teste e a soma dos números impares entre eles
- Repetir o passo 2 de (Dados de Entrada)
- Repetir os passos de 3 até 9 de “Como Fazer?” até chegar ao limite de repetições definido no passo 3 de “Como Fazer”
Identificação das variáveis:
VARIÁVEL | TIPO | FUNÇÃO |
n | inteiro | variável que que define a quantidade de testes |
x | inteiro | ponto de partida do cálculo / contador |
y | inteiro | ponto de partida do cálculo / contador |
Nteste | inteiro | contador de numero do teste |
contador | inteiro | contador de numeros ímpares do intervalo |
somaIMPAR | inteiro | soma dos numeros ímpares do intervalo |
Tabela Verdade aplicada às estruturas de decisão do algoritmo.
A= contador mod 2 <> 0, B= somaIMPAR<- somaIMPAR+ contador,
C= contador<- contador+1, D= contador
EXPRESSÃO | RESULTADO | ||
A=B | AND | C=D | Verdadeiro |
Representação gráfica do algoritmo
[pic 2]
Descrição do algoritmo em pseudo linguagem (portugol) com identificação de variáveis e descrição dos processos.
algoritmo "ATPS - CONSTRUÇÃO DE ALGORÍTMOS"
// Função : Imprimir a soma de todos os números ímpares entre X e Y
// Autor : GRUPO DE TRABALHO ADS
// Data : 12/09/2013
// Seção de Declarações
var
n: inteiro // variável que que define a quantidade de testes
x: inteiro // ponto de partida do cálculo / contador
y: inteiro //ponto final do calculo / contador
nTESTE: inteiro // contador de numero do teste
contador: inteiro // contador de numeros ímpares do intervalo
somaIMPAR: inteiro // soma dos numeros ímpares do intervalo
inicio
// ENUNCIADO DA ATIVIDADE ATPS.
escreval ("||||||||||||||||||| ATPS - CONSTRUÇÃO DE ALGORÍTMOS ||||||||||||||||||")
escreval ("|||||||||||||||||||||||| ETAPA 1 - PROBLEMA 1 ||||||||||||||||||||||||")
escreval
escreval ("Definir um número inteiro N que será o número de casos de teste.")
escreval ("O problema se resume em imprimir a soma de todos os valores ímpares entre os")
escreval ("dois números inteiros, excetuando-os.")
escreval
escreval ("Entrada: A primeira linha de entrada é um número inteiro N que é o número de")
escreval ("casos de teste a serem solucionados.")
escreval ("Cada caso de teste é uma linha contendo dois inteiros X e Y.")
escreval
escreval ("Saída: Imprimir a soma de todos os números ímpares entre X e Y.")
escreval
escreval ("||||||||||||||||||||||||||||| INÍCIO DO TESTE ||||||||||||||||||||||||||||||")
escreval
/////////////////INICIO DA EXECUÇÃO DO TESTE
escreva ("* QUANTOS CASOS DE TESTE DESEJA REALIZAR? ") // SOLICITAÇÃO DE ENTRADA DO NUMERO n QUE DEFINE A QUANTIDADE DE TESTES A EXECUTAR
leia (n) //LEITURA DE DADOS DE ENTRADA COM ENDEREÇAMENTO DE MEMÓRIA
para nTESTE de 1 ate n faca // ATRIBUIÇÃO DE VALOR INICIAL 1 DE PONTO DE PARTIDA PARA O CONTADOR DE TESTES nTESTE COM REPETIÇÃO DE LOOP ATÉ n...
escreval ("CASO DE TESTE: ", nTESTE)// MOSTRA O NUMERO DO CASO DE TESTE EM EXECUÇÃO
escreval
escreva ("* DIGITE DOIS NÚMEROS INTEIROS PARA O TESTE (N°1 ENTER / N°2 ENTER): ") //SOLICITAÇÃO DE ENTRADA DE DADOS PARA REFERENCIA DOS LIMITES DO CALCULO
leia (x)//LEITURA DE DADOS DO LIMITE INICIAL DO CALCULO
leia (y)//LEITURA DE DADOS DO LIMITE FINAL DO CALCULO
somaIMPAR <- 0 // ATRIBUIÇÃO DE VALOR INICIAL 0 PARA A VARIÁVEL DE somaIMPAR(LIMPA A MEMÓRIA DO CASO ANTERIOR NA VARIÁVEL)
contador <- x + 1 // O CONTADOR PARTE UM PASSO A FRENTE DO VALOR DE X
////////////////////////////////////////////
enquanto (contador < y) faca //CONDIÇÃO DE CONTADOR MENOR QUE Y PARA...
//////////////////////////////
se (contador mod 2 <> 0) entao // SE O RESTO DA DIVISÃO POR DOIS FOR DIFERENTE DE 0 O NUMERO É ÍMPAR, ENTÃO...
...