Você está na página 1de 15

31/07/2013

Tema: Introduo: noo de algoritmo, dado, varivel, comandos e programa


Professor MSc. Edilene A. Veneruchi de Campos

Objetivos deste encontro


Compreender o significado do termo Algoritmo; Aplicar o conceito de algoritmo em situaes do cotidiano; Relacionar algoritmos com programao de computadores.

O que Lgica ?
Maneira rigorosa de raciocinar.
(fonte: PLT pgina 8)

Fonte: commons.wikimedia.org/wiki/File:ThinkingMan _Rodin.jpg

31/07/2013

Do que trata a Lgica ?


Trata das formas do pensamento: Deduo Induo Hiptese Inferncia etc

Lgica e Computao
A computao trata da resoluo de problemas. A definio de uma soluo para um dado problema requer a utilizao de uma Lgica Formal, que pode ser apresentada na forma de um Algoritmo. Algoritmos so a base para programas de computador.

Como cozinhar macarro?


1. Colocar em uma panela 1 litro de gua para cada 100g de massa; 2. Quando a gua ferver, acrescentar colher de sopa de sal para cada litro de gua; 3. Acrescentar um fio de azeite; 4. Colocar a massa na gua fervente;

31/07/2013

Como cozinhar macarro?


5. Cozinhar a massa de acordo com o tempo indicado na embalagem; 6. Retirar a panela do fogo; 7. Escorrer a gua; 8. Colocar a massa em uma travessa de tamanho adequado; 9. Misturar o molho preferido e servir.

O que um Algoritmo?
Palavra no muito comum, que tem seu uso registrado desde o sculo IX; Existem muitas definies desta palavra: na aritmtica; no clculo, na gramtica, na computao, etc.

Definio de um Algoritmo
Algoritmo uma sequncia lgica e finita de passos para se alcanar uma soluo para dado problema.

31/07/2013

Propriedades para um Algoritmo


De acordo com Knuth, um algoritmo deve atender estas caractersticas: Finitude Definio Entrada Sada Eficcia

Algoritmo para determinar o MDC Um trabalho de Euclides, gerou um dos algoritmos mais conhecidos para o clculo do Mximo Divisor Comum entre dois nmeros inteiros, chamado Algoritmo Euclidiano.

Algoritmo para determinar o MDC


1. Dividir o nmero a por b e obter o resto r; 2. Substituir a por b; 3. Substituir b por r; 4. Continuar os passos 1, 2 e 3 at no ser mais possvel dividir a por b (Neste caso, o valor de a ser o mdc).

31/07/2013

Outro exemplo de execuo


Determinar o Mximo Divisor Comum entre os nmeros 630 e 153:
a 630 153 18 9 b 153 18 9 0 r 18 9 0 -- x --

mdc

Princpio do funcionamento dos sistemas computacionais

Entrada (dados)

Processamento

Sada (informaes)

31/07/2013

Algoritmo para calcular a mdia aritmtica entre duas notas


1. Obter primeira nota 2. Obter segunda nota 3. Somar as duas notas 4. Gerar mdia, dividindo a soma por 2 5. Apresentar mdia gerada.

Representao de algoritmos
Algoritmo no computacional - No pode ser executado por uma mquina. Algoritmo usando lgica formal - Cada linha identifica uma preposio - Pode ser convertido para um programa de computador

Algoritmo formal para calcular mdia


a5 b7 sa+b m s/2

31/07/2013

Variveis de Memria
Espaos cedidos a um algoritmo ou programa de computador para armazenar temporariamente valores. Cada varivel possui um identificador nico (um nome) e um tipo (um contedo).

Criao de variveis de memria


1 forma: Declare x, y numrico 2 forma: Declare var: x, y numrico 3 forma: Declare var: x, y real 4 forma: Var x, y: real a, b: inteiro

Efeitos da criao de variveis


Quando a linha de declarao de variveis executada, o algoritmo ou programa se apropria de um espaos de memria para seu uso exclusivo. O nome de cada varivel fica associado a um espao de memria. Estes espaos so liberados ao final do algoritmo ou programa.

31/07/2013

Exemplificando o uso variveis


Var a, b, s, m: real a5 b7 sa+b m s/2

O smbolo representa uma atribuio

Regras para nome de varivel


