Módulo Análise de Sistema
Módulo Análise de Sistema
Módulo Análise de Sistema
Apresentação do Módulo:
Exemplo 1
Digamos que uma dona de casa irá dar ordens para sua empregada descascar batatas.
A dona de casa passará o seguinte algoritmo para descascar batatas:
3.Descasque as batatas.
Exemplo 2:
1. Acordar.
2. Toma Banho.
3. Vestir-se.
4. Toma Café.
5. Pega ônibus.
6. Chega no trabalho.
Os exemplos a cima tratam-se de algoritmos simples, onde não há nenhum tipo de
condição, poderíamos aplicar outros passos, replicar outros exemplos de algoritmos,
trocando ou adicionando um novo passo, como por exemplo uma pessoa que vai ao
trabalho de carro e não de ônibus. A complexidade dos algoritmos varia de problema
para problema e existem algumas características a serem estudadas.
2.1 Variáveis
Matrizes e vetores podem ser representados pelos seus elementos através de índices,
tais como vetor[i] e matriz[i,j].
Podemos imaginar que variável é o nome de um local onde será armazenado qualquer
valor do conjunto de valores suportado pelo seu tipo.
- Toda variável deve ser declarada no algoritmo antes de ser utilizada com o
seguinte comando:
Um comando básico que utilizamos muito nos algoritmos é a atribuição, ocorre após a
declaração das variáveis que serão usadas em nossos algoritmos e atribui valores nas
variáveis, veja o comando:
NomeDaVariável = expressão;
Onde a expressão pode ser somente um valor ou uma expressão matemática que utiliza
outros valores e variáveis.
Em resumo as variáveis ou var, são espaços definidos para o nome das variáveis e o
tipo que cada uma é, como por exemplo, posso definir uma variável num1 do tipo inteiro
que irá representar 1 número real inteiro.
São expressões cujos resultados são sempre lógicos (Verdadeiro ou Falso), não
dependendo do tipo das variáveis ou expressões utilizadas. Existem operadores
relacionais e operadores lógicos.
Apesar dos parâmetros de entrada e saída serem especificados logo no início do algorit-
mo, devemos ler e escrever estes parâmetros no algoritmo para podermos utilizá-los.
Leia (Variável)
Quando o algoritmo termina, ele deve exibir os valores calculados, que estarão
armazenados nas variáveis dos parâmetros de saída. Para isso, devemos utilizar o
comando:
O uso de uma estrutura condicional torna possível a escolha dos comandos a serem
executados quando uma certa condição é satisfeita ou não. Esta estrutura permite o
controle de qual código será executado. As estruturas condicionais podem ser simples
ou compostas.
Esta estrutura é utilizada quando temos que decidir pela execução de um trecho do
algoritmo e possui a forma:
(comandos)
Fim se
Nesta estrutura, o trecho (comandos) só será executado se a (condição lógica) for
verdadeira.
Esta estrutura é utilizada quando temos que decidir qual de dois caminhos seguir dentro
do algoritmo (somente um dos trechos é executado).
(comandos 1)
Senão
(comandos 2)
Fim se
C) Estruturas de repetição
Nestes casos, utilizamos as estruturas de repetição, que podem ter número definido
ou indefinido de repetições.
Repita
(comandos 1)
interrompa
fim se
(comandos 2)
Fim repita
(comandos 3)
D) Número definido de repetições
<comandos>
Fim para
Exemplo 1.
Inicio
3 – Enroscar lâmpada.
5 – Trocar lâmpada.
Senão
Fim-Se
Fim
Exemplo 2: Imagine o trabalho de um recepcionista de cinema, ele deve conferir os
bilhetes e direcionar o cliente para a sala correta. Além disso, se o cliente estiver 30
minutos adiantado o recepcionista deve informar que a sala do filme ainda não está
aberta. E quando o cliente estiver 30 minutos atrasado o recepcionista deve informar
que a entrada não é mais permitida.
Inicio
5 - Informar ao cliente que a sala do filme ainda não foi liberada para entrada.
Senão
7 - Permitir a entrada.
Fim-Se
Fim
Exemplo 3:
Algoritmo multiplicação de dois números
Var: num1, num2, result
Inicio
ler(num1)
ler(num2)
resultado <- num1 * num2
Fim
Exemplo 4:
Algoritmo maior e menor valor literal
Var: a, b, c: inteiro
Inicio
a = 100, b = 90 c=80
Se a >= b e a >= c Então
a é maior
Senão Se b >= a e b >= c Então
b é maior
senão
c é maior
fim se
Fim
Exemplo 4:
var
nome_aluno : caracter
n1,n2,n3,n4 : real
soma : real
media : real
inicio
leia(nome_aluno)
leia(n1)
leia(n2)
leia(n3)
leia(n4)
soma <-(n1+n2+n3+n4)
media<-(soma/4)
escreva(media)
fim
2.6 Fluxogramas
Exemplo 3
são estruturas onde há um grupo de comandos que são executados um após o outro,
permitindo a escolha do grupo de ações e estruturas a serem executados quando
determinadas condições, representadas por expressões lógicas, são ou não satisfeitas.
Ou seja, essa estrutura é usada quando a execução de um ou mais comandos só poderá
ser realizada dependendo de um ou mais testes anteriores. E esses testes são
condições lógicas que resultarão VERDADEIRO ou FALSO. Se o resultado da
expressão lógica for FALSO, então o grupo de comandos que dependia desse teste
para ser executado não será executado. É por isso que se deve prestar bastante
atenção aos testes que forem construídos num algoritmo, pois, se o retorno não for
adequado à solução proposta, isso comprometerá o resultado final do algoritmo. As
estruturas de seleção podem ser simples ou compostas, como é mostrado na tabela
abaixo. Por fim, as estruturas de controle de iteração ou repetição permitem que uma
sequência de comandos seja executada repetidamente até que uma determinada
condição de interrupção seja satisfeita. Veja como funciona:
3.2 Estrutura de controle de seleção (Condicional)
E quando possuímos mais de um teste lógico a realizar para decidir qual tarefa a ser
realizada pelo algoritmo? Nesse caso precisamos utilizar a estrutura aninhada. Não
temos um teste lógico que retorna verdadeiro ou falso na estrutura aninhada. Nessa
estrutura possuímos uma sequência de teste lógicos encadeados que deve ser
realizado, onde um bloco de código vai ser realizado na sequência, vai depender da
sequência de testes lógicos e seus resultados. Veja a figura abaixo, ela demonstra um
exemplo de algoritmo com estrutura aninhada, perceba que precisamos escolher entre
3 sequências lógicas encadeadas e o bloco de código a ser executado vai depender dos
resultados dos testes lógicos.
3.2.2 Estrutura de controle de seleção condicional múltipla escolha.
A estrutura de controle de iteração pode ser classificada por condição e por contagem.
Na estrutura de repetição por condição temos a realização de testes que repetem
diferentes comandos ou ações dependendo se uma condição seja verdadeira ou falsa,
condição essa que é uma expressão processada e transformada em um valor booleano.
Está associado a ela além da condição (também chamada "expressão de controle" ou
"condição de parada") o bloco de código: verifica-se a condição, e caso seja verdadeira,
o bloco é executado. Após o final da execução do bloco, a condição é verificada
novamente, e caso ela ainda seja verdadeira, o código é executado novamente.
Deve-se observar que, caso o bloco de código nunca modificar o estado da condição, a
estrutura será executada para sempre, uma situação chamada laço infinito. Da mesma
forma, é possível especificar uma estrutura em que o bloco de código modifica o estado
da condição, mas esta é sempre verdadeira.
comandos
fim para
Algoritmo conta_com_para
Variável
n, i: inteiro
leia(n)
escreva(i)
Num algoritmo, um comando que não for do entendimento do destinatário terá de ser
desdobrado em novos comandos, que constituirão um refinamento do comando inicial.
Se um algoritmo é formado não apenas por um comando, mas por vários, isto significa
que na sua execução não se consideram apenas o estado inicial e o final de uma ação
dele resultante, mas que se consideram também estados intermediários que delimitam
as ações decorrentes de cada comando.
Agora vamos aplicar a técnica de refinamento passo a psso neste algoritmo e verificar
como ele fica:
Ref. Escreva os termos de Fibonacci inferiores a L
Receba o valor L
Fim ref
Um refinamento será sempre iniciado com a palavra Ref, seguida do comando refinado
e terminará com a expressão fim ref.
Um algoritmo e os seus refinamentos são formados por comandos que determinam as
ações a serem executadas pelo seu destinatário e por estruturas de controle que
determinam a ordem em que os comandos devem ser executados, se devem ser
executados ou não e quando devem ser repetidos.
Se um comando de um refinamento for um tanto vago. ele poderá, por sua vez, ser
desdobrado em novos comandos, produzindo-se o refinamento de um refinamento. e
assim sucessivamente. Portanto, o comando "Processe os 2 primeiros termos"
poderia ser desdobrado em:
Então escreva-o
Fim se
Atribua o valor 1 ao segundo termo
Então escreva-o
Fim se
Fim ref
Se condição
Então comandos
Fim se
o comando "escreva-o" só será executado se a condição "ele for menor que L" for
verdadeira. O comando "escreva-o" não será executado se a condição for falsa, isto é,
se ele for maior ou igual a L.
Vê-se, portanto, que um algoritmo, através de estruturas condicionais, pode provocar
ou não a realização de uma ação.
Uma terceira estrutura de controle, a estrutura de repetição, será necessária ao se
desdobrar o comando "Processe os termos restantes", através do novo refinamento:
Ref. Processe os termos restantes
Repita
Calcule novo termo somando os 2 anteriores
Se novo termo for maior ou igual a L
Então interrompa
Fim se
Escreva novo termo
fim repita
fim ref
pag 20
5. Técnicas de modularização