Disciplina : Algoritmo 2009 /...

27
Disciplina Disciplina : Algoritmo : Algoritmo 2009 / 1 2009 / 1 Curso Superior de An Curso Superior de An á á lise e lise e Desenvolvimento de Sistemas Desenvolvimento de Sistemas

Transcript of Disciplina : Algoritmo 2009 /...

DisciplinaDisciplina: Algoritmo: Algoritmo2009 / 12009 / 1

Curso Superior de AnCurso Superior de Anáálise e lise e

Desenvolvimento de SistemasDesenvolvimento de Sistemas

HabilidadesHabilidades

- Métodos para construção de algoritmos.

- Representação de algoritmos.

- Tipos primitivos de dados:constantes e variáveis.

- Comandos de atribuição: entrada e saída de dados. - Programas e sub-programas

Programação Estruturada e ModularProcedimentos Funções

HabilidadesHabilidades

- Operadores: aritméticos, relacionais e lógicos.- Estruturas controle de fluxo:

Decisão: simples, composta e múltipla escolha;Repetição: teste no início, teste no final, variável

de controle;

- Estrutura de dados:

−Matrizes unidimensionais e bidimensionais (vetores e

matrizes)

−Registros

Referências BibliogrReferências Bibliográáficasficas

2. Algoritmos:2. Algoritmos:

�� MANZANO, JosMANZANO, Joséé Augusto N. G. , OLIVEIRA, Augusto N. G. , OLIVEIRA, JayrJayrFigueiredo. Figueiredo. Estudo DirigidoEstudo Dirigido. Cole. Coleçção P.D. Editora ão P.D. Editora ÉÉrica. 4rica. 4ªª ed.ed.

�� LAGES, Guimarães. LAGES, Guimarães. IntroduIntroduçção ão àà ciência da ciência da computacomputaççãoão. Livros T. Livros Téécnicos e Cientcnicos e Cientííficos. Editora ficos. Editora S.AS.A

�� FORBELLONE, AndrFORBELLONE, Andréé Luiz Luiz VillarVillar. BERSPACHER, . BERSPACHER, Henri Frederico. Henri Frederico. LLóógica de Programagica de Programaçção ão -- A A construconstruçção de algoritmos e estruturas de dadosão de algoritmos e estruturas de dados. . MakronMakron Books, 1993.Books, 1993.

Referências BibliogrReferências Bibliográáficasficas�� ZIVIANI, ZIVIANI, NivioNivio. . Projeto de Projeto de algoralgoríítmostmos: com : com

implementaimplementaçções em Pascal e Cões em Pascal e C. São Paulo: Pioneira . São Paulo: Pioneira ThomsonThomson LearningLearning, 2002 267 p. ISBN 8522101744, 2002 267 p. ISBN 8522101744

�� MANZANO, JosMANZANO, Joséé Augusto N. G.; OLIVEIRA, Augusto N. G.; OLIVEIRA, JayrJayrFigueiredo de. Figueiredo de. Estudo dirigido de algoritmos. 7Estudo dirigido de algoritmos. 7. ed. . ed. São Paulo: São Paulo: ÉÉrica, 2002 220p. rica, 2002 220p.

�� WIRTH, WIRTH, NiklausNiklaus. . AlgorAlgoríítmostmos e estruturas de dadose estruturas de dados. . Rio de Janeiro: LTC, c1999. 255 p. Rio de Janeiro: LTC, c1999. 255 p.

Sistema de AvaliaSistema de Avaliaççãoão

�� 11ªª avaliaavaliaçção ão –– 3,03,0

�� Prova de lista de exercProva de lista de exercíícioscios�� Atividades prAtividades prááticasticas

�� 22ªª avaliaavaliaçção ão –– 4,04,0

�� Prova 1Prova 1ªª etapaetapa�� Atividades prAtividades prááticasticas

�� 33ºº avaliaavaliaçção ão –– 3,03,0

�� Prova 2Prova 2ªª etapaetapa�� Atividades prAtividades prááticasticas

�� ReRe--avaliaavaliaççãoão

1. Abordagem Contextual1. Abordagem Contextual

�� Algoritmo não Algoritmo não éé a solua soluçção do problema, ão do problema, éé pois, pois, o caminho para a soluo caminho para a soluçção de um problema.ão de um problema.

