Você está na página 1de 9

Tcnicas de Programao - Conceitos Mansueto G Almeida

Programao Estruturada - Introduo Analista de Sistemas Consultor, Professor




Anlise, Projeto, Modelagem e Desenvolvimento de Sistemas
Converso entre Ambientes/Sistemas Operacionais, Bancos de Dados e Linguagens de Programao
[Pgina 1 de 9]


Objetivo Objetivo Objetivo Objetivo

Expor de maneira geral e simples os princpios gerais da programao estruturada.

Metodologia Metodologia Metodologia Metodologia

Exposio do assunto com uso de conceitos aplicados em exemplos.
Proposio e resoluo de conflitos.
Resoluo de exerccios.

Recursos Didticos Recursos Didticos Recursos Didticos Recursos Didticos

Quadro branco, marcadores (preto, azul e vermelho) e apagador.
Retroprojetor e transparncias.

Resumo da Aula (90 min) Resumo da Aula (90 min) Resumo da Aula (90 min) Resumo da Aula (90 min)

Lgica a soluo
Algoritmo
Top-down Design
Diagrama Hierrquico de Funes (DHF)
Diagrama de blocos
Tipos de programao
Estruturas da programao
Exemplos de estruturas: Seqencial, Condicional e Repetitiva

Bibliografia Bibliografia Bibliografia Bibliografia

WARNIER, J. LCP: lgica de construo de programas. Rio de Janeiro, Campus, 1987.
FARRER, H. et al. Programao estruturada de computadores - pascal estruturado. Rio de Janeiro,
Guanabara, 1985.
FARRER, H. et. al. Algoritmos estruturados. 3. ed. Rio de Janeiro: LTC, 1999.

Bibliografia Complementar Bibliografia Complementar Bibliografia Complementar Bibliografia Complementar

SETZER, V. W. Banco de dados. So Paulo, Edgard Blcher, 1989.
DATE, C. J. Introduo sistemas de banco de dados. 7. ed. Rio de Janeiro: Campus, 2000.
SILBERSCHATZ, A. ; KORTH, H. ; SUDARSAN, S. Sistemas de banco de dados. 3. ed. So Paulo:
Pearson Education do Brasil, Makron Books, 1999.

MACHADO, Felipe Nery Rodrigues. Anlise Relacional de Sistemas. So Paulo, rica, 2001.
YOURDON, E. Anlise estruturada moderna. Rio de Janeiro, Campus, 1992
MARCO, T. Anlise estruturada e especificao de sistemas. Rio de Janeiro, Campus, 1989.
DAVID, W. S. Anlise e projeto de sistemas - uma abordagem estuturada. Rio de Janeiro, LTC -
Livros Tcnicos e Cientficos, 1987.
GANE, C. ; SARSON T. Anlise estruturada de sistemas. Rio de Janeiro, LTC - Livros Tcnicos e
Cientficos, 1983.

Tcnicas de Programao - Conceitos Mansueto G Almeida
Programao Estruturada - Introduo Analista de Sistemas Consultor, Professor


Anlise, Projeto, Modelagem e Desenvolvimento de Sistemas
Converso entre Ambientes/Sistemas Operacionais, Bancos de Dados e Linguagens de Programao
[Pgina 2 de 9]


LGICA A SOLUO LGICA A SOLUO LGICA A SOLUO LGICA A SOLUO

A lgica procura resolver, atravs de tcnicas, problemas com automao de tarefas.
fundamental para o raciocnio, independente da linguagem de programao.

ALGORITMO ALGORITMO ALGORITMO ALGORITMO

uma seqncia determinada de instrues ordenadas logicamente para execuo de
uma tarefa.

Deve ser desenvolvido objetivando clareza, flexibilidade, confiabilidade e eficincia.
Detectando erros antecipadamente e facilitando futuras modificaes.

As tcnicas estruturadas ajudam a resolver grandes e complexos problemas.
Os objetivos principais destas tcnicas so:
Facilitar o entendimento, desenvolvimento e manuteno;
Comprovar antecipadamente a sua validade; e
Desenvolver em partes independentes.

Para atingir tais objetivos, o desenvolvimento estruturado preconiza:

1. Desenvolver por refinamentos sucessivos, partindo de uma descrio geral e,
gradativa e sucessivamente, atacar as mincias e particularidades. Denomina-se
"construo hierrquica de algoritmos" ou "desenvolvimento de cima para baixo" (em
ingls, Top-Down Design).
2. Os sucessivos refinamentos determinam poucas, bem definidas e independentes
funes (poucos vnculos umas com as outras).
3. Uso limitado de diferentes comandos e de diferentes estruturas de controle.

O refinamento sucessivo permite uma abordagem mais segura e objetiva do problema.
Cada mdulo atacado quando j se estudou a sua atuao, facilitando a integrao.
Os mdulos de nvel mais alto podem ser testados antes de se desenvolver os demais.
A alterao dos mdulos j desenvolvidos , teoricamente, desnecessria.

