Anda di halaman 1dari 28

Prof Thyago Maia

Algoritmos e Programao
Aula 1

Sumrio

Apresentao da Disciplina;

O segredo para ter sucesso na disciplina;

Afinal, o que um algoritmo?

O que podemos concluir sobre algoritmos?

Por que criamos algoritmos?

Representaes de um algoritmo;

Apresentao da Disciplina

Professor: Thyago Maia T. de Farias

Mestre em Informtica pelo PPGI/DI/UFPB

Bacharel em Cincia da Computao UFPB

Currculo Lattes: http://lattes.thyagomaia.net

E-Mail: contato@thyagomaia.com

Twitter: http://twitter.com/thyagomaia

Pgina Facebook:
http://facebook.com/profthyagomaia

Apresentao da Disciplina

Objeto de estudo:

Ensino dos conceitos bsicos de algoritmos


estruturados, envolvendo tipos de dados e formas
de representao de algoritmos;
Fundamentos e tcnicas estruturadas de
programao para o desenvolvimento de software;

Apresentao da Disciplina

Objetivo Geral

Introduzir conceitos e tcnicas de programao, utilizando


noes de algoritmos, atravs de linguagem de alto nvel;

Objetivos Especficos

Introduzir as tcnicas para o desenvolvimento de


algoritmos;
Estudo e aplicao das tcnicas bsicas de programao
em linguagem de alto nvel;
Anlise e depurao de cdigo;

Apresentao da Disciplina

Metodologia

Aulas tericas e prticas;

Avaliaes

Divididas em 3 estgios:

1 estgio: Prova Prtica (0 a 10 pontos);

2 estgio: Prova Prtica (0 a 8 pontos) + Trabalho para o Projeto


Integrador (1 ponto) + Apresentao para o III Frum Integrador (1
ponto);

3 estgio: Prova Prtica (0 a 10 pontos);

Reposio (todo aluno tem direito a repor APENAS uma prova);

Exame Final: Prova Prtica que aborda todo o contedo;

Apresentao da Disciplina

Projeto Integrador 2012.1

Tema Geral: Redes Socias e Aplicaes para Web;

Trabalhos a serem desenvolvidos nesta disciplina:

2 estgio

Desenvolver um algoritmo ou um programa que funcione como


um Quiz. O Quiz ter como objetivo coletar votos dos usurios
acerca de uma ou mais redes sociais. Aps a coleta, o algoritmo
ou programa dever apresentar o resultado final das votaes;

Apresentao da Disciplina

Referncias

EAD do Unip (http://ead.unipe.br)

Contato oficial (e-mail, frum, chat...);


Material de apoio

Notas de aula;
Slides;
Exerccios;
Complementao de aulas presenciais;

Minha pgina no Facebook

(http://facebook.com/profthyagomaia)

Apresentao da Disciplina

Softwares que sero utilizados no curso

VisuAlg

http://www.apoioinformatica.inf.br/visualg/setupv2.exe

Eclipse IDE

http://www.eclipse.org

O segredo para ter sucesso na


disciplina

Procure estar presente na maioria das aulas ( claro...


=P);

Se faltou, procure checar o material da aula no site e/ou


com os colegas de sala;
Dvida em algum assunto da aula? Pergunte ao professor
imediatamente ou envie um e-mail!

Lembre-se: Alguns exerccios podero valer pontos


para a prova!

Sempre checo meus e-mails e procuro responde-los o


mais breve possvel;

E o mais importante: Pratique... Pratique... Pratique...

Afinal, o que um algoritmo?

Sequncia de instrues finitas e ordenadas de


forma lgica para a resoluo de uma
determinada tarefa ou problema;
No necessariamente envolve aspectos
computacionais;
Exemplos
Uma receita de bolo;
Manual de instrues;

Afinal, o que um algoritmo?

Exemplo: Sequncia para fritar um ovo:


1) Retirar o ovo da geladeira;
2) Colocar a frigideira no fogo;
3) Colocar leo;
4) Esperar at o leo ficar quente;
5) Quebrar o ovo separando a casca;
6) Colocar o contedo do ovo na frigideira;
7) Esperar um minuto;
8) Retirar o ovo da frigideira;
9) Apagar o fogo;

Afinal, o que um algoritmo?

Tal sequncia um algoritmo? Vejamos...


A sequncia anterior possui instrues finitas
e ordenadas?
SIM. 9 instrues ordenadas;
O incio de uma instruo depende da
concluso de uma instruo anterior;
O objetivo da sequncia foi atingido?
SIM. O ovo foi frito;
Logo, a sequncia anterior um algoritmo!