�� Existem vExistem váárias formas de representar um rias formas de representar um algoritmo.algoritmo.

�� O aprendizado de algoritmos não se consegue O aprendizado de algoritmos não se consegue a não ser atrava não ser atravéés de muitos exercs de muitos exercíícios.cios.

�� Para a definiPara a definiçção de um bom algoritmo ão de um bom algoritmo éénecessnecessáário desenvolver um raciocrio desenvolver um raciocíínio lnio lóógico. gico.

1. Abordagem Contextual1. Abordagem Contextual

1. Abordagem Contextual1. Abordagem Contextual

1. Abordagem Contextual1. Abordagem Contextual

1. Abordagem Contextual (cont.)1. Abordagem Contextual (cont.)

Algoritmos não se aprendem:

– Copiando algoritmos

– Estudando algoritmos

Algoritmos só se aprendem:

– Construindo algoritmos

– Testando algoritmos

1.1. Conceito de algoritmo1.1. Conceito de algoritmo

�� ““Algoritmo Algoritmo éé um conjunto finito de regras, um conjunto finito de regras, bem definidas, para a solubem definidas, para a soluçção de um ão de um problema em um tempo finito e com um problema em um tempo finito e com um nnúúmero finito de passos.mero finito de passos.””

1.2. Para se ter um algoritmo, 1.2. Para se ter um algoritmo, éénecessnecessáário:rio:

�� Que se tenha um nQue se tenha um núúmero finito de passosmero finito de passos

�� Que cada passo esteja precisamente definido, Que cada passo esteja precisamente definido, sem posssem possííveis ambigveis ambigüüidadesidades

�� Que existam zero ou mais entradas Que existam zero ou mais entradas tomadas de conjuntos bem definidostomadas de conjuntos bem definidos

�� Que existam uma ou mais saQue existam uma ou mais saíídasdas

�� Que exista uma condiQue exista uma condiçção de fim ão de fim sempre atingida para quaisquer sempre atingida para quaisquer entradas e num tempo finito.entradas e num tempo finito.

2. Formas de representa2. Formas de representaçção de ão de um algoritmoum algoritmo

�� Dentre as formas de representaDentre as formas de representaçção de ão de algoritmos mais conhecidas, sobressaltam:algoritmos mais conhecidas, sobressaltam:

•• a a DescriDescriçção Narrativaão Narrativa

•• o o Fluxograma ConvencionalFluxograma Convencional

•• o o Diagrama de Diagrama de ChapinChapin

•• o o PseudocPseudocóódigodigo, tamb, tambéém conhecido como m conhecido como Linguagem EstruturadaLinguagem Estruturada ou ou PortugolPortugol..

2.1. Forma Narrativa2.1. Forma Narrativa

�� Nesta forma de representaNesta forma de representaçção os algoritmos ão os algoritmos são expressos diretamente em são expressos diretamente em linguagem linguagem

naturalnatural. Como por exemplo:. Como por exemplo:

�� Troca de um pneu furado:Troca de um pneu furado:

–– Afrouxar ligeiramente as porcasAfrouxar ligeiramente as porcas–– Suspender o carroSuspender o carro–– Retirar as porcas e o pneuRetirar as porcas e o pneu–– Colocar o pneu reservaColocar o pneu reserva–– Apertar as porcasApertar as porcas–– Abaixar o carroAbaixar o carro–– Dar o aperto final nas porcasDar o aperto final nas porcas

2.2. Fluxograma Convencional 2.2. Fluxograma Convencional e Diagrama de Blocose Diagrama de Blocos

�� ÉÉ uma representauma representaçção grão grááfica de algoritmos fica de algoritmos onde formas geomonde formas geoméétricas diferentes implicam tricas diferentes implicam aaçções (instruões (instruçções, comandos) distintos. Tal ões, comandos) distintos. Tal propriedade facilita o entendimento das propriedade facilita o entendimento das ididééias contidas nos algoritmos.ias contidas nos algoritmos.

�� SSíímbolos utilizados no fluxograma:mbolos utilizados no fluxograma:

= Início e final do fluxograma

= Operação de entrada de dados

= Operação de saída de dados em impressora

= Operação de saída de dados em vídeo

= Operações de atribuição e chamada ou retorno de subalgoritmo

