algoritmos e fluxogramas

Upload: aksb2869

Post on 12-Jul-2015

274 views

Category:

Documents


0 download

TRANSCRIPT

Algoritmos e Fluxogramas

Programao de Computadores IAlgoritmos e Fluxogramas - Parte 3

Prof. Antnio Augusto ChavesDepartamento de Matemtica Bloco VI - sala 23

http://www.feg.unesp.br/chaves [email protected]

1 / 28

Algoritmos e Fluxogramas

Objetivos

Ao nal desta aula, o aluno ser capaz de:1. Representar algoritmos por meio de uxogramas 2. Usar estruturas de controle de repetio que permitem a repetio da execuo de partes especcas do cdigo

Aula baseada no material do Prof. Marcos A. Pereira (FEG/UNESP)

2 / 28

Algoritmos e Fluxogramas Reviso

RevisoUm algoritmo um conjunto nito de instrues, com uma ou mais operaes capazes de serem executadas por um computador em tempo nito, para a realizao de uma tarefa especca. Caractersticas de um bom algoritmo:Finitude Exatido Entradas e sadas determinadas Efetividade

3 / 28

Algoritmos e Fluxogramas Reviso

RevisoRepresentao do uxo de execuo de um algoritmo: Fluxograma Fluxograma Representaogrfica, estruturadaesimplificada. Ilustraofluxo(seqncia)de operaes. Smbolospadronizados. Sintaxeesemnticabem definidos. Fcildetraduzirparaqualquer linguagemdeprogramao.

PCI MAP2009

Algoritmos eFluxogramas

4 / 28

Algoritmos e Fluxogramas Reviso

Fluxograma:principaissmbolosusadosemComputao RevisoPrincipais smbolosSmbolo Nome terminador conector fluxo processo subrotina deciso leitura exibio FunoRepresentaoincioouofimdo processamento. Representaasadaparaoua entradadeoutrapartedomesmo fluxograma. Representaofluxodosdadosou docontroledeexecuo. Representaumainstruo, resultandonaalteraodovalor deumainformao. Processamentodefunesou chamadaaprocedimentos. Representaumacondioaser avaliada,comduasoumais alternativasdeexecuo. Entradamanualdedados,em tempodeexecuo. Apresentaodosresultadosdo processamento.

5 / 28

Algoritmos e Fluxogramas Reviso

Reviso OperadoresOs seguintes smbolos so utilizados como operadores na linguagem C:Aritmticos Smbolo + * / % Operao adio subtrao multiplicao diviso resto < > = == != Relacionais Smbolo Significado menorque maiorque menorouigual maiorouigual igual diferente Smbolo && | | ! Lgicos Operao AND OR NOT

OsseguintessmbolossoutilizadoscomooperadoresnalinguagemC:

PCI MAP2010

Algoritmos e Fluxogramas

39

6 / 28

Algoritmos e Fluxogramas Reviso

Reviso

AtribuioA atribuio um comando utilizado para armazenamento temporrio Aatribuio umcomandoutilizadoparaarmazenamentotemporriode de valores. valores. O resultado do processamento descrito no lado direito do smbolo Oresultadodoprocessamentodescritonoladodireitodosmbolo ser ser atribudo para a varivel discriminada no lado esquerdo. atribudoparaavariveldiscriminadanoladoesquerdo.A A A 100 B 3 .14*A A s in(B) 100 B 3 .14*A 100

Ateno valor.

Aatribuio de atribuio em C: Comando umcomandodestrutivo,ouseja,ovaloranteriorser substitudopelonovo

=

PCI MAP2010

Algoritmos e Fluxogramas

40

7 / 28

Algoritmos e Fluxogramas Reviso

ExemploReviso

Determinarosaldodeumaaplicaofinanceira,cominvestimentoi Determinar o saldo de uma aplicao nanceira, com investimento inicial de deR$100,00ejurosde1%aoms,aofinaldo3 ms. R$ 100,00 e juros de 1% ao ms, ao nal do 3o ms.Sejam: I:ovalordoinvestimentoinicial. J:ataxadejuros. P:osaldoaofinaldoprimeiroms. S:osaldoaofinaldosegundoms. T:osaldoaofinaldoterceiroms.Incio I= 100 J= 0.01 P= I+J*I S= P+J*P T= S+J*S T Fim inciodoalgoritmo o valor100 atribudo varivelI ovalor0.01 atribudo varivelJ clculodosaldoaofinal doprimeiroms(P) clculodosaldoaofinal dosegundoms(S) clculodosaldoaofinal doterceiroms(T) informaosaldofinalT fimdoalgoritmo8 / 28