Afinal, o que um algoritmo?

Exerccio
Ordene e estruture uma sequncia para a
realizao de uma ligao telefnica em um
orelho.

Afinal, o que um algoritmo?

Uma possvel soluo:


1) Tirar o telefone do gancho;
2) Ouvir o sinal de linha;
3) Introduzir o carto no orelho;
4) Teclar o nmero desejado;
5) Conversar;
6) Desligar;
7) Tirar o carto;

Afinal, o que um algoritmo?

A soluo anterior... mais robusta:


1) Tirar o telefone do gancho;
2) Ouvir o sinal de linha;
3) Introduzir o carto no orelho;
4) Teclar o nmero desejado;
5) Se chamar e algum atender...
1) Conversar;
2) Desligar;
3) Retirar o carto;
6) Seno...
1) Desligar;
2) Voltar para a instruo 1;

O que podemos concluir sobre


algoritmos?

Algoritmo uma espcie de passo a passo de


aes (instrues);
Algoritmos retornam uma sada (ex.: um ovo
frito) a partir de uma determinada entrada (ex.:
um ovo) atravs de uma sequncia de passos;
Os passos so executados um aps o outro
(de forma sequencial);

O que podemos concluir sobre


algoritmos?

Um algoritmo est correto quando sua sequncia de


instrues retorna uma sada esperada;
Podem existir um ou mais algoritmos que retornam
uma sada esperada;

Mas podem existir algoritmos mais eficientes que


outros;

Um algoritmo no a soluo do problema, mas o


caminho que busca a soluo do problema;

Por que criamos algoritmos?

A linguagem natural no pode ser interpretada por


computadores;
Computadores so projetados para executar tarefas
bem definidas a partir de instrues;
Para desenvolver software, utilizamos linguagens de
programao...

A linguagem algortmica similar a uma linguagem de


programao;

Logo, aprendendo a criar algoritmos, estamos aptos a


programar em qualquer linguagem de programao;

Representaes de um Algoritmo

Descrio Narrativa;

Fluxograma;

Pseudocdigo,
Portugus Estruturado
ou Portugol;

SUBJETIVIDADE

PRECISO

Representaes de um Algoritmo

Descrio Narrativa

Utiliza-se preferencialmente um verbo por frase;

Formada por frases curtas e simples;

objetiva;

Evita palavras com sentido dbio;

Representaes de um Algoritmo

Descrio Narrativa Exemplo:

Dobro de um nmero (dobro = nmero x 2)

Digitar um nmero;

Gravar em uma varivel;

Multiplicar o nmero digitado por 2;

Gravar o resultado em outra varivel;

Mostrar o resultado da operao;

Representaes de um Algoritmo

Fluxograma

Descrevem o fluxo de
ao de um determinado
trabalho lgico;
Usa smbolos
convencionais,
permitindo poucas
variaes;
Representados por
smbolos geomtricos;

Representaes de um Algoritmo

Fluxograma - Exemplo

Representaes de um Algoritmo

Portugus Estruturado (Portugol)

Linguagem mais restrita que o portugus em


linguagem natural;
Simplificao extrema do portugus;
Significados bem definidos para todos os termos
utilizados nas instrues;
Possui um conjunto de palavras e regras
especficas (sintaxe da linguagem);
a representao utilizada no curso;

Representaes de um Algoritmo

Portugus Estruturado (Portugol)

Normalmente as implementaes so feitas em


papel, escritas a mo;
Atualmente, tambm so utilizados programas que
interpretam, testam e executam algoritmos;

Ex.: VisuAlg (programa que utilizaremos no curso);

Desafio

Escreva um algoritmo que ajude o homem do


barco a levar o lobo, a ovelha e a caixa de
verduras para o outro lado do lago. Utilize a
descrio narrativa para representar o
algoritmo. Lembre-se:

Lobos comem ovelhas e ovelhas comem as


verduras quando o homem est na outra margem!

Soluo do Desafio
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.

Pega a ovelha
Vai para a outra margem
Deixa a ovelha
Volta a margem inicial
Pega a caixa de verduras
Vai para a outra margem
Deixa a caixa de verduras e pega a ovelha
Volta a margem inicial
Deixa a ovelha e pega o lobo
Vai para a outra margem
Deixa o lobo
Volta a margem inicial
Pega a ovelha
Vai para a outra margem
Deixa a ovelha

Anda mungkin juga menyukai