You are on page 1of 39

SISTEMA DE NFORMAO

LABORATRIO DE PROGRAMAO
PROF. EVELYN CID

AULA 01 - INTRODUO

CONTEDO PROGRAMTICO

Introduo a algoritmos
Mtodo para desenvolvimento de algoritmos
Descrio Narrativa
Pseudocdigo
Grficos (Fluxograma e Nassin-Shneiderman-Chapin)

Boas prticas de programao


Linguagem de Programao

AULA 1 - INTRODUO
Prof. EVELYN CID

INTRODUO LGICA
A palavra lgica originria do grego logos, que significa linguagem
racional.
Lgica a anlise das formas e leis do pensamento. (Michaelis)
No se preocupa com a produo do pensamento, mas sim com a
maneira pela qual um pensamento ou idia organizado e
apresentado.
Exemplo:
1. Sandra mais velha do que Ricardo.

2. Ricardo mais velho que Pedro.


3. Logo, Sandra mais velha do que Pedro.

AULA 1 - INTRODUO
Prof. EVELYN CID

LGICA APLICADA INFORMTICA

A lgica utilizada em diversas cincias, principalmente na

informtica.
Na informtica a lgica utilizada em todas as suas reas, desde a
criao do hardware at o software.
Na construo de software utilizamos raciocnio lgico, o
homem constri algoritmos, que so transformados em programas de
computador capazes de solucionar problemas complexos.
esta rea da lgica que estudaremos ao longo deste ano letivo.

AULA 1 - INTRODUO
Prof. EVELYN CID

ALGORITMOS E LGICA DE PROGRAMAO

O estudo de algoritmos e lgica de programao essencial no


contexto do processo de criao de um software.

Independente da linguagem de programao, um software


especificado para que na sua implementao a especificao seja
traduzida em linhas de cdigo.

Durante a especificao possvel verificar em um maior nvel de


abstrao, se o software est correto ou no e se atender s
especificaes propostas. Isso permite evitar erros no produto final.

AULA 1 - INTRODUO
Prof. EVELYN CID

EXEMPLOS DE USO DE RACIOCNIO LGICO

1. Gerson cientista.
2. Todo cientista estudioso.

3. Logo, Gerson estudioso.


Substituindo as palavras Gerson e estudioso, por A e B:
1. A cientista.
2. Todo cientista B.
3. Logo, A B.

AULA 1 - INTRODUO
Prof. EVELYN CID

EXERCCIO PARA O USO DE RACIOCNIO LGICO

R2D2

Darth Vader

Stormtrooper

Mind Lab Brasil

AULA 1 - INTRODUO
Prof. EVELYN CID

EXEMPLOS DE USO DE RACIOCNIO LGICO

Problema das Torres de Hani:


Mover os discos da torre A para a torre C, um por vez, sem
que o disco maior fique sobre o disco menor:

AULA 1 - INTRODUO
Prof. EVELYN CID

EXERCCIO PARA O USO DE RACIOCNIO LGICO

Um rapaz est sentado mesa de um bar aguardando a namorada,


que est atrasada. Enquanto espera pacientemente, brinca de fazer
quadrados com palitos de fsforo como mostra a figura abaixo:

Quantos palitos so necessrios para fazer 200 quadrados?

AULA 1 - INTRODUO
Prof. EVELYN CID

10

O QUE UM ALGORITMO?

uma seqncia de passos que visam atingir um objetivo bem


definido, ou ainda, representa um conjunto de regras para a soluo
de um problema.
Exemplos:
- Receita de um bolo;
- Troca de um pneu;
- Resoluo de uma equao do 2. Grau.

AULA 1 - INTRODUO
Prof. EVELYN CID

11

IMPORTNCIA DA CONSTRUO DE UM
ALGORITMO?

Um algoritmo tem por objetivo representar fielmente o


raciocnio envolvido na lgica de programao.

Uma vez concebida uma soluo algortmica para um problema,


esta pode ser traduzida para qualquer linguagem de programao.

AULA 1 - INTRODUO
Prof. EVELYN CID

12

TIPOS DE ALGORITMOS
Um algoritmo pode ser representado:
Descrio Narrativa
Pseudocdigo
Grficos:
- Fluxograma
- Nassin-Shneiderman-Chapin

AULA 1 - INTRODUO
Prof. EVELYN CID

13

TIPOS DE ALGORITMO

Descrio Narrativa: utiliza linguagem natural para


especificar os passos para a realizao das tarefas.