Algoritmos e Fluxogramas Reviso

lo

Reviso valornumricoeexibilocasosejamaiorquepositivo.Ler um valor numrico e exibi-lo caso seja positivo ou nulo.

Seja: A:ovalornumrico.

Incio A V A

inciodoalgoritmo lerA compararseA maiorouiguala0 exibirovalor deA

A>= 0 F

Fim

fimdoalgoritmo

9 / 28

Algoritmos e Fluxogramas Reviso

ExemploRevisoLerdoisvaloresnumricos,comparloseexibiromaiorvalor.Ler dois valores numricos, compar-los e exibir o maior valor.Sejam: A:oprimeirovalornumrico. B:osegundovalornumrico.

Incio A,B V A F B

inciodoalgoritmo lerAeB

A>B

compararAeB exibiromaiorvalor

Fim

fimdoalgoritmo

10 / 28

Algoritmos e Fluxogramas Reviso

Reviso

Leia 3 nmeros reais positivos A, B e C e verique se eles podem ser considerados como os lados de um tringulo (ou seja, se a soma de quaisquer dois lados maior que o terceiro lado). Em caso negativo, informe a mensagem No tringulo. Em caso armativo informe qual o tipo do tringulo: equiltero (os 3 lados so iguais), issceles (apenas 2 lados iguais) ou escaleno (nenhum lado igual ao outro).

11 / 28

Algoritmos e Fluxogramas Reviso

RevisoIncio A,B,C

F

B+C>A&& A+C>B&& A+B>C

V

No tringulo

F FA==B|| A==C|| B==C

A==B&& A==C

V

V Issceles

Equiltero

Escaleno

Fim12 / 28

Algoritmos e Fluxogramas Fluxograma

Exemplo 1 - SequencialCalcular e imprimir a soma de todos os nmeros naturais entre 1 e 10.Incio S=0 S = S+1 S = S +2 inciodoalgoritmo o valor 0 atribudo varivelS ovalor1 somado varivelS ovalor2 somado varivelS

. . .

S = S +10 S Fim

ovalor10 somado varivelS informaasoma fimdoalgoritmo13 / 28

Algoritmos e Fluxogramas Fluxograma

Exemplo 2 - IteraoCalcular e imprimir a soma de todos os nmeros naturais entre 1 e 10.Incio i=1 S=0 inciodoalgoritmo o valor 1 atribudo variveli o valor 0 atribudo varivelS

i=B V A= A B Q= Q+1

R= A R Fim

15 / 28

Algoritmos e Fluxogramas Fluxograma

ExemploExerccio - Modique o uxograma abaixo

Determinarosaldodeumaaplicaofinanceira,cominvestimentoi Determinar o saldo de uma aplicao nanceira, com investimento deR$100,00ejurosde1%aoms,aofinaldo3 ms. inicial de R$ 100,00 e juros de 1% ao ms, ao nal do 3o ms.Sejam: I:ovalordoinvestimentoinicial. J:ataxadejuros. P:osaldoaofinaldoprimeiroms. S:osaldoaofinaldosegundoms. T:osaldoaofinaldoterceiroms.Incio I= 100 J= 0.01 P= I+J*I S= P+J*P T= S+J*S T Fim inciodoalgoritmo o valor100 atribudo varivelI ovalor0.01 atribudo varivelJ clculodosaldoaofinal doprimeiroms(P) clculodosaldoaofinal dosegundoms(S) clculodosaldoaofinal doterceiroms(T) informaosaldofinalT fimdoalgoritmo16 / 28

Algoritmos e Fluxogramas Fluxograma

Estruturas bsicas de programaoNo paradigma de programao estruturada, os programas so escritos considerando apenas combinaes adequadas de trs estruturas bsicas: Sequncia Seleo Iterao Cada estrutura tem um nico ponto de entrada e um nico ponto de sada, representado pelo smbolo conector. Nessas estruturas, o smbolo de processo (retngulo) pode ser utilizado para representar qualquer ao, incluindo leitura de dados e exibio de resultados.

17 / 28

Algoritmos e Fluxogramas Fluxograma

truturasbsicasdeprogramao

Estruturas bsicas de programao eqncia:ofluxodeexecuodasinstruesocorredemodolinear,uma psaoutra. Sequncia: o uxo de execuo das instrues ocorre de modo linear, eveexistirapenasumcaminhopossvelnoconjuntodeinstruesdeum uma aps a outra. lgoritmo. Deve existir apenas um caminho possvel no conjunto de instrues deum algoritmo.

