Sie sind auf Seite 1von 86

Algoritmos e Linguagem de Programao

Parte 1 - Introduo

Cozinha x Computador
Receita Culinria Ingredientes so definidos os dados a serem usados e as quantidades que devem estar preparadas e separadas para a elaborao da receita Modo de preparo so descritos o programa de aes e a sequncia de atividades

Bloco de ingredientes + Bloco do modo de preparo

Estabelecem o roteiro de trabalho a ser seguido (o programa de atividades)

Se uma das etapas definidas em toda a receita deixar de ser seguida,terse- no final um resultado diferente do preestabelecido na receita

Cozinha x Computador
Cozinheiro pessoa que,se seguir os passos da receita, consegue preparar a refeio indicada sem grandes dificuldades

Mestre-cuca cria e inventa receitas

Usurio prova a refeio que foi preparada pelo cozinheiro, que no necessariamente um mestre-cuca,mas algum que, ao longo de um determinado tempo,pode se tornar um

Cozinha x Computador
Na atividade de programao de computadores h etapas semelhantes s de uma cozinha
Programador de computador Mestre-cuca prepara o programa a ser utilizado por uma pessoa denominada usurio Cozinheiro montam programas a partir de algoritmos j escritos Usurio quer consumir,usar um programa como algum que entra em um restaurante e deseja comer um alimento Ele no est preocupado com a maneira como o alimento foi preparado (ou como um programa de computador foi escrito), simplesmente quer us-lo

Conceito de Problema

O que um problema?

Conceito de Problema

Problema (Dicionrio Michaelis): Substantivo Masculino. Questo matemtica proposta para ser resolvida. Questo difcil, delicada, suscetvel de diversas solues. Qualquer coisa de difcil explicao; mistrio, enigma. Dvida, questo.
8

Exemplos de Problema

Problemas fazem parte do nosso cotidiano. Exemplo de problemas cotidianos: Trocar a resistncia de um chuveiro. Definir onde Almoar. Sempre que nos deparamos com um problema buscamos um procedimento para solucionar o mesmo.

Exemplo de Soluo

Por exemplo, para trocar a resistncia de um chuveiro devemos:


Adquirir uma resistncia nova; Localizar o chuveiro a ser manipulado; Abrir o chuveiro; Retirar a resistncia defeituosa; Colocar a resistncia nova; Fechar o chuveiro; Descartar a resistncia defeituosa.

Definir onde Almoar.


...
10

Algoritmos e Ling.de Programao Introduo

Conceito de Lgica

O que orientou a procedimentos para vislumbradas?


A lgica.

obteno dos as solues


.

O que lgica? A lgica o ramo da Filosofia e da Matemtica que estuda os mtodos e princpios que permitem fazer distino entre raciocnios vlidos e no vlidos, determinando o processo que leva ao conhecimento verdadeiro.
11

Conceito de Lgica

O uso da lgica primordial na soluo de problemas. Com ela possvel alcanar objetivos com eficincia e eficcia.
.

Ningum ensina outra pessoa a pensar, mas a desenvolver e aperfeioar esta tcnica, com persistncia e constncia.

12

Lgica
A Lgica estuda os processos vlidos e gerais pelos quais atingimos a verdade [...] a cincia das leis do pensamento.
Palavra criada pelo filsofo grego Aristteles (sc. IV a.C.) para estudar o pensamento humano e distinguir interferncias e argumentos certos e errados a cincia dos argumentos, ou seja, ela trata das concluses a que chegamos a partir das evidncias que as sustentam
3

Lgica: sistema lgico


Sistema lgico um conjunto de axiomas e regras de inferncia que visam formalizar o raciocnio vlido, dedutivo ou indutivo

Axioma: hiptese, sentena ou proposio no provada mas considerada como bvia ou de consenso inicial para formulao de uma teoria Inferncia: o processo pelo qual se chega a uma proposio, com base em axiomas
4

Lgica: Deduo
Deduo caracteriza-se por apresentar concluses que devem ser verdadeiras caso todas as premissas sejam verdadeiras. Exemplo
Todo ser humano mortal. Pedro um ser humano. Portanto, Pedro mortal.
Premissas
Concluso

O pensamento dedutivo parte do geral para o particular.

