Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Fluxogramas e Pseudcódigos, Notas de estudo de Informática

Desenvolvimento de algoritmos e fluxogramas

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 09/09/2009

Gaucho_82
Gaucho_82 🇧🇷

4.6

(52)

211 documentos

1 / 12

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Pacotes Estatísticos
1. Introdução
1
Departamento de Estatística – ICEx -UFMG © F. R. B. Cruz
1.3. Algoritmos e Fluxogramas
1.3.1. conceito
algoritmo:
norma executável para obter efeito desejado
PROGRAMAR = CONSTRUIR ALGORITMOS
a) versão inicial
descasque as batatas para o jantar
b) seqüência de sub-ações:
traga a cesta com batatas
traga a panela
descasque as batatas
c) repetição:
traga a cesta com batatas
traga a panela
enquanto número de batas é insuficiente faça
descasque a batata
fim enquanto
d) condicional
traga a cesta com batatas
traga a panela
enquanto número de batas é insuficiente faça
se batata está boa então
descasque esta batata
senão
descarte a batata
fim se
fim enquanto
e) algoritmo impróprio
enquanto batata está boa faça
descasque esta batata
fim enquanto
MÁQUINA = SEGUIDOR MECÂNICO DE ALGORITMOS
PROGRAMA = ALGORITMO DESTINADO A CONTROLAR O
COMPORTAMENTO DA MÁQUINA
algoritmo:
ações + dados
pf3
pf4
pf5
pf8
pf9
pfa

Pré-visualização parcial do texto

Baixe Fluxogramas e Pseudcódigos e outras Notas de estudo em PDF para Informática, somente na Docsity!

  1. Introdução

1.3. Algoritmos e Fluxogramas

1.3.1. conceito

algoritmo:

  • norma executável para obter efeito desejado

PROGRAMAR = CONSTRUIR ALGORITMOS

a) versão inicial descasque as batatas para o jantar

b) seqüência de sub-ações: traga a cesta com batatas traga a panela descasque as batatas

c) repetição: traga a cesta com batatas traga a panela enquanto número de batas é insuficiente faça descasque a batata fim enquanto

d) condicional traga a cesta com batatas traga a panela enquanto número de batas é insuficiente faça se batata está boa então descasque esta batata senão descarte a batata fim se fim enquanto

e) algoritmo impróprio enquanto batata está boa faça descasque esta batata fim enquanto

MÁQUINA = SEGUIDOR MECÂNICO DE ALGORITMOS

PROGRAMA = ALGORITMO DESTINADO A CONTROLAR O COMPORTAMENTO DA MÁQUINA

algoritmo:

  • ações + dados
  1. Introdução

1.3.2. estruturas básicas de dados e controle

variável:

  • posição na memória que tem nome e valor associados: NOTA 5 declaração de variáveis:
  • declare lista de variáveis tipo

tipos de dados:

  • inteiro
  • real
  • caracter
  • lógico

exemplo: declare x inteiro ; vendas, comissão real ;

estruturas de controle:

a) seqüência de comandos: comando comando

b) comando condicional: se condição então seqüência de comandos 1 senão seqüência de comandos 2 fim se

c) comando de repetição com interrupção no início (“ enquanto ”): enquanto condição faça seqüência de comandos fim enquanto

d) comando de repetição com interrupção no final (“ repita ”): repita seqüência de comandos até condicão

e) comando de repetição “ para ”: para variável de valor1 até valor2 faça seqüência de comandos fim para

f) comando de entrada e saída: leia lista de variáveis escreva lista de variáveis

  1. Introdução

Inserindo-se os refinamentos nos seus respectivos lugares e colocando-se comentários:

algoritmo {defina os tipos das variáveis} declare a, b, c, menor numerico {leia os números} leia a, b, c {determine o menor número} se a<b e a<c então menor <- a senão se b<c então menor <- b senão menor <- c fim se fim se {escreva o menor número} escreva menor fim algoritmo

  1. Introdução

Ex. 2: Fazer um algoritmo que calcule o valor de N! (fatorial de N) sendo que o valor inteiro de N se encontra disponível em uma unidade de entrada e que: a) N! = 1 x 2 x ... x (N-1) x N; e b) 0! = 1, por definição.

Solução:

Um algoritmo possível é descrito abaixo:

