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.
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
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.
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]
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]
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).
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]
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