Exemplo: Algoritmo para calcular a rea de um tringulo


Incio
1. Pedir para o usurio digitar os valores de b e de h
2. Calcular a rea de s usando a frmula s= (b x h) / 2

3. Exibir o valor de s na tela


Fim
AULA 1 - INTRODUO
Prof. EVELYN CID

14

TIPOS DE ALGORITMO

Pseudocdigo ou Portugus Estruturado: utiliza


linguagem estruturada, assemelha-se a um programa escrito
em uma linguagem de computador.
Exemplo: Algoritmo para calcular a rea de um tringulo

Incio
1. Leia (b, h)
2. s (b * h) / 2

3. Exiba (s)
Fim
AULA 1 - INTRODUO
Prof. EVELYN CID

15

TIPOS DE ALGORITMO
Incio

Fluxograma (diagrama de blocos): forma


universal de representao, pois utiliza figuras
geomtricas para ilustrar os passos a serem
seguidos para a resoluo de problemas.

B, h

S = (b*h)/2

Exemplo:
Algoritmo para calcular a rea de um tringulo

Fim

AULA 1 - INTRODUO
Prof. EVELYN CID

16

TIPOS DE ALGORITMO
Cada instruo ou ao a ser executada deve ser representada por meio
de um smbolo grfico.
Terminal: representa o incio e
o final do fluxograma.
Processamento: representa a
execuo de operaes ou aes.
Teclado: representa a entrada de
dados para as variveis por meio
do teclado.

Vdeo: representa a sada de


informaes por meio do monitor
de vdeo.
Deciso: representa uma ao lgica
que resultar na escolha de uma das
seqncias de instrues.
Conector de Pginas: utilizado para
interligar partes do fluxograma em
pginas distintas.

Conector: utilizado para interligar partes do fluxograma ou para desviar o fluxo corrente para
um determinado trecho do fluxograma.
Seta de orientao do fluxo.

AULA 1 - INTRODUO
Prof. EVELYN CID

17

TIPOS DE ALGORITMO
Diagrama de Nassin-Shneiderman-Chapin

AULA 1 - INTRODUO
Prof. EVELYN CID

18

TIPOS DE ALGORITMO

Diagrama de Nassin-Shneiderman-Chapin: A ideia bsica deste

diagrama representar as aes de um algoritmo dentro de


um nico retngulo, subdividido-o em retngulos menores,
que representam os diferentes blocos de seqncia de aes
do algoritmo. Seleo e repetio tambm so representadas
de forma grfica, dentro dos retngulos.

AULA 1 - INTRODUO
Prof. EVELYN CID

19

TIPOS DE ALGORITMO
Fluxograma

Pseudocdigo

Narrativa

AULA 1 - INTRODUO
Prof. EVELYN CID

20

BOAS PRTICAS PARA CONSTRUO DE


ALGORITMOS - PSEUDOCDIGO
Identificao do algoritmo:
Nome que representa o algoritmo.
Declarao de Variveis:
Todas as variveis utilizadas para a
soluo de problemas devem ser
previamente declaradas.
Corpo do Algoritmo:
rea reservada para a soluo do
problema, devero constar nesta
rea: entrada de valores para as
variveis, operaes de atribuio,
lgicas e matemticas, abertura e
fechamento de arquivos, laos de
repetio e exibio de resultados.

AULA 1 - INTRODUO
Prof. EVELYN CID

21

SOLUCIONANDO PROBLEMAS

1. Ao se deparar com um problema novo, tente entend-lo. Para


auxiliar pense no seguinte:
Faa um esboo informal de como ligar os dados as condies.
importante desenhar, rascunhar e usar de todos os artifcios para
montar a lgica que leve a soluo.

Essa a 1. Etapa, a Anlise do Problema que consiste na


Compreenso e Estratgia!

AULA 1 - INTRODUO
Prof. EVELYN CID

22

SOLUCIONANDO PROBLEMAS

Lembre-se que o algoritmo nada mais que uma forma de


representar a lgica que desejamos aplicar. Assim, antes de

construir um algoritmo, precisamos definir alguma estratgia.

Estratgia Algoritmo Programa

AULA 1 - INTRODUO
Prof. EVELYN CID

23

SOLUCIONANDO PROBLEMAS
2. Crie um plano para a soluo:
Crie uma estratgia para a soluo, observando:
J resolveu algum problema similar? Qual?

Se sim, a soluo pode ser aproveitada por analogia, para referncia ou