Lgica: Induo
Induo: o pensamento indutivo consiste em partir de premissas particulares, na busca de uma lei geral. Exemplo
O ferro conduz eletricidade. O ferro um metal. O ouro conduz eletricidade.
O pensamento indutivo parte do particular para o geral.

O ouro um metal. O cobre conduz eletricidade. O cobre um metal. Logo: os metais conduzem eletricidade.
Algoritmos e Ling.de Programao Introduo

Algoritmos e Ling.de Programao Introduo

Algoritmo
Sequncia ordenada de passos (instrues) necessrios para a resoluo de um problema ou processo. Procedimento passo a passo para resoluo de um problema

Exemplos de possveis problemas do mundo real solucionveis com algoritmos:

Resolver uma operao matemtica seguindo passos at chegar ao resultado final Assar uma pipoca no forno microondas Tomar medicamentos seguindo orientaes mdicas Cozinhar seguindo receitas culinrias
Algoritmos e Ling.de Programao Introduo

Algoritmo (exemplo)
Um algoritmo para preparar um Bolo de Chocolate 1- Aquea o forno a 180o C; 2 - Unte uma forma redonda; 3 - Numa taa; a) Bata75g de manteiga250g de aucarat ficar cremoso; b) Junte4ovos, um a um100g de chocolate derretido; c) Adicione aos poucos 250g de farinha peneirada; 4 -Deite a massa na forma; 5 - Leve ao forno durante 40 minutos; 6 -Espere o Bolo assar; 7 - Retire o bolo do forno.
Introduo

Dados e Informaes
Dados: so os fatos em sua ordem primria. Informao: parte utilizvel dos dados, que pode ser armazenada, transmitida ou permitir a deduo de novas informaes.
Produto final (acabado, lapidado) Ex: oramento, resultado acadmico, folha de pagamento
DADO

Matria prima (bruta) Ex: preo de venda, nota, horas trabalhadas

INFORMAO

CONHECIMENTO

Algoritmos e Ling.de Programao Introduo

10

Processamento de dados
Qualquer trabalho de manipulao de dados que tenha como finalidade obter resultados previamente estabelecidos de modo a resolver determinado problema Tem 3 partes principais: ENTRADA, PROCESSAMENTO e SADA
Envolve TRANSMISSO, ARMAZENAMENTO, RECUPERAO, COMPARAO, COMBINAO de informaes

ENTRADA

PROCESSAMENTO

SADA

Algoritmos e Ling.de Programao Introduo

11

Dados de entrada e sada


Ao tentar resolver um problema, devemos identificar alguns dados que auxiliaro na sua resoluo.
Dados de Entrada: do suporte soluo do problema. Ponto de partida. Dados de Sada: resultados esperados aps soluo.

Atravs de um algoritmo os dados de entrada podem ser processados e teremos a soluo do problema, que gerar uma sada de dados
Introduo

12

Instruo e lgica de programao


Instruo: Informao que indica ao computador uma ao elementar a executar Lgica de programao diz respeito deduo de uma sequncia de instrues tal que, fornecidos os dados de entrada, alcanaremos como sada a soluo do problema inicialmente concebido, por meio da execuo das instrues
Introduo

13

(Um pouco mais sobre algoritmos: Conceitos, caractersticas, importncia e passos para criao)

Algoritmos e Ling.de Programao Introduo

14

Conceitos
Algoritmo uma seqncia de passos que visa atingir um objetivo bem definido (FORBELLONE, 1999) Algoritmo uma seqncia de passos que deve ser seguida para a realizao de uma tarefa (ASCENCIO, 1999) Algoritmos so regras formais para a obteno de um resultado ou da soluo de um problema, englobando frmulas de expresses aritmticas (MANZANO, 1997)
Algoritmos e Ling.de Programao Introduo

15

Conceitos
Um algoritmo uma lista de instrues que, quando executadas, transformam dados de entrada at a sada. As instrues so um conjunto finito de etapas que podem ser executadas, numa ordem precisa, por um mecanismo determinista. Quando estas etapas so efetivamente executadas , a execuo deve terminar aps um tempo finito.

(HOLLOWAY, 2006)

Algoritmos e Ling.de Programao Introduo

16

Caractersticas de um algoritmo
Ter fim; No dar margem a dupla interpretao; Capacidade de receber dados do mundo exterior; Poder gerar informaes de sada para o mundo externo ao ambiente do algoritmo; Ser efetivo;
Algoritmos e Ling.de Programao Introduo

17

Importncia dos algoritmos


A noo de algoritmo bsica para toda a programao de computadores.
[KNUTH - Professor da Universidade de Stanford, autor da coleo The art of computer programming

[WIRTH - Professor da Universidade de Zurique, autor de diversos livros na rea e responsvel pela criao de linguagens de programao como ALGOL, PASCAL e MODULA-2]

O conceito central da programao e da cincia da computao o conceito de algoritmo.

Algoritmos e Ling.de Programao Introduo

18

Passos para escrever um algoritmo


Segundo ASCENCIO e CAMPOS (2002), os passos para a construo de algoritmos so os seguintes:
Ler atentamente o enunciado, destacando os pontos mais importantes; Definir os dados de entrada; Definir o processamento; Definir os dados de sada; Construir o algoritmo uma das tcnicas descritas a seguir; Testar o algoritmo realizando simulaes.

Algoritmos e Ling.de Programao Introduo

19

Algoritmos
Os computadores ou sistemas computacionais so as ferramentas que vo nos permitir automatizar grande parte das tarefas do nosso dia-a-dia, seja no contexto profissional ou pessoal. No existe mgica alguma por trs deste processo de automatizao, mas necessrio que o usurio seja capaz de convencer o computador a executar estas tarefas de forma automtica.

Isto feito atravs dos programas computacionais, construdos a partir do uso de linguagens de programao, cujo objetivo oferecer ao usurio (ou programador) um meio de comunicao com a mquina.

Algoritmos
A construo de um programa computacional motivada geralmente a partir de uma necessidade de soluo de um problema particular:

gerao automtica de documentos, controle de um equipamento eletrodomstico, transmisso de informaes em longas distncias, agilizao de clculos cientficos,e outras motivaes mais.

A soluo dos nossos problemas atravs de um sistema computacional s obtida no momento em que definido um conjunto coerente de instrues de um programa que permita estabelecer que aes devero ser executadas e em que ordem.
A descrio formal do processo de obteno de uma soluo computacional definida como sendo um algoritmo.

Algoritmos
Procedimento passo a passo para resolver um problema Pessoas tem inteligncia e habilidade racional => fazem perguntas para se esclarecer. Computador no tem senso prprio => deve receber instrues explcitas (algoritmos)

Os Computadores,infelizmente s fazem aquilo que mandamos e no necessariamente o que desejamos que eles faam!

No deve haver ambigidade nas instrues do programa

Algoritmos
A tarefa de programao dos computadores no simples medida que a complexidade dos problemas foi aumentando,constatou-se que a construo de um programa deveria ser, na realidade, resultado de um trabalho de engenharia,como o so tantos outros produtos. Da mesma forma como, no caso de um edifcio ou o motor de um automvel, no se passa diretamente da idia construo, o desenvolvimento de um programa dever ser caracterizado pela execuo de uma fase (a mais exaustiva possvel) de reflexo onde o objetivo analisar o problema a resolver e encontrar uma soluo (se possvel, a melhor) que possa ser realizada por um sistema computacional. O resultado deste trabalho de reflexo pode ser,ento,registrado na forma de um algoritmo,a partir do qual o programa ser finalmente construdo.

Algoritmos
Etapas da Construo de Programas

DEFINIO (o que)

Definio do Problema Projetar a Soluo (ALGORITMO) Codificar a Soluo (Programar em Linguagem de Computador) Testar o Programa

DESENVOLVIMENTO (como)

Algoritmos
Etapas da Construo de Programas

Problema
Fase de resoluo do Problema

Passo Difcil

Soluo em Forma de Algoritmo

Fase da Implementao Soluo como um Programa de Computador

Algoritmos
Etapas da Construo de Programas
preciso separar a Fase de Resoluo do Problema da Fase de Implementao

Um algoritmo correto deve possuir 4 qualidades: 1- O algoritmo deve ter um incio 2- Cada passo do algoritmo deve ser uma instruo que possa ser realizada 3-A ordem dos passos deve ser precisamente determinada 4- O algoritmo deve ter um fim

Algoritmos
A Linguagem Natural e oTexto Estruturado

A linguagem natural a forma mais imediata de representao de algoritmos.


Um cuidado que deve ser tomado quando da adoo da linguagem natural como forma de representao de algoritmos o uso de um alfabeto de smbolos (palavras) relativamente limitado, de modo a facilitar, numa etapa posterior,a traduo deste para uma linguagem de programao. O uso da linguagem natural pode provocar alguns problemas de interpretao do funcionamento do algoritmo se este tiver um grau de complexidade relativamente elevado. O grande nmero de linhas utilizado para descrever a soluo de um problema, se apresentado de forma linear, pode representar um grande obstculo ao entendimento do problema.

Algoritmos
A Linguagem Natural e oTexto Estruturado Observemos novamente o exemplo de algoritmo que explica a uma pessoa como trocar o pneu de um carro. pegar o macaco e o estepe no porta-malas do carro se o estepe estiver cheio levantar o carro usando o macaco retirar o pneu furado colocar o estepe em seu lugar abaixar o carro guardar o macaco e o pneu furado seno aguardar socorro

Algoritmos
A Linguagem Natural e oTexto Estruturado

O exemplo apresentado ainda relativamente curto para ilustrar a dificuldade de compreenso que a apresentao neste formato pode representar.
Utilizando as facilidades de indentao (tabulao) pode-se torn-lo mais compreensvel. A forma de representao denominada de texto estruturado, largamente utilizada na descrio do comportamento de programas de computador,de um lado,pela suainformalidade e,por outro,pela sua proximidade com a forma de escrever programas em um nmero bastante grande de linguagens de programao.

Algoritmos
A Linguagem Natural e oTexto Estruturado

pegar o macaco e o estepe no porta-malas do carro se o estepe estiver cheio levantar o carro usando o macaco retirar o pneu furado colocar o estepe em seu lugar abaixar o carro guardar o macaco e o pneu furado seno aguardar socorro

Algoritmos e Ling.de Programao Introduo

20

Responda:
1- Quais

so os tipos de raciocnios lgicos e qual a dinmica dos mesmos? eliminada Qual a importncia da lgica para a criao de algoritmos e programao? 2- O que um algoritmo? D exemplos. 3- O que so dados e informaes? 4- Qual o princpio bsico do processamento de dados? questo eliminada O que uma instruo? D exemplos. 5- Quais so as caractersticas de um algoritmo? 6- Qual a importncia dos algoritmos? 7- Cite os passos bsicos para criar algoritmos.
Algoritmos e Ling.de Programao Introduo

21

Resolva:
Um homem est margem de um rio com uma raposa, uma dzia de galinhas e um saco de milho. Ele pretende atravessar o rio com a sua carga numa canoa que s comporta ele e uma das suas cargas. Ele no pode deixar a raposa com as galinhas, nem as galinhas com o milho. Qual a sequncia da passos (algoritmo) para atravessar o rio e chegar outra margem com a raposa, as galinhas e o milho?
Algoritmos e Ling.de Programao Introduo

22

Algoritmo da travessia do rio


Soluo sem detalhes:
Leva a galinha Volta Leva a raposa Volta com a galinha Deixa a galinha e Leva o milho Volta Leva o milho Volta Leva a galinha

Algoritmos e Ling.de Programao Introduo

23

Algoritmo da travessia do rio


Soluo com detalhes:
INICIO Pega a galinha e entra na canoa Atravessa o rio at o lado destino, levando a galinha Deixa a galinha no lado destino Atravessa o rio de volta ao lado origem Desce da canoa, pega a raposa que est no lado origem e entra na canoa Atravessa o rio at o lado destino, levando a raposa Desce da canoa, deixa a raposa e pega a galinha Entra na canoa e atravessa o rio de volta ao lado origem, trazendo a galinha Desce da canoa, deixa a galinha e pega o milho Entra na canoa e atravessa o rio at o lado destino, levando o milho Deixa o milho e atravessa o ria de volta ao lado origem Desce da canoa, pega a galinha que est no lado origem e entra na canoa Atravessa o rio at o lado destino, levando a galinha FIM
Introduo

24

Escreva os algoritmos:
Escreva a sequncia de passos (algoritmo) necessrios para:
Calcular a rea de um retngulo Escovar os dentes Fritar um ovo

Algoritmos e Ling.de Programao Introduo

25

(Aonde queremos chegar com os algoritmos)

Algoritmos e Ling.de Programao Introduo

26

Linguagem de mquina
O computador, nativamente, s entende uma linguagem: a linguagem (ou cdigo) de mquina, que uma linguagem que:
Tem grau de dificuldade acentuado Requer do programador um conhecimento da arquitetura interna do hardWare

Exemplo de programa em cdigo de mquina:


C000 C001 C002 C003 ... 10111111 00000000 01110100 01101000

C000:C100 C000:C110 C000:C120

BF 00 74 68 51 66 56 57-1E 06 53 66 50 E8 BC 00 8B D9 D1 E1 16 5E 8E DE-8E C6 83 C5 02 8B C5 83 ED 16 8B F5 8B FD 2B F9-8B E8 B9 0C 00 FC F3 A5

Algoritmos e Ling.de Programao Introduo

27

Linguagens de programao (LPs)


As linguagens de programao existem para tornar a programao mais prxima da nossa linguagem natural
Maior facilidade Maior produtividade
Cdigo de mquina X linguagem de alto nvel:

Algoritmos e Ling.de Programao Introduo

28

Linguagens de programao (LPs)


Exemplo de programa em uma linguagem de programao (Pascal):
(* Programa CONTADOR conta de 1 a 10 *) Var c: integer; Begin for c:=1 to 10 do writeln(c); writeln(Fim!); End.

Algoritmos e Ling.de Programao Introduo

29

Linguagens de programao (LPs)


So programas (softWares) usados para criar outros programas. Transformam um conjunto de instrues de uma linguagem acessvel em instrues da linguagem do computador (linguagem de mquina) Exemplos: Pascal
Delphi Visual Basic Java PHP
Algoritmos e Ling.de Programao Introduo

C C++ C# PHP Javascript


30

Caractersticas das LPs


Rigidez sinttica:
Idioma limitado e construes bem definidas A ordem dos termos ou uma vrgula a mais ou a menos faz diferena (a sintaxe deve ser seguida risca)

Rigidez semntica: no pode haver ambiguidades.


O computador no tem idia do que executa e nem inteligncia para analisar a ordem Voc deve ser bem claro em relao ao que quer que o computador execute
Algoritmos e Ling.de Programao Introduo

31

Caractersticas das LPs


Rigidez semntica - exemplo ilustrativo na lngua portuguesa:
A frase A velhinha ouviu o barulho da janela. pode ser interpretada de trs maneiras:
A velhinha ouviu o barulho produzido pela janela A velhinha estava junto janela e ouviu o barulho A velhinha ouviu o barulho que veio atravs da janela

Nesse caso, h pouca rigidez semntica


Algoritmos e Ling.de Programao Introduo

32

Tipos de linguagens de programao


Quanto ao nvel de abstrao (facilidade de aprendizado)
Alto nvel Mdio nvel Baixo nvel

Quanto forma de execuo


Compiladas Interpretadas
Algoritmos e Ling.de Programao Introduo

33

Nvel de abstrao das LPs


Abstrao: habilidade de concentrar nos aspectos essenciais de um contexto qualquer, ignorando caractersticas menos importantes ou acidentais
Contexto em questo: mquina Est diretamente relacionada facilidade de aprendizado e uso de uma linguagem de programao

Algoritmos e Ling.de Programao Introduo

34

Nvel de abstrao das LPs


Alto nvel: separa os detalhes da mquina. mais prxima da linguagem humana Mdio nvel: separa os detalhes da mquina, mas permite o acesso aos mesmos Baixo nvel: diretamente relacionadas com a arquitetura do hardWare
Algoritmos e Ling.de Programao Introduo

35

Nvel de abstrao das LPs


Homem / linguagem humana
Linguagens de alto nvel: ASP, C/C++, C#, Pascal/Object Pascal, Java, PHP, Python, Tcl, Basic/Visual Basic, Delphi

Linguagens de mdio nvel: C, C++ Linguagens de baixo nvel: Assembly e Linguagem de mquina

MQUINA
Algoritmos e Ling.de Programao Introduo

36

Linguagem compilada viso geral


Linguagem compilada
Converte o programa na linguagem de alto nvel (programa fonte) para a linguagem de mquina (programa executvel ou arquivo do tipo APLICATIVO) Funcionamento:
Programa fonte

Compilador

Cdigo objeto

Linkeditor

Programa executvel

bibliotecas
Algoritmos e Ling.de Programao Introduo

37

Linguagem compilada - elementos


Programa fonte: (ou cdigo fonte) instrues e smbolos de uma linguagem de programao escritos de forma lgica e ordenada, com o objetivo de comandar um computador na execuo de uma funo

Compilador: (ou tradutor) programa que traduz um programa fonte em uma linguagem para um cdigo objeto ou linguagem de mais baixo nvel Cdigo objeto: (ou cdigo intermedirio). Cdigo resultante da compilao. Ainda no executvel diretamente pelo computador.
Algoritmos e Ling.de Programao Introduo

Normalmente so arquivos com extenso definida pela LP: .C , .PAS , .JAVA , .PHP , etc

38

Linguagem compilada - elementos


Linkeditor: (ou ligador) programa que liga os objetos gerados pelo compilador, criando o arquivo executvel Bibliotecas: conjuntos de sub-programas, ou objetos previamente existentes que sero (re)utilizados na criao do programa executvel Programa executvel: arquivo final, que pode ser executado pelo computador atravs do sistema operacional
Normalmente so arquivos com a extenso .EXE ou .COM
Algoritmos e Ling.de Programao Introduo

39

Linguagem compilada - exemplos


Delphi Pascal/Object Pascal C Visual Basic Assembler, etc.

Algoritmos e Ling.de Programao Introduo

40

Linguagem interpretada viso geral


Linguagem interpretada
Executa os comandos sem converter para a linguagem de mquina (no gera programa executvel) Programa Interpretador fonte (executa) Funcionamento:
Ou:
Programa fonte Compilador Cdigo objeto Interpretador ou Mquina virtual (executa)

Algoritmos e Ling.de Programao Introduo

41

Linguagem interpretada exemplos:


Java HTML ASP PHP Javascript

Algoritmos e Ling.de Programao Introduo

42

Ambientes de desenvolvimento
So ambientes de desenvolvimento que integram diversas ferramentas para a criao de programas em uma linguagem de programao Tambm chamados de IDEs (Integrated Development Environment) Exemplo de ferramentas encontradas nos IDEs:
Editor de textos adequado para a programao Ajuda (Help) on-line Compilador, linkeditor e depurador integrados Ferramentas para desenho de janelas (formulrios)
Algoritmos e Ling.de Programao Introduo

43

Desenvolvimento de softWare
Segue um ciclo de vida
Anlise: definio do QU o programa dever fazer Projeto: definio de COMO o programa executar seu objetivo Implementao: codificao (criao de um ou mais programas em uma linguagem) Testes: testes isolados e de integrao

Algoritmos e Ling.de Programao Introduo

44

Programao de computadores
O que preciso saber para programar?
Noes de algoritmos e lgica de programao Conhecer a estrutura, comandos e smbolos da linguagem de programao escolhida Para linguagens de baixo nvel, conhecer a arquitetura do hardWare Prtica... Muita prtica

Algoritmos e Ling.de Programao Introduo

45

Atividade: Questionrio 2
Qual a linguagem nativa do computador e qual as caractersticas da mesma? O que so linguagens de programao? Cite exemplos. Quais as caractersticas das linguagens de programao? Como classificam-se as linguagens de programao quanto ao: (d exemplos de cada grupo) Explique o funcionamento dos diferentes tipos de LPs
Grau de dificuldade Modo de execuo

Algoritmos e Ling.de Programao Introduo

46

(Estruturas bsicas para criao e representao de algoritmos)

Algoritmos e Ling.de Programao Introduo

47

Estruturao de algoritmos
So formas possveis de resoluo e representao de algoritmos
Resoluo
Sequencial Condicional Repetio Linguagem natural / descrio narrativa Fluxograma Diagrama de Chapin Pseudocdigo
48

Representao

Algoritmos e Ling.de Programao Introduo

Estruturas de resoluo
Ao buscar uma soluo de um problema criando um algoritmo, sempre teremos pelo menos uma das seguintes estruturas:
Resoluo Sequencial: sequncia linear de instrues, uma aps a outra Resoluo Condicional: existncia de condies para executar algumas instrues. Resoluo com Repetio: algumas instrues precisam ser executadas vrias vezes.
Algoritmos e Ling.de Programao Introduo

49

Estruturas de representao
Linguagem natural / descrio narrativa Fluxograma Diagrama de Chapin Pseudocdigo

Algoritmos e Ling.de Programao Introduo

50

Linguagem natural
Apesar de ser possvel escrever algoritmos para pessoas usando a linguagem natural, ela no adequada para a construo de algoritmos para o computador No tem caractersticas das LPs:
No tm rigidez sinttica:
Traga caneta azul ou preta. Traga caneta (Azul ou preta)

No tem rigidez semntica:


A velhinha ouviu o barulho da janela

Linguagem natural x LPs


Ao decidir entre a linguagem natural ou as LPs, temos um impasse, pois:
A linguagem natural no adequada por no ter rigidez sinttica e semntica
Torna-se impossvel para o computador processar

A linguagem de programao no adequada por ter rigidez sinttica e semntica


Torna-se difcil para o programador iniciante

Ento, precisamos de outras alternativas...


52

Fluxograma
So representaes grficas de algoritmos:
Formas geomtricas para representar o incio, trmino e as instrues a serem executadas Setas para indicar o fluxo das aes

Alguns smbolos representam situaes especiais dos algoritmos:


Tomadas de deciso e desvios Repetio
Algoritmos e Ling.de Programao Introduo

53

Fluxograma: smbolos bsicos


Incio e trmino do algoritmo Setas indicam o fluxo da execuo Instruo (entrada, sada, armazenamento ou processamento de dados) Tomada de deciso com possvel desvio do fluxo

Algoritmos e Ling.de Programao Introduo

54

Fluxograma: exemplo
Algoritmo em forma de fluxograma, para solicitar dois nmeros e mostrar qual o maior: sim
Maior
Incio Leia num1, num2

Num1>num2?

no
num2

num1

Maior

Escreva Maior Fim


Algoritmos e Ling.de Programao Introduo

55

ALGORITMO PARATROCAR PNEU DE UM CARRO

ALGORITMO PARATROCAR PNEU DE UM CARRO

ALGORITMO PARATROCAR PNEU DE UM CARRO

ALGORITMO PARATROCAR PNEU DE UM CARRO

Fluxograma
Vantagens:
Facilidade proporcionada para compreenso do funcionamento Facilmente entendvel por pessoas visuais
No uma representao prtica: a correo implica em alterar vrios desenhos Inadequado para algoritmos complexos e longos

Desvantagens:

Inadequado para uso como ferramenta principal Recomendvel apenas para representar a idia geral de um algoritmo ou como ensaio para criao da soluo
Algoritmos e Ling.de Programao Introduo

56

Diagrama de Chapin
Criado por Ned Chapin a partir de trabalhos de Nassi-Shneidermann Apresenta uma viso hierrquica e estruturada da lgica do programa

Algoritmos e Ling.de Programao Introduo

57

Diagrama de Chapin: exemplo


Algoritmo referente ao problema do maior nmero, representado em diagrama de Chapin:

Leia num1, num2


num1>num2

maior num2 maior num1 Escreva O maior : ,maior Fim

Algoritmos e Ling.de Programao Introduo

58

Pseudocdigo
Forma para a representao de algoritmos rica em detalhes, como a definio dos tipos das variveis usadas no algoritmo. Assemelha-se forma como os programas so escritos. Para traduzir o pseudocdigo para uma linguagem de programao, basta conhecer o vocabulrio e regras sintticas da linguagem. Busca a rigidez sinttica e semntica, porm sem o detalhamento exigido nas linguagens de programao
Algoritmos e Ling.de Programao Introduo

59

Pseudocdigo estrutura bsica


Estudaremos o pseudocdigo com mais detalhes posteriormente. Por enquanto, conheceremos apenas a estrutura bsica de um pseudocdigo:
Algoritmo <nome do Algoritmo> Variveis <lista de variveis> Incio <bloco de comandos> Fim
Algoritmos e Ling.de Programao Introduo

60

Pseudocdigo - exemplo
Pseudocdigo referente ao problema do maior nmero:
Algoritmo Maior Var num1, num2, maior: inteiro: Inicio Leia(num1,num2); se (num1>num2) ento maior num1; seno num2; maior fimse; escreva(maior); Fim

Algoritmos e Ling.de Programao Introduo

61

Atividade questionrio:
Quais as estruturas bsicas de resoluo de problemas com algoritmos? Quais as formas de representao de algoritmos?

Construa um fluxograma para somar dois nmeros e mostrar o resultado

Qual a caracterstica, vantagens e desvantagens de cada uma delas? Qual a mais adequada para representao de algoritmos?

62