A diviso em mdulos funcionais permite contornar a complexidade de um problema.
Cada mdulo pode ser analisado e desenvolvido de forma independente.
O uso limitado de comandos e de estruturas de controle traz benefcios enormes.

Clareza, flexibilidade, confiabilidade e eficincia so inestimveis para a manuteno de
um algoritmo. Seja para atender a novas aplicaes ou para correo e aperfeioamento.

Assim, devemos empregar esforo e disciplina ao adotar tcnicas de desenvolvimento
estruturado dos algoritmos.

A programao ser, praticamente, a transcrio do algoritmo obtido.

Tcnicas de Programao - Conceitos Mansueto G Almeida
Programao Estruturada - Introduo Analista de Sistemas Consultor, Professor


Anlise, Projeto, Modelagem e Desenvolvimento de Sistemas
Converso entre Ambientes/Sistemas Operacionais, Bancos de Dados e Linguagens de Programao
[Pgina 3 de 9]


TOP TOP TOP TOP- -- -DOWN DESIGN DOWN DESIGN DOWN DESIGN DOWN DESIGN

Consiste essencialmente em dividir o problema para simplificar a soluo.
Logicamente, as partes divididas devem conter elementos afins.




DIAGRAMA HIERRQUICO DE FUNES (DHF) DIAGRAMA HIERRQUICO DE FUNES (DHF) DIAGRAMA HIERRQUICO DE FUNES (DHF) DIAGRAMA HIERRQUICO DE FUNES (DHF)

Representao grfica de uma soluo estruturada (obtida atravs de Top-Down Design).
Tem aparncia semelhante a um organograma.
Devemos interpret-lo de cima para baixo e, em cada nvel, da esquerda para a direita.

Smbolos:
FUNO
REPETIO SELEO


Exemplo:
soluo
processar
finalizar
iniciar
iniciar
vars
obter
dados
emitir
totais
obter
novos
dados
acumular
totais
acumular
totais
mostrar
valores
valor


Tcnicas de Programao - Conceitos Mansueto G Almeida
Programao Estruturada - Introduo Analista de Sistemas Consultor, Professor


Anlise, Projeto, Modelagem e Desenvolvimento de Sistemas
Converso entre Ambientes/Sistemas Operacionais, Bancos de Dados e Linguagens de Programao
[Pgina 4 de 9]


DIAGRAMA DE BLOCOS DIAGRAMA DE BLOCOS DIAGRAMA DE BLOCOS DIAGRAMA DE BLOCOS

Figuras geomtricas ligadas por linhas/setas usadas para representar (passo a passo) a
execuo de uma tarefa.

Este diagrama permite visualizar, com facilidade, como se processar a execuo. Mas,
possui um grande inconveniente: permite ampla liberdade de raciocnio (no respeita as
estruturas de controle preconizadas).
Permite a livre transferncia de um comando para qualquer outro pela simples indicao
de uma seta. Isto pode resultar em algoritmos complicados, mal elaborados e,
certamente, de manuteno perigosa ou invivel.
Este inconveniente, em si, desaconselha a utilizao dos diagramas de blocos.

Vamos mudar um pouco o uso dos smbolos (em relao ABNT):


I
F



Incio / Fim
do diagrama de blocos






Entrada de dados (via teclado).





Processamento
(clculos, atribuies).






Sada / Impresso de resultados.




Condio / Estrutura condicional.

Repetio / Estrutura repetitiva.



COND
V F


enquanto
COND
V
F




Tcnicas de Programao - Conceitos Mansueto G Almeida
Programao Estruturada - Introduo Analista de Sistemas Consultor, Professor


Anlise, Projeto, Modelagem e Desenvolvimento de Sistemas
Converso entre Ambientes/Sistemas Operacionais, Bancos de Dados e Linguagens de Programao
[Pgina 5 de 9]


TIPOS DE PROGRAMAO TIPOS DE PROGRAMAO TIPOS DE PROGRAMAO TIPOS DE PROGRAMAO

Linear;
Estruturada;
Orientada a Eventos e/ou Objetos;


ESTRUTURAS DA PROGRAMAO ESTRUTURAS DA PROGRAMAO ESTRUTURAS DA PROGRAMAO ESTRUTURAS DA PROGRAMAO

Estrutura Seqencial (Seqncia Simples)


S1
S2
Sn


Programa ESTR_SEQ;
inicio
Seq1;
Seq2;

SeqN;
fim.



Estrutura Condicional (Seleo) - Simples


COND
V F
S1
S2
Sn


programa ESTR_COND_SIMPLES;
inicio
se <COND>
ento
Seq1;
Seq2;
fim_se
SeqN;
fim.



Estrutura Condicional (Seleo) - Composta


programa ESTR_COND_COMPOSTA;
inicio
se <COND>
ento
Seq1;
Seq2;
seno
Seq3;
fim_se
SeqN;
fim.


COND
V F
S1
S2
Sn
S3



Tcnicas de Programao - Conceitos Mansueto G Almeida
Programao Estruturada - Introduo Analista de Sistemas Consultor, Professor