por ser parte da soluo do novo problema. Observe se ser necessrio


introduzir elementos novos ou modificar os existentes.
Se o problema for muito complexo, provavelmente pode ser fracionado em
partes menores de soluo mais simples.

possvel enxergar o problema de outra forma, de modo que o entendimento


se torne mais simples? Lembre-se que descer uma escada de costas bem
mais complicado do que da maneira natural e chegamos sempre ao mesmo
lugar...

AULA 1 - INTRODUO
Prof. EVELYN CID

24

SOLUCIONANDO PROBLEMAS
3. Formalize a soluo:
No tente criar a soluo inteira, antes de rascunh-la!!!
Siga os passos:

1. Crie um algoritmo informal com as instrues que resolvam o problema ou que


ao menos paream resolv-lo.
2. Verifique se cada passo desse algoritmo est correto, simulando-o num papel

(teste de mesa ou simulao).


3. Identifique os erros e os trate um por vez, sem nunca perder de vista o
objetivo real do programa. Esse processo ordenado logicamente faz voc

aprender a desenvolver solues.

AULA 1 - INTRODUO
Prof. EVELYN CID

25

SOLUCIONANDO PROBLEMAS

3. Formalize a soluo:
Quando se elabora um esboo da soluo do problema, para em seguida ir-se

refinando essa soluo, at chegar-se a uma sequncia bsica de operaes


que resolva o problema, usou-se uma das principais tcnicas relacionadas a
construo de algoritmos, intitulada Top-Down.

Essa tcnica leva a gerao de um pseudocdigo, que chamaremos de


Portugus Estruturado.
O Portugus Estruturado, na opinio da maioria dos autores de livros de
anlise, programao ou algoritmos muito mais eficaz que fluxogramas (estes
so muito teis em administrao, que no nosso caso).

AULA 1 - INTRODUO
Prof. EVELYN CID

26

SOLUCIONANDO PROBLEMAS

4. Exame dos resultados:


Teste o algoritmo com diversos dados de entrada e verifique os resultados

(teste de mesa).
Se o algoritmo no gerou resultado algum, o problema est na sua sintaxe e
nos comandos utilizados. Volte e tente encontrar o erro.
Se o algoritmo gerou resultados, estes esto corretos? Analise sua
consistncia.
Se no esto corretos, alguma condio, operao ou ordem das operaes

est incorreta. Volte e tente encontrar o erro.

AULA 1 - INTRODUO
Prof. EVELYN CID

27

SOLUCIONANDO PROBLEMAS

5. Otimizao da soluo:
possvel melhorar o algoritmo?
possvel reduzir o nmero de passos ou dados?
possvel conseguir uma soluo tima?
O projeto do programa nada mais que o algoritmo gerado, que visar
otimizar o binmio tempo-espao, isto , visando obter um programa que

apresente um tempo de execuo mnimo e com o melhor aproveitamento


de espao de memria (Salvetti e Barbosa,1998).
Essa a 2. Etapa, o Projeto do Programa, que a Criao do

Algoritmo!

AULA 1 - INTRODUO
Prof. EVELYN CID

28

SOLUCIONANDO PROBLEMAS

A implementao sua codificao numa linguagem de programao.


Em nosso curso transcreveremos alguns dos algoritmos em alguma
linguagem de programao. Todavia, aqueles alunos que pretendem
tornar-se desenvolvedores, deveriam implementar todos os algoritmos em
alguma linguagem...
A implementao pode ser trivial, com a mera substituio de instrues
algortmicas em instrues em uma linguagem ou muito trabalhosa,
dependendo da linguagem escolhida.

Essa a 3. Etapa, a Implementao o Programa!


AULA 1 - INTRODUO
Prof. EVELYN CID

29

SOLUCIONANDO PROBLEMAS

A fase de testes vem crescentemente sendo valorizada. Devemos lembrar que


quem faz o programa, raramente testa seus pontos deficientes. Ora, isso
ocorre porque se o analista tivesse percebido essas deficincia, provavelmente

o programa no apresentaria esses problemas. H vrias tcnicas para testes


(caixa branca, caixa preta, entre vrias outras).
Negligenciar essa fase fatal. Numa prova, nem pensar...

Essa a 4. Etapa, os Testes do Programa!

AULA 1 - INTRODUO
Prof. EVELYN CID

30

SOLUCIONANDO PROBLEMAS

A verificao do programa visa demonstrar que o algoritmo realmente resolver


o problema proposto, qualquer que seja sua instncia.