Sequncia

18 / 28

Algoritmos e Fluxogramas Fluxograma

EstruturasbsicasdeprogramaoEstruturas bsicas de programao

Seleo:execuoseletivadeumgrupodeinstruesbaseadaemalguma Seleo: execuo seletiva de um grupo de instrues baseada em condio,representadaporumaexpressolgicaourelacional. alguma condio, representada por uma expresso lgica ou Criamalternativasnofluxodeexecuodasinstruesdoalgoritmo.Em relacional. tempodeexecuo,apenasumadasalternativasser escolhida. Criam alternativas no uxo de execuo das instrues do algoritmo.Em tempo de execuo, apenas uma das alternativas ser escolhida.

V F

V

F

Seleosimples

Seleocomposta

19 / 28

Algoritmos e Fluxogramas Fluxograma

Estruturasbsicasdeprogramao

Estruturas bsicas de programao Iterao:execuorepetitivadeumgrupodeinstruesat quealguma condiosejasatisfeita.Ofluxodaexecuopodevoltarvriasvezesao Iterao: execuo repetitiva de um grupo de instrues at que alguma condio seja satisfeita. inciodeumconjuntodeetapas,antesdeprosseguirparaaetapaseguinte.O uxo da execuo pode voltar vrias vezes ao incio de um conjunto de etapas, antes de prosseguir para a etapa seguinte.

F V V F

Iteraocom testeapriori

Iteraocom testeaposteriori

20 / 28

Algoritmos e Fluxogramas Fluxograma

Fluxogramas estruturadosAs estruturas bsicas podem ser combinadas entre si, utilizando apenas duas regras:Regra do empilhamento: o ponto de sada de uma estrutura pode ser conectado ao ponto de entrada de outra estrutura. Regra do aninhamento: Um retngulo de uma estrutura pode ser substitudo por uma outra estrutura qualquer.

Essas regras podem ser aplicadas quantas vezes forem necessrias, e em qualquer ordem. Os uxogramas resultantes da aplicao dessas regras constituem o conjunto de todos os uxogramas estruturados possveis.

21 / 28

Algoritmos e Fluxogramas Fluxograma

Exerccio

Escreva uxogramas para representar o processo de soluo dos seguintes problemas. Verique se o uxograma est correto utilizando alguns exemplos. Quando necessrio utilize os operadores aritmticos e relacionais da linguagem C.1) Calcule e imprima a soma de 10 nmeros fornecidos pelo usurio.

22 / 28

Algoritmos e Fluxogramas Fluxograma

Exerccio

Escreva uxogramas para representar o processo de soluo dos seguintes problemas. Verique se o uxograma est correto utilizando alguns exemplos. Quando necessrio utilize os operadores aritmticos e relacionais da linguagem C.2) Leia uma sequncia de 5 nmeros e em seguida imprima o maior nmero. Faa primeiro utilizando o condicional no incio e depois com o condicional no nal do lao de repetio.

23 / 28

Algoritmos e Fluxogramas Fluxograma

Exerccio

Escreva uxogramas para representar o processo de soluo dos seguintes problemas. Verique se o uxograma est correto utilizando alguns exemplos. Quando necessrio utilize os operadores aritmticos e relacionais da linguagem C.3) Leia dois nmeros e calcule o resultado da multiplicao de um pelo outro sem utilizar a operao de multiplicao (ou seja, utilizando apenas soma).

24 / 28

Algoritmos e Fluxogramas Sumrio

Sumrio

Estruturas bsicas de programaoSequncia SeleoSeleo simples Seleo composta

IteraoCom teste a priori Com teste a posteriori

25 / 28

visos gerais - Sobre a aula de ontemDvidas

Algoritmos e Fluxogramas

Dvidas???

O Grito (Edvard Munch, 1893)26 / 28

aaulaDvidas

Algoritmos e Fluxogramas

Prxima Aula

27 / 28

Algoritmos e Fluxogramas Referncias Bibliogrcas

Referncias BibliogrcasCarboni, I.F. Lgica de programao. So Paulo: Pioneira Thomson Learning, 2003. Souza, M.A.F. e outros. Algoritmos e lgica de programao. So Paulo: Pioneira Thomson Learning, 2005. Damas, L. Linguagem C - 10a ed. Rio de Janeiro: LTC, 2007. Mizrahi, V.V. Treinamento em linguagem C - mdulos I e II. So Paulo: McGraw-Hill, 1990. Senne, E.L.F. Primeiro curso de programao em C - 3a ed. Florianpolis: Visual Books, 2009.

28 / 28