Características que a especificação completa deve assumir • deve considerar-se sempre a resolução dos problemas no âmbito mais lato possível; ou seja, deve considerar-se a resolução de classes de problemas e não de problemas particulares; o que implica uma descrição algébrica da solução do problema; • a gama de valores permitida para as variáveis de entrada deve ser claramente estabelecida; • a solução descrita deve contemplar alternativas para toda a gama de valores das variáveis de entrada, eliminando toda e qualquer ambiguidade. Departamento de Electrónica e Telecomunicações - Universidade de Aveiro Conversão de distâncias (milhas para quilómetros) Sua formulação para resolução no computador: Dada uma distância, expressa em milhas, que é lida do teclado, convertê-la para quilómetros e escrevê-la no écran do monitor vídeo. Variável de entrada: MILHAS (distância expressa em milhas) valor numérico positivo ou nulo Variável de saída: KILOMETROS (distância expressa em quilómetros) valor numérico representado com 3 casas decimais Solução: KILOMETROS = 1.609 * MILHAS Departamento de Electrónica e Telecomunicações - Universidade de Aveiro Resolução da equação de 2º grau Sua formulação para resolução no computador: Dados os parâmetros A, B e C, que são lidos do teclado, determinar as raízes da equação de 2º grau, Ax2+Bx+C=0, e escrevê-las no écran do monitor vídeo. Variáveis de entrada: A, B, C (parâmetros da equação) A é um valor numérico não nulo, B e C são valores numéricos quaisquer Variáveis de saída: X1R, X1I, X2R, X2I (raízes da equação) valores numéricos representados em notação científica, com 4 algarismos significativos na mantissa Solução: ∆ = B ∆ ≥ 0 ⇒ X1R = -B + ∆ 2⋅ A ∆ < 0 ⇒ X1R = -B 2⋅ A 2 - 4 ⋅A ⋅C X1I = 0 X2R = -B - ∆ 2⋅ A -∆ 2⋅ A X2R = -B 2⋅ A X1I = X2I = 0 X2I = - -∆ 2⋅ A (raizes reais) (raizes complexas conjugadas) Departamento de Electrónica e Telecomunicações - Universidade de Aveiro O que é um algoritmo? • costuma-se designar por algoritmo, a descrição detalhada e rigorosa da solução do problema; • a transcrição do algoritmo para uma linguagem de programação dá origem ao programa. NOTA MUITO IMPORTANTE Para se garantir que a passagem do algoritmo ao programa se faz de uma forma natural, a descrição do primeiro deve usar um vocabulário e sintaxe semelhante aos da linguagem de programação que se vai utilizar. Departamento de Electrónica e Telecomunicações - Universidade de Aveiro Propriedades dos algoritmos • supõe-se que o conjunto de operações descrito no algoritmo é realizado segundo uma ordem pré-estabelecida: só se inicia uma dada operação, quando a anterior estiver terminada - execução sequencial; • cada uma das operações tem que ser enunciada sem ambiguidade: costuma-se começar por usar uma linguagem natural (o português, por exemplo); depois, à medida que a descrição se torna mais detalhada, passa-se para uma linguagem formalmente mais simples, mas mais rigorosa, baseada na notação matemática; • a sequência de operações tem necessariamente que ser concluída num número finito de passos, sob pena da solução, que ela representa, não ser realizável na prática (neste caso, num computador); • a sequência de operações tem também que produzir sempre resultados (valores); de outro modo, é inútil. Departamento de Electrónica e Telecomunicações - Universidade de Aveiro Decomposição da solução Modelo Básico • leitura dos valores das variáveis de entrada; • processamento; • escrita dos valores das variáveis de saída. OBSERVAÇÃO As três etapas correspondem directamente à descrição funcional do que é um computador, e de como ele executa um programa. Departamento de Electrónica e Telecomunicações - Universidade de Aveiro Decomposição da solução Modelo Básico - Modificado à Entrada • leitura dos valores de algumas variáveis de entrada; • leitura com processamento dos valores das restantes variáveis de entrada; • processamento complementar; • escrita dos valores das variáveis de saída. OBSERVAÇÃO A modificação introduzida resulta quando a leitura de dados está enquadrada num processo repetitivo, em que há de alguma maneira acumulação de valores, sendo lidos para algumas variáveis diferentes valores ao longo do tempo. Departamento de Electrónica e Telecomunicações - Universidade de Aveiro Decomposição da solução Modelo Básico - Modificado à Saída • leitura dos valores das variáveis de entrada; • processamento preliminar; • processamento e escrita dos valores de algumas variáveis de saída; • escrita dos valores das restantes variáveis de saída. OBSERVAÇÃO A modificação introduzida resulta quando a escrita de resultados está enquadrada num processo repetitivo, em que há de alguma maneira produção sucessiva de valores, sendo atribuídos a algumas variáveis diferentes valores ao longo do tempo. Departamento de Electrónica e Telecomunicações - Universidade de Aveiro Conversão de distâncias (milhas para quilómetros) Algoritmo: nome: Conversão de distâncias (milhas para quilómetros) begin leitura com validação de uma distância expressa em milhas (MILHAS); conversão da distância de milhas para quilómetros (MILHAS, KILOMETROS); impressão da distância expressa em quilómetros (KILOMETROS) end Departamento de Electrónica e Telecomunicações - Universidade de Aveiro Resolução da equação de 2º grau Algoritmo: nome: Resolução da equação de 2º grau Ax2+Bx+C = 0 begin leitura com validação dos coeficientes da equação (A, B, C); determinação das raízes da equação por aplicação da fórmula resolvente (A, B, C, X1R, X1I, X2R, X2I); impressão das raízes (X1R, X1I, X2R, X2I) end Departamento de Electrónica e Telecomunicações - Universidade de Aveiro