1 / 17

Algoritmos e Programação Estruturada Conceitos básicos

Algoritmos e Programação Estruturada Conceitos básicos. Prof. Cláudio M. N. A. Pereira cmnap@ien.gov.br. Sumário. Introdução Definições de algoritmo Programação estruturada Exemplo: seqüência de Fibonacci Formas de representação de um algoritmo. Introdução.

dean
Download Presentation

Algoritmos e Programação Estruturada Conceitos básicos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algoritmos e Programação EstruturadaConceitos básicos Prof. Cláudio M. N. A. Pereira cmnap@ien.gov.br

  2. Sumário • Introdução • Definições de algoritmo • Programação estruturada • Exemplo: seqüência de Fibonacci • Formas de representação de um algoritmo

  3. Introdução A programação de computadores consiste em primeiro lugar, entender adequadamente o problema proposto. Em segundo, adotar critérios e métodos de algoritmização para então codificar o programa em na linguagem desejada. (Augusto Manzano)

  4. Introdução Da declaração de Manzano, pode-se identificar 3 fases básicas envolvidas na programação: i) análise e entendimento do problema; ii) concepção da solução (criação do algoritmo); iii) implementação da solução (codificação em uma linguagem)

  5. Definições de algoritmo - Um algoritmo é um possível caminho para a solução de um dado problema. Podem, entretanto haver vários possíveis algoritmos para resolver o mesmo problema. - É a descrição de um conjunto de instruções ou comandos que, se obedecidos, resultam numa sucessão de ações.

  6. Programação estruturada • Algoritmos desenvolvidos através de refinamentos sucessivos, partido de descrições gerais que vão sendo gradativamente detalhadas (desenvolvimento top-down); • Os refinamentos sucessivos são módulos delimitam funcionalidade (funções) e devem ser o mais independentes possível;

  7. Exemplo: Sequência de Fibonacci Problema: Faça um programa que escreva os termos da seqüência de Fibonacci menores do que L. Passo 1: Análise/entendimento do problema • O que é o raio dessa seqüência de Fibo... sei lá o quê? Como saber? • Parceiro do lado • Internet • Pesquisa / estudo

  8. Sequência de Fibonacci: a Análise A seqüência de Fibonacci é uma sucessão de termos, onde o primeiro e o segundo são iguais a 1. Os demais são a soma dos dois termos exatamente anteriores. 1 1 2 3 5 8 13 21 34 ... Se entendeu bem, vai para o passo 2 (algoritmo), senão, volta e tenta entender o problema.

  9. Sequência de Fibonacci: o Algoritmo Passo 2: Algoritmo Algoritmo Fibonacci Receba o valor de L se L > 1 então faça Processe até o segundo termo Processe os demais termos fim_se fim

  10. Sequência de Fibonacci: o Algoritmo Refinamento de “Processe até o segundo termo” T_anterior = 1; T_atual = 1; escreva (T_anterior, T_atual); fim

  11. Sequência de Fibonacci: o Algoritmo Refinamento de “Processe os demais termos” repita T_proximo = T_anterior + T_atual; se (T_proximo < L) então escreva (T_proximo); // Atualiza as posições T_anterior = T_atual; T_atual = T_proximo; até (T_proximo < L); fim_refinamento

  12. Sequência de Fibonacci: o Algoritmo Algoritmo Fibonacci leia (L) se L > 1 então faça T_anterior = 1; T_atual = 1; escreva (T_anterior, T_atual); repita T_proximo = T_anterior + T_atual; se (T_proximo < L) então escreva (T_proximo); T_anterior = T_atual; T_atual = T_proximo; até (T_proximo < L); fim_se fim

  13. Sequência de Fibonacci: o Algoritmo Algoritmo Fibonacci var T_anterior, T_atual, T_proximo, L : inteiro leia (L) se L > 1 então faça T_anterior = 1 T_atual = 1 escreva (T_anterior, T_atual) repita T_proximo = T_anterior + T_atual se (T_proximo < L) então escreva (T_proximo) T_anterior = T_atual T_atual = T_proximo até (T_proximo < L) fim_se fim

  14. Sequência de Fibonacci: O Programa em C #include <stdio.h> #include <conio.h> void main() { int T_atual, T_anterior, T_proximo, L; // Recebendo (lendo) o valor de L printf("Entre com o valor limite (L): "); scanf("%d", &L); if (L>1) { // Processa até o segundo termo T_anterior = 1; T_atual = 1; printf(" %d %d", T_anterior, T_atual); // Processa os demais termos do { T_proximo = T_anterior + T_atual; if (T_proximo < L) printf(" %d", T_proximo); // Atualiza as posições T_anterior = T_atual; T_atual = T_proximo; } while (T_proximo < L); } }

  15. Sequência de Fibonacci: O programa em Pascal program Fibonacci; uses crt; var T_atual, T_anterior, T_proximo, L: integer; begin {Recebendo (lendo) o valor de L} write('Entre com o valor limite (L): '); readln(L); if (L>1) then begin {Processa ate o segundo termo} T_anterior := 1; T_atual := 1; write(' ', T_anterior, ' ', T_atual); {Processa os demais termos} repeat T_proximo := T_anterior + T_atual; if (T_proximo < L) then write(' ', T_proximo); {Atualiza as posicoes} T_anterior := T_atual; T_atual := T_proximo; until (T_proximo >= L); end; end.

  16. Formas de representação de um algoritmo • Fluxograma • Diagrama de Chapin • Pseudo-código (português estruturado)

  17. Fluxograma Formas de representação de um algoritmo Início Leia L N L>1 Diagrama de Chapin Pseudo-código S T_anterior=1 T_atual=1 Leia L Algoritmo Fibonacci leia (L) se L > 1 então faça T_anterior = 1; T_atual = 1; escreva (T_anterior, T_atual); repita T_proximo = T_anterior + T_atual; se (T_proximo < L) então escreva (T_proximo); T_anterior = T_atual; T_atual = T_proximo; até (T_proximo < L); fim_se fim L>1 Escreva (T_atual,T_anterior) S N T_anterior=1 T_atual=1 Fim T_proximo=T_anterior+T_atual Escreva (T_atual,T_anterior) Repita N T_proximo<L T_proximo=T_anterior+T_atual) S T_proximo<L Escreva (T_proximo) S N Escreva (T_proximo) Fim T_anterior=T_atual T_atual=T_proximo T_anterior=T_atual T_atual=T_proximo Fim

More Related