Anlise, Projeto, Modelagem e Desenvolvimento de Sistemas
Converso entre Ambientes/Sistemas Operacionais, Bancos de Dados e Linguagens de Programao
[Pgina 6 de 9]


ESTRUTURAS DA PROGRAMAO ESTRUTURAS DA PROGRAMAO ESTRUTURAS DA PROGRAMAO ESTRUTURAS DA PROGRAMAO


Estrutura Repetitiva (Repetio)

S1
S2
COND
V F
S3
S4
Sn
S5
programa estr_repetitiva;
inicio
enquanto <Cond> faa
Seq1;
Seq2;
se <Cond>
ento
Seq3;
Seq4;
seno
Seq5;
fim_se
Seqn;
fim_enquanto
fim.
enquanto
COND
V
F
Bloco inicial (testes)
Bloco interno (executado
de zero a "n" vezes)
Bloco de encerramento (retorno
ao bloco inicial para novo teste)
O ltimo bloco lgico, interno
estrutura de repetio, deve
re-alimentar no bloco inicial o
teste de condio


Tcnicas de Programao - Conceitos Mansueto G Almeida
Programao Estruturada - Introduo Analista de Sistemas Consultor, Professor


Anlise, Projeto, Modelagem e Desenvolvimento de Sistemas
Converso entre Ambientes/Sistemas Operacionais, Bancos de Dados e Linguagens de Programao
[Pgina 7 de 9]


Exerc Exerc Exerc Exerccio 1: Estrutura Seqencial cio 1: Estrutura Seqencial cio 1: Estrutura Seqencial cio 1: Estrutura Seqencial

Analisar o problema / elaborar soluo estruturada;
Representar graficamente a soluo (DHF);
Representar em Diagrama de Blocos;
Representar em Portugus Estruturado;
Codificar programa. Compilar e Testar.


* Calcular a rea de uma figura quadrada. Area_Quadrado:= (Lado * Lado).

soluo 1
obter
dados
efetuar
clculos
apresentar
resultados




Area :=
Lado * Lado
Area
I
Lado
F


programa AREA_QUADRADO;
var
rLado, rArea: Real;
inicio
ler(rLado);
rArea:= (rLado * rLado);
escrever(rArea);
fim.


Tcnicas de Programao - Conceitos Mansueto G Almeida
Programao Estruturada - Introduo Analista de Sistemas Consultor, Professor


Anlise, Projeto, Modelagem e Desenvolvimento de Sistemas
Converso entre Ambientes/Sistemas Operacionais, Bancos de Dados e Linguagens de Programao
[Pgina 8 de 9]


Exerccio 2: Estrutura Condicional Exerccio 2: Estrutura Condicional Exerccio 2: Estrutura Condicional Exerccio 2: Estrutura Condicional

Analisar o problema / elaborar soluo estruturada;
Representar graficamente a soluo (DHF);
Representar em Diagrama de Blocos;
Representar em Portugus Estruturado;
Codificar programa. Compilar e Testar.


* Calcular a rea de uma figura quadrada ou retangular. Area_Retang:= (Base * Altura).

soluo 2
obter
dados
efetuar
clculos
apresentar
resultados
analisar
resultados
base, altura



Area :=
Base*Altura
Area
I
Base, Altura
F
V F
base =
altura
"quadrado" "retngulo"


programa AREA_QUAD_RET;
var
rBase, rAltura, rArea: Real;
inicio
ler(rBase, Raltura);
rArea:= (rBase * rAltura);
escrever(rArea);
se (base = altura)
ento
escrever("quadrado")
seno
escrever("retngulo");
fim_se
fim.



Tcnicas de Programao - Conceitos Mansueto G Almeida
Programao Estruturada - Introduo Analista de Sistemas Consultor, Professor


Anlise, Projeto, Modelagem e Desenvolvimento de Sistemas
Converso entre Ambientes/Sistemas Operacionais, Bancos de Dados e Linguagens de Programao
[Pgina 9 de 9]


Exerccio 3: Estrutura Repetitiva Exerccio 3: Estrutura Repetitiva Exerccio 3: Estrutura Repetitiva Exerccio 3: Estrutura Repetitiva

Analisar o problema / elaborar soluo estruturada;
Representar graficamente a soluo (DHF);
Representar em Diagrama de Blocos;
Representar em Portugus Estruturado;
Codificar programa. Compilar e Testar.

* Calcular a rea para "n" figuras quadradas ou retangulares. Area_Ret:= (Base * Altura).
Interromper quando base ou altura for zero.




programa AREA_N_QUAD_RET;
var
rBase, rAltura, rArea: Real;
inicio
ler(rBase, rAltura);
enquanto (rBase <> 0) e (rAltura <> 0)
rArea:= (rBase * rAltura);
escrever(rArea);
se (rBase = rAltura)
ento
escrever("quadrado")
seno
escrever("retngulo");
fim_se
ler(rBase, rAltura);
fim_enquanto
fim.

Area :=
base * altura
Area
I
Base, Altura
F
V F
base =
altura
"quadrado" "retngulo"
enquanto
base <> 0
altura <> 0
V
F
Base, Altura