Anda di halaman 1dari 27

Faculdade de Cincia e Tecnologia

Algoritmos e Programao de Computadores Lgica de Programao

Prof: Wanja Mascarenhas wmascarenhas@area1.edu.br

Linguagem de Programao
O que linguagem?
Meio de comunicao Exemplos?

E Linguagem de programao?
Meio de comunicao entre usurio e computador, atravs do qual podemos desenvolver programas para informarmos ao computador o que queremos que seja feito Pensamento Humano (noestruturado) Programa Computador

Linguagem de Programao
Definies Notao para escrever programas, atravs dos quais podemos nos comunicar com o hardware e dar as ordens adequadas para a realizao de um determinado processo Conjunto de regras que providencia a maneira de dizer a um computador que operaes executar Conjunto de smbolos (vocabulrio) e regras (gramtica) que especifica como transmitir informaes entre usurios e computador Categorias Linguagem de Mquina - LM (ou Baixo Nvel) Linguagem de Baixo Nvel - LBN (ou Nvel Intermedirio) Linguagem de Alto Nvel - LAN

?
Mas, se os computadores trabalham internamente com a linguagem de mquina, como que podemos fazer com que o computador entenda os programas desenvolvidos em linguagem de baixo ou de alto nvel?

Utilizando TRADUTORES

Tradutores
Lem um programa em uma linguagem de baixo ou alto nvel (LBN ou LAN) e o traduzem para a linguagem de mquina (LM) Tipos: Compilador e Interpretador Tem como entrada o programa em LAN e produz como resultado um programa que pode ser executado. Uma instruo em LAN pode ser traduzida em um conjunto de instrues para execuo Montador (ou Assembler) Tem como entrada o programa em LBN e produz como resultado um programa que pode ser executado

Algoritmo x Programa
Algoritmo uma seqncia finita de aes, ordenadas de forma lgica, que devem ser executadas para que se possa resolver uma determinada tarefa; Quando a forma de se expressar essas aes obedecem s regras de alguma linguagem de programao, passamos a cham-lo de Programa; Uma vez concebida uma soluo algortmica de um problema, esta pode ser traduzida para qualquer linguagem de programao.

Os computadores, infelizmente s fazem aquilo que mandamos e no necessariamente o que desejamos que eles faam! Computador no tem senso prprio => deve receber instrues explcitas No deve haver ambigidade nas instrues do programa
Ex. calcule as mdias das notas neste teste e informe quantos ficaram acima da mdia da faculdade

Programas

Onde esto as notas, quantas so, qual a mdia da faculdade, os ausentes devem ser includos???

Qualidades de um Algoritmo
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

Fases da Construo de um Algoritmo


Identificao do Problema; Definir cada passo precisamente; Deve existir zero ou mais entradas tomadas de conjuntos bem definidos; Deve existir uma ou mais sadas; Deve existir uma condio de fim sempre atingida para quaisquer entradas e num tempo finito;

Teste do Algoritmo.

Algoritmos no se aprendem: - Copiando algoritmos - Estudando algoritmos

Dicas!

Algoritmos s se aprendem: - Construindo algoritmos - Testando algoritmos - Atravs de muitos exerccios - Organizando as idias antes de comear - Entendendo as entradas, os objetivos e as sadas desejadas

Formas de Representar um Algoritmo


Existem diversas formas de representao de algoritmos. Dentre as mais conhecidas:
Descrio Narrativa Fluxograma Convencional Pseudocdigo (ou Portugus Estruturado) Linguagem de Programao

Os algoritmos so expressos diretamente em linguagem natural. Muitas vezes d oportunidade a ms interpretaes, ambigidades e imprecises. Exemplos:
Algoritmo Lavar Cabelo 1 -- Molhe o cabelo 2 -- Repita duas vezes Coloque xampu no cabelo Massageie at fazer espuma Enxague

Descrio Narrativa

Algoritmo Fritar Ovo 1 -- pegar frigideira , ovo , oleo e sal 2 -- colocar oleo na frigideira 3 -- acender fogo 4 -- colocar a frigideira no fogo 5 -- esperar o oleo esquentar 6 -- colocar o ovo 7 -- retirar quando pronto

uma representao grfica de algoritmos onde formas geomtricas diferentes implicam aes (instrues, comandos) distintas.
Incio e final do fluxograma Entrada de Dados Deciso Sada de Dados Operaes de atribuio e chamada ou retorno de subalgoritmo

Fluxograma Convencional

Fluxograma Convencional - Exemplo


Incio N1, N2 Mdia = (N1+N2)/2 N

Mdia >=7 S Aprovado