O nome deve comear sempre com uma letra (maiscula ou minscula) ou com o smbolo _ No usar espao em branco No usar smbolos aritmticos No usar acento No usar cedilha Usar apenas caracteres numricos ou alfabticos e o smbolo _

Exemplo completo de Algoritmo


Algoritmo Dobro Var numero, dobro: real numero 16 dobro numero * 2 Fim algoritmo

31/07/2013

Comandos de entrada e sada


importante desenvolver algoritmo que resolva uma classe de problemas e no apenas um nico problema. Assim, importante permitir que os dados de entrada variem, gerando, assim, diferentes informaes (sadas).

Comando de entrada
Representado pela instruo LEIA. Sempre utilizado junto com uma varivel. Exemplo: LEIA x No exemplo acima, o comando LEIA permite interao com o ambiente externo (uma pessoa, por exemplo) para que um valor seja guardado na varivel x.

Exemplo do uso do comando LEIA


Algoritmo Dobro Var numero, dobro: real LEIA numero dobro numero * 2 Fim algoritmo

31/07/2013

Comando de Sada
Representado pela instruo ESCREVA. Sempre utilizado junto a variveis e mensagens. Exemplo: ESCREVA x No exemplo acima, o comando ESCREVA permite interao com o ambiente externo, mostrando informaes geradas pelo processamento.

Exemplo do uso do comando ESCREVA


Algoritmo Dobro Var numero, dobro: real Numero 8 dobro numero * 2 ESCREVA O dobro , dobro Fim algoritmo

Exemplo do uso do comandos LEIA e ESCREVA


Algoritmo Quadrado Var x, q: real ESCREVA Digite um nmero: LEIA x qx*x ESCREVA Quadrado de , x, : , q Fim algoritmo

10

31/07/2013

Exercitando: Criar um algoritmo que some 2 nmeros inteiros quaisquer.

1. Algoritmo Soma 2. Var 3. a, b, s: inteiro 4. ESCREVA Valor de a? 5. LEIA a 6. ESCREVA Valor de b? 7. LEIA b 8. soma a + b 9. ESCREVA Soma = , s 10.Fim algoritmo

11

31/07/2013

Analisando soluo
Memria a b s Tela

Exercitando: Criar um algoritmo que determine o maior nmero dentre 2 valores informados pelo usurio.

1. Algoritmo Maior 2. Var 3. n1, n2: real 4. ESCREVA Digite o valor de 1 numero: 5. LEIA n1 6. ESCREVA Digite o valor de 2 numero: 7. LEIA n1 8. SE (n1 > n2) 9. ento ESCREVA Maior , n1 10. seno ESCREVA Maior , n2 11.Fim Algoritmo

12

31/07/2013

Analisando soluo
Memria n1 n2 Tela

Programao de Computadores
Algoritmos formais podem ser traduzidos para linguagens de programao. Assim, podem ser executados por computadores.

Fonte: http://upload.wikimedia.org/wikipedia/commons/thumb/3/39/Recomputer.png/230px-Re-computer.png

13

31/07/2013

Exemplo de programa em C
Calcular e mostrar o dobro de um nmero inteiro:

#include <stdio.h> main() { int num, dobro; printf(Digite o nmero: ); scanf(%d%*c, &num); dobro = num *2; printf(Dobro = %d, dobro); getchar(); }

Exemplo de programa em Pascal


Calcular e mostrar o dobro de um nmero inteiro: PROGRAM DOBRO; VAR num, dobro: INTEGER; BEGIN WRITELN(Digite o nmero: ); READLN(num); dobro := num *2; WRITELN(Dobro = , dobro); READLN(); END.

Exemplo de programa em Java


Calcular e mostrar o dobro de um nmero inteiro: import java.util.Scanner; public class Dobro { public static void main(String args[]) { int num, dobro; Scanner e = new Scanner(System.in); System.out.println(Digite o nmero: ); num = e.nextInt(); dobro = num * 2; System.out.println(Dobro = + dobro); }}

14

31/07/2013

Importncia do uso da Lgica


Antes de agir, analise o problema! Identifique os dados necessrios e entenda as sadas esperadas. Depois, estabelea cada passo necessrio.

Fonte: http://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Go_p roblem.jpg/320px-Go_problem.jpg

15