Beruflich Dokumente
Kultur Dokumente
Programao de Computadores I
Algoritmos e Fluxogramas - Parte 3
http://www.feg.unesp.br/chaves chaves@feg.unesp.br
1 / 28
Algoritmos e Fluxogramas
Objetivos
2 / 28
Reviso
Um 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
Reviso
Representao 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
Fluxograma:principaissmbolosusadosemComputao Reviso
Principais smbolos
Smbolo Nome terminador conector fluxo processo subrotina deciso leitura exibio Funo
Representaoincioouofimdo processamento. Representaasadaparaoua entradadeoutrapartedomesmo fluxograma. Representaofluxodosdadosou docontroledeexecuo. Representaumainstruo, resultandonaalteraodovalor deumainformao. Processamentodefunesou chamadaaprocedimentos. Representaumacondioaser avaliada,comduasoumais alternativasdeexecuo. Entradamanualdedados,em tempodeexecuo. Apresentaodosresultadosdo processamento.
5 / 28
Reviso Operadores
Os 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
Reviso
Atribuio
A 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.
PCI MAP2010
Algoritmos e Fluxogramas
40
7 / 28
Exemplo
Reviso
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 fimdoalgoritmo
8 / 28
lo
Reviso valornumricoeexibilocasosejamaiorquepositivo.
Ler um valor numrico e exibi-lo caso seja positivo ou nulo.
Seja: A:ovalornumrico.
Incio A V A
A>= 0 F
Fim
fimdoalgoritmo
9 / 28
Exemplo
Reviso
Lerdoisvaloresnumricos,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
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
Reviso
Incio A,B,C
No tringulo
F F
A==B|| A==C|| B==C
A==B&& A==C
V Issceles
Equiltero
Escaleno
Fim
12 / 28
Exemplo 1 - Sequencial
Calcular 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
Exemplo 2 - Iterao
Calcular 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
S Fim
informaasoma fimdoalgoritmo
14 / 28
Exemplo
Exemplo 3
Calcularorestodadivisointeiraentredoisnmerosinteirospositivos.
Calcular o resto da diviso inteira entre dois nmeros inteiros positivos.
Sejam: A:ovalordodividendo. B:ovalordodivisor. Q:ovalordoquociente. R:ovalordoresto.
inciodoalgoritmo lerAeB inicializarovalor doquocienteQ compararAeB atualizarovalordo dividendoA atualizarovalordo quocienteQeretornar
A>=B V A= A B Q= Q+1
R= A R Fim
15 / 28
Exemplo
Exerccio - 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 fimdoalgoritmo
16 / 28
17 / 28
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 de
um algoritmo.
Sequncia
18 / 28
Estruturasbsicasdeprogramao
Estruturas 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
Seleosimples
Seleocomposta
19 / 28
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
Fluxogramas estruturados
As 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
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
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
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
Sumrio
Iterao
Com teste a priori Com teste a posteriori
25 / 28
Algoritmos e Fluxogramas
Dvidas???
aaula
Dvidas
Algoritmos e Fluxogramas
Prxima Aula
27 / 28
Referncias Bibliogrcas
Carboni, 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