= Decisão

= Seta do Fluxo de Dados

= Conector utilizado quando é preciso particionar o diagrama, colocando uma letra ou número no símbolo para identificar os pares da conexão

= Conector específico para indicar conexão do fluxo de execução em outra página

= Preparação - operações que utilizam uma chave que modifica a execução do programa

2.3. Diagrama de 2.3. Diagrama de ChapinChapin

�� Criador: Ned Criador: Ned ChapinChapin

�� SubstituiSubstituiçção do fluxograma tradicional por um ão do fluxograma tradicional por um diagrama que apresenta uma visão diagrama que apresenta uma visão hierhieráárquica e estruturada da lrquica e estruturada da lóógica do gica do programa.programa.

�� VantagemVantagem : representa: representaçção das estruturas ão das estruturas que tem um ponto de entrada e um ponto de que tem um ponto de entrada e um ponto de sasaíída e são compostas pelas estruturas da e são compostas pelas estruturas bbáásicas de controle de seqsicas de controle de seqüüência, seleência, seleçção e ão e repartirepartiçção. ão.

início

leia(N1, N2)

MÉDIA ← (N1+N2)/2

Média >= 7

Sim Não

escreva( “Aprovado”) escreva (“Reprovado”)

fim

Diagrama de Chapin para o algoritmo do cálculo da média de um aluno

2.4. Pseudoc2.4. Pseudocóódigodigo

�� Conhecido como português estruturado ou Conhecido como português estruturado ou portugolportugol

�� Rico em detalhesRico em detalhes

2.4. Representa2.4. Representaçção de um algoritmo na ão de um algoritmo na forma de pseudocforma de pseudocóódigodigo

algoritmoalgoritmo <<nome_do_algoritmonome_do_algoritmo>>

<vari<variááveis globais>veis globais>

<<subalgoritmossubalgoritmos>>

{Programa Principal}{Programa Principal}

ininííciocio

<declara<declaraçção_de_varião_de_variááveis>;veis>;

<<corpo_do_algoritmocorpo_do_algoritmo>;>;

fim;fim;

fim algoritmo.fim algoritmo.

algoritmo SOMA

início

real: NUM1,{Valor do primeiro número}

NUM2,{Valor do segundo número}

SOMA;{Valor da soma entre NUM1 e NUM2}

NUM1 � 2;

NUM2 � 4;

SOMA � NUM1+NUM2;

escreva(“O resultado foi:”,SOMA);

fim;

fim algoritmo.

Pseudocódigo para somar dois números

3. Tipos de Dados3. Tipos de Dados

�� InteirosInteiros

�� ReaisReais

�� CaracteresCaracteres

�� LLóógicosgicos

4. Constantes e Vari4. Constantes e Variááveisveis4.1. Armazenamento de dados na mem4.1. Armazenamento de dados na memóóriaria

7 A

inteiro: A;caracter: B;

Word

Windows

Internet Explorer

MSN

Programa 1

A B

4. Constantes e Vari4. Constantes e Variááveisveis4.2. Conceito e utilidades de vari4.2. Conceito e utilidades de variááveis:veis:

�� varivariáável vel éé tudo aquilo que tudo aquilo que éé sujeito a variasujeito a variaçções, que ões, que ééincerto, instincerto, instáável ou inconstante. vel ou inconstante.

–– uma variuma variáável possui três atributos: vel possui três atributos: �� nome, nome,

�� tipo de dado,tipo de dado,

�� informainformaççãoão

4.3. Defini4.3. Definiçção de Varião de Variááveis em Algoritmosveis em Algoritmos<<tipo_da_varitipo_da_variáávelvel> : <> : <nome_da_varinome_da_variáávelvel> ;> ;ouou

<<tipo_das_varitipo_das_variááveisveis>: <>: <lista_de_varilista_de_variááveisveis> ;> ;

4. Constantes e Vari4. Constantes e Variááveisveis

4.4. Conceito e Utilidade de Constantes4.4. Conceito e Utilidade de Constantes�� tudo aquilo que tudo aquilo que éé fixo ou estfixo ou estáável.vel.

4.5. Defini4.5. Definiçção de Constantes em Algoritmosão de Constantes em Algoritmosconstconst <<nome_da_constantenome_da_constante> = <> = <valorvalor>;>;