algoritmos e fluxogramas
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