algoritmo defina os tipos das variáveis leia n calcule o fatorial de n escreva fatorial fim algoritmo

ref.: calcule fatorial de n fatorial <- 1 i <- 2 enquanto i <= n faca fatorial <- fatorial * i i <- i + 1 fim enquanto fim ref.

Inserindo-se o refinamento em seu respectivo lugar

algoritmo defina os tipos das variáveis leia n fatorial <- 1 i <- 2 enquanto i <= n faca fatorial <- fatorial * i i <- i + 1 fim enquanto escreva fatorial fim algoritmo

  1. Introdução

ref.: verifique se altura é igual a maior se altura = maior1 então contador1 <- contador1 + 1 senão compare altura com a 2ª^ maior altura fim se fim ref.

ref.: compare altura com a 2ª^ maior altura se altura > maior2 então maior2 <- altura contador2 <- 1 senão se altura = maior2 então contador2 <- contador2 + 1 fim se fim se fim ref.

ref.: escreva resultados escreva maior1, contador1, maior2, contador fim ref.

ref.: atribua valores iniciais necessários contador1 <- 0 maior1 <- 0 contador2 <- 0 maior2 <- 0 fim ref.

ref.: defina tipo das variáveis declare altura, contador1, contador2, maior1, maior2 numérico declare nome caracter fim ref.

  1. Introdução

Inserindo-se os refinamentos nos devidos lugares, teremos:

algoritmo declare altura, contador1, contador2, maior1, maior2 numérico declare nome caracter contador1 <- 0 maior1 <- 0 contador2 <- 0 maior2 <- 0 leia nome, altura enquanto nome <> "vazio" faca escreva nome, altura se altura > maior1 então maior2 <- maior contador2 <- contador maior1 <- altura contador1 <- 1 senão se altura = maior1 então contador1 <- contador1 + 1 senão se altura > maior2 então maior2 <- altura contador2 <- 1 senão se altura = maior2 então contador2 <- contador2 + 1 fim se fim se fim se fim se leia nome, altura fim enquanto escreva maior1, contador1, maior2, contador fim algoritmo

  1. Introdução

Refinando-se a escrita das raízes:

ref.: escreva raízes escreva xr1, xi escreva xr2, xi fim ref.

Finalmente, refinando-se a declaração das variáveis:

ref.: defina os tipos da variáveis declare a, b, c, xr1, xi1, xr2, xi2, delta numérico fim ref.

Inserindo-se os refinamentos nos respectivos lugares, temos o algoritmo completo:

algoritmo {defina os tipos das variáveis} declare a, b, c, xr1, xi1, xr2, xi2, delta numérico repita leia a, b, c se a=0 então interrompa fim se {calcule raízes} delta <- bb – 4ac se delta >= 0 então xr1 <- (-b + raiz(delta))/(2a) xr2 <- (-b - raiz(delta))/(2a) xi1 <- 0 xi2 <- 0 senão xr1 <- -b/(2a) xr2 <- -b/(2a) xi1 <- raiz(-delta)/(2a) xi2 <- -raiz(-delta)/(2*a) fim se {escreva raízes} escreva xr1, xi escreva xr2, xi fim repita fim algoritmo

  1. Introdução

Na linguagem do Minitab, este algoritmo pode ser codificado como se segue, disponível em ftp://ftp.est.ufmg.br/pub/fcruz/pacotes/eq2grau.mac.

macro

# template

eq2grau

# eq2grau calcula raizes da equacao

# ax^2 + bx + c = 0

# corpo

mconstant delta xr1 xi1 xr2 xi

mcolumn coef

note entre com os coeficientes a, b e c

read coef;

file 'terminal';

nobs 3.

while (coef(1) ~= 0)

let delta = coef(2)coef(2) - 4coef(1)*coef(3)

if delta >= 0

let xr1 = (-coef(2) + sqrt(delta))/(2*coef(1))

let xr2 = (-coef(2) - sqrt(delta))/(2*coef(1))

let xi1 = 0

let xi2 = 0

else

let xr1 = -coef(2)/(2*coef(1))

let xr2 = -coef(2)/(2*coef(1))

let xi1 = sqrt(-delta)/(2*coef(1))

let xi2 = -sqrt(-delta)/(2*coef(1))

endif

print xr1, xi

print xr2, xi

read coef;

file 'terminal';

nobs 3.

endwhile

endmacro