Módulo Análise de Sistema
Módulo Análise de Sistema
Módulo Análise de Sistema
Apresentação do Módulo:
2. Algoritmos
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.
2.2 Variáveis
Matrizes e vetores podem ser representados pelos seus elementos através de índices,
tais como vetor[i] e matriz[i,j].
- Toda variável deve ser declarada no algoritmo antes de ser utilizada com o
seguinte comando:
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.
2.3 Atribuição
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.
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.
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
ESCOLHA <variável de verificação>
CASO <valor1> FAÇA
CASO <valor2> FAÇA
CASO <valor3> FAÇA
FIM-ESCOLHA
D) 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)
<comandos>
Fim para
ENQUANTO <expressão booleana> FAÇA
FIM-ENQUANTO
Exemplo 1.
Algoritmo Ligar luz
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.
Algoritmo Recepcionista de Cinema
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
Exemplo 5
Inicio
leia (num)
escreva (num)
fim se
fim algoritmo
Exemplo 6
Inicio
leia (num)
Fim se
Fim algoritmo
Exemplo 7
inicio
leia (num_1)
leia (num_2)
leia (operacao)
escolha (operacao)
caso "+"
caso "-“
caso "*“
Outrocaso
Fim escolha
Fim algoritmo
Exemplo 8
inicio
soma= 0
Leia (vd)
ENQUANTO vd =! 0 FACA
soma := soma + vd
FIMENQUANTO
Fim algoritmo
Exemplo 9
algoritmo Números de 10 a 1
var j: inteiro
inicio
Leia ( j )
para j de 10 ate 1 faca
escreva (j)
fim para
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.
Exemplo1:
Algoritmo para calcular a média aritmética de dois números pode ser desdobrado da
seguinte forma:
Algoritmo CALCULA_MÉDIA
1.Receb os dois números
2.Calcule a média dos dois números
3.Exibaoresultado
Podemos desdobrar o comando “Calcule a média dos dois números” em:
1. Soma os dois números
2. Divida o resultado por 2
Após esse refinamento, o algoritmo pode ser considerado completo, a menos que o
destinatário não saiba fazer as operações de adição e divisão, ou não seja capaz de
entender diretamente algum comando.
O algoritmo estando completo, podemos reescrevê-lo, inserindo o refinamento na
posição do comando que foi refinado. Assim:
Algoritmo calcula média
1.Recebaosdoisnúmeros
2.Somaosdoisnúmeros
3.Dividaoresultadopor2
4.Exibaoresultado
À medida que um algoritmo se torna maior e mais complexo, a sua visão global torna-
se menos clara e, neste caso, um algoritmo apresentado com os refinamentos
sucessivos separados torna-se uma melhor abordagem para quem precisar entendê-
lo.
Agora vamos tomar como exemplo o algoritmo que descreve os termos de Fibonacci
inferiores a L:
Algoritmo "Fibonnaci"
var
i : inteiro
fibonacci : vetor [1..23] de inteiro
inicio
fibonacci[1]<- 1
fibonacci[2]<- 1
para i de 3 ate 23 faca
fibonacci[i]<- fibonacci[i-2]+ fibonacci[i-1]
fim para
para i de 1 ate 23 faca
escreva (fibonacci[i]," ")
fim para
fim algoritmo
Receba o valor L
Fim ref
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
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.
Repita
Então interrompa
Fim se
fim repita
fim ref