Essa a 5. Etapa, a Verificao quando se constata que o


Programa resolve todos os casos possveis!
Nessa etapa, muitas vezes, constatamos a sabedoria do velho provrbio ingls
que diz que todo problema complexo, aparentemente tem uma soluo
simples, que usualmente est errada....

AULA 1 - INTRODUO
Prof. EVELYN CID

31

1. Etapa, a Anlise do Problema que


consiste na Compreenso e Estratgia!
2. Etapa, o Projeto do Programa, que
a Criao do Algoritmo!
3. Etapa, a Implementao
o Programa!
4. Etapa, os Testes do Programa!
5. Etapa, a Verificao quando se constata
que o Programa resolve todos os casos
possveis!
AULA 1 - INTRODUO
Prof. EVELYN CID

32

LINGUAGEM DE PROGRAMAO
Os primeiros programas de computadores eram escritos em
linguagem de mquina;

Linguagem de mquina representa um conjunto de instrues


que todo computador possui e, que seu processador capaz de
executar;
Linguagem de programao um conjunto de regras e
convenes que so utilizadas para escrever instrues em uma
linguagem prxima da linguagem natural;
O cdigo fonte escrito em qualquer linguagem de programao
deve ser traduzido para a linguagem de mquina;

AULA 1 - INTRODUO
Prof. EVELYN CID

33

LINGUAGEM DE PROGRAMAO
As linguagens de programao podem ser classificadas em alto
nvel e baixo nvel;
- Linguagens de alto nvel foram desenvolvidas com o propsito
comercial, facilitando e agilizando o processo de desenvolvimento;
- Linguagens de alto nvel: Java, C#, Dephi, VB, PHP, etc...;
- Linguagens de baixo nvel so linguagens onde as instrues
so baseadas em linguagem de mquina;
- Linguagem de baixo nvel: assembly;

AULA 1 - INTRODUO
Prof. EVELYN CID

34

LINGUAGEM DE PROGRAMAO
O processo
interpretao;

de

traduo

pode

ser

por

compilao

ou

- Compilao o cdigo fonte convertido integralmente para o


cdigo de mquina;
Linguagens compiladas: Java, C, C++, C#, VB, Dephi, etc...
- Interpretao o programa interpretador traduz cada linha do
cdigo fonte para a linguagem de mquina e o executa
imediatamente.
Linguagens interpretadas: JavaScript, ASP, Python, PHP, etc...

AULA 1 - INTRODUO
Prof. EVELYN CID

35

REVISO DOS CONCEITOS DEFINA OS TERMOS:


1. O que significa lgica de programao?
2. O que significa algoritmo?
3. Qual a importncia de um algoritmo?
4. Quais os tipos de algoritmos existentes?
5. O que um pseudocdigo? D um exemplo.
6. Como um algoritmo em pseudocdigo deve ser escrito?
7. Quais so as formas grficas para representar um algoritmo?
8. Defina linguagem de programao:
9. Na sua opinio qual a representao mais clara de um algoritmo? Justifique sua
resposta.

10. Durante a construo de algoritmos o raciocnio lgico utilizado? Justifique sua


resposta.

AULA 1 - INTRODUO
Prof. EVELYN CID

36

PRXIMA AULA ESTUDAREMOS

Tipos de Dados
Constantes
Variveis
Expresses (operadores lgicos, aritmticos e relacionais)
Tabela Verdade
Comandos de entrada e sada

AULA 1 - INTRODUO
Prof. EVELYN CID

37

REFERNCIAS BIBLIOGRFICAS DA AULA DE HOJE

Bsica

PUGA, Sandra e RISSETI, Gerson Lgica de programao e estrutura de dados, 2 Edio,


So Paulo: Person, 2008
Captulo 1 p. 1 a 10

DEITEL, Paul, DEITEL, Harvey. C Como Programar. 6 edio. So Paulo: Pearson Prentice
Hall, 2011

Complementar

FORBELLONE, Andr L.V. e EBERSPACHER, HENRI F. Construo de Algoritmos e Estrutura


de Dados, So Paulo: Pearson Pretence Hall, 2010
Captulo 1 p.3, 8, 11, 12, 13, 14

AULA 1 - INTRODUO
Prof. EVELYN CID

38

Copyright 2016 Prof. Evelyn Cid


Todos direitos reservados. Reproduo ou divulgao total ou parcial
deste documento expressamente probido sem o consentimento
formal, por escrito, do Professor (autor).