Em Analise

Fim

Algoritmo para clculo da mdia a partir de 2 notas de um aluno e, se a mdia for maior que 7, mostra se o aluno est aprovado, caso contrrio, mostra que a situao do aluno est sendo analisada.

Portugus Estruturado ou Pseudocdigo


rico em detalhes e, por assemelhar-se bastante forma em que os programas so escritos. Ser a forma adotada nesta disciplina.
inicio var float N1, N2, Media; leia (N1 , N2); Media = ( N1+N2 )/2; se (Media >= 7) imprima ("Aprovado); senao imprima (Em Analise); fim

O que veremos

Estrutura do Algoritmo Comandos de entrada e sada Variveis Operadores Aritmticos Atribuio de Valores

Estrutura de um Algoritmo

ENTRADA

PROCESSAMENTO

SADA

No algoritmo: Calcule a mdia do semestre(2 unidades) de um aluno da rea-1. a) Quais so os dados de entrada? b) Qual ser o processamento para obter o resultado? c) Quais sero os dados de sada?

Comandos Entrada e Sada


Entrada de dados
Dados que o usurio dever digitar para que o processamento possa ser realizado Os dados so inseridos no programa atravs das variveis (veremos mais adiante)

Sada de dados
Dados resultantes do processamento que devero ser mostrados ao usurio

Variveis
So espaos de memria, que podem assumir diferentes valores dentro do mesmo algoritmo Embora uma varivel possa assumir diferentes valores, ela s pode armazenar um valor a cada instante A cada varivel est associado um nome (identificador); um tipo que define a natureza da informao que ela pode armazenar; e um contedo

Variveis - Identificadores
So nomes simblicos. o que d o nome a varivel; So compostos por letras e dgitos numricos, sendo que o primeiro caracter deve ser uma letra, e no devem existir espaos em branco; Identificadores vlidos: k, X, y, tamanho, tam, tam12, fim_dados; Identificadores no vlidos: 2k, fim de dados, x.data, 2@, a%

Operadores Aritmticos
Os operadores aritmticos so usados para desenvolver operaes matemticas. A seguir est a lista que usaremos:
Operador + * / Ao Soma (inteira e ponto flutuante) Subtrao ou Troca de sinal (inteira e ponto flutuante) Multiplicao (inteira e ponto flutuante) Diviso (inteira e ponto flutuante)
1 prioridade: * (multiplicao) e / (diviso) 2 prioridade: + (soma) e - (subtrao)

A prioridade segue os mesmos conceitos da matemtica. Lembrando que os parnteses alteram a prioridade.

Atribuio
A funo do comando de atribuio guardar um valor em uma varivel. O smbolo utilizado para atribuio o = (igual); Qualquer resultado de expresso pode ser atribudo a uma varivel, primeiro resolvendo a expresso e depois atribuindo o resultado varivel.
Exemplo: N1 = 3; altura = 1.65; total = 5 + 2 * 3; aluno = Ana

Operadores Relacionais
So utilizados para construir as expresses/perguntas. O resultado de uma expresso deve retornar um valor verdadeiro ou falso; Ao maior maior ou igual menor menor ou igual igual (diferente da atribuio) diferente

Operador > >= < <= == ~=

Operadores Lgicos
Operadores Lgicos retornam verdadeiro (1) ou falso (0), para fazer operaes com valores lgicos temos os seguintes operadores; Ao AND (E) OR (OU) NOT(NO)
p falso falso verdadeiro verdadeiro

Operador & | ~

Prioridade: ~, &, |
Tabela Verdade q p AND q falso falso falso falso verdadeiro p OR q falso verdadeiro verdadeiro verdadeiro

verdadeiro falso verdadeiro

Prioridade s
Prioridade Primeiro Segundo Terceiro Quarto Quinto Sexto Stimo Operador Parnteses ( ) Funes pr-definidas (raiz quadrada, potncia) Multiplicao(*), Diviso(/) Adio(+) e Subtrao(-) Operadores Relacionais (==, >,<,>=,<=,~=) Operadores Lgicos( ~, &, |) Atribuio (=)

Exerccios
Utilzando os conceitos aprendidos, elaborar um programa que permita calcular a idade de uma pessoa daqui a 12 anos.

Exerccios
Faa um um algoritmo que leia um nmero inteiro e imprima o seu antecedente (inteiro anterior) e o seu sucessor (inteiro posterior). Um operador ganha R$ 28,00 por hora trabalhada. Informe qual foi o salrio recebido aps trabalhar 40 horas. Lembrando que ele tem um desconto de 5% de impostos.