You are on page 1of 8

Algoritmos

Fundamentos Bsicos

Sistemas de Computao

Entrada

Processamento

Sada

Memria

Entrada
I

Sada
I I

responsvel pelo fornecimento dos dados ao computador. Os perifricos mais usados so: teclado e mouse.

responsvel pelo fornecimento dos dados do computador para o usurio. Os perifricos mais utilizados so: o monitor de vdeo e a impressora.

Memria
I

Processamento/Processador
I

Responsvel pelo armazenamento dos dados e programas.

Responsvel pela execuo dos programas.

Unidade Central de Processamento


Entrada

Exemplo
I

Sada

ULAUnidade Lgica e Aritmtica

Reg. D Reg. C Reg. B Acumulador Registradores

Somar o contedo do endereo 2000 com o endereo 2001 e guardar o Endereo em 2002: resultado Dado

2000 2001 2002 2003 2004


Memria

5 3 8

5 5 8 3

Reg. D Reg. Reg. C Reg. Reg. B Reg. Acumulador Registradores

Clock
Memria

A UCP copia o contedo do endereo 2000 para o acumulador. A UCP copia o contedo do endereo 2001 para o acumulador.O contedo anterior transferido para o registrador B. A ULA realiza a operao. O resultado fica no acumulador e B limpo. A UCP copia o contedo do acumulador para o endereo 2002.

Linguagens de Programao
I

Linguagens de Alto Nvel


I

I I

Programa: seqncia de ordens que sero executadas pela UCP. A linguagem que a UCP trabalha chama-se Linguagem de Mquina e composta de 0 e 1 (bits). Linguagem muito difcil de se trabalhar. Exemplo de um comando em Linguagem de Mquina: 10010010

As linguagens faladas pela UCP so chamadas de Ling. de Baixo Nvel. As linguagens que se aproximam da linguagem humana so chamadas de Ling. de Alto Nvel. Uma Ling. da Alto Nvel deve ser traduzida para uma Ling. de Baixo Nvel para poder ser executada pela UCP.

Interpretadores
I

Compiladores
I

um processo de traduo onde cada comando em Ling. de Alto Nvel traduzido para LM e depois executado pela UCP. Se um comando for executado diversas vezes, ele ser traduzido e executado em LM vrias vezes tambm. Isto deixa o processo de interpreta-o lento.

Todo o programa primeiro traduzido par LM e depois executado pela UCP. Aps a traduo gerado um novo programa, totalmente em LM. Este programa de execuo muito mais rpida que o interpretado.

Exemplo
Interpretao (BASIC e LOGO)
Fluxo de execuo

Comando Comando Comando Comando

LM LM LM LM

Algoritmos

Compilao
(COBOL, FORTRAN, PASCAL, DELPHI, C)

Programa Ling. de Alto Nvel

Fluxo de execuo

LM

Definio
I I

Receitas de bolo
I

O desenvolvimento de um programa muito complexo. ALGORITMO: a descrio dos passos necessrios para se resolver um problema.

Um algoritmo semelhante a uma receita de bolo: so fornecidos os ingredientes e o modo de fazer. Seguindo a receita obteremos o bolo.

Problema

Algoritmo

Programa

Algoritmos & Receitas


I

Exemplo:
I

I I I

Uma receita apresenta certa semelhana com algoritmos: ENTRADA: So os ingredientes. PROCESSAMENTO: Modo de preparo SADA: O alimento pronto.

Identifique a entrada, processamento e sada na receita abaixo:

Sanduche Solduba
Ingredientes: 2 fatias de po de forma integral 1 tomate queijo branco peito de peru organo azeite sal Modo de preparo: Corte o tomate e o queijo branco em fatias finas e coloque sobre o po. Acrescente o peito de peru, uma pitada de organo, azeite e sal a gosto. Feche com a outra fatia. Voc pode levar o sanduche ao forno se preferir.

Imprecises das Receitas


I

Linguagens para algoritmos


Para formalizar a construo de algoritmos, so utilizadas as seguintes linguagens: I Formato livre I Fluxogramas I Pseudocdigos

A linguagem utilizada nas receitas muito vaga para ser utilizada no desenvolvimento de programas. Por exemplo, na receita anterior no foi especificada a quantidade de queijo nem se o peito de peru deveria ser fatiado ou no!

Formato livre
Consiste em se escrever os passos necessrios numerados item a item. Exemplo: 1- Introduzir o primeiro valor 2- Introduzir o segundo valor 3 - Somar os dois valores 4 - Mostrar o resultado
I
(O que faz o algoritmo acima?)

Desvantagem do formato livre


I

O formato livre pode apresentar imprecises em algoritmos mais complexos. O formato livre s vantajoso em algoritmos muito simples.

Fluxogramas
I

Fluxogramas
I

uma representao grfica do formato livre. Exemplo: 1 Incio


Introduzir 1 valor

Calcular a soma dos dois valores

Um fluxograma pode se tornar muito difcil de se ler quando o algoritmo se torna complexo, alm de gastar muito papel para ser desenhado!

Introduzir 2 valor

Mostrar o resultado

Fim

Pseudocdigo
I

Programao estruturada
I I

Os algoritmos atuais so muito complexos. Para facilitar o desenvolvimento, o algoritmo dividido em blocos, que realizam determinadas tarefas que quando juntos formam a soluo completa. Esta forma de desenvolvimento se chama Programao Estruturada. Estruturada

A programao estruturada produz algoritmos complexos mas fceis de se ler (e entender!). O formato livre e o fluxograma no se adaptam programao estruturada. Sua forma de programao chama-se PROGRAMAO LINEAR. LINEAR Para se escrever algoritmos estruturados so usados os PSEUDOCDIGOS. PSEUDOCDIGOS

Algoritmos estruturados
No desenvolvimento dos algoritmos estruturados devem ser observados 3 items bsicos: 1-FUNCIONABILIDADE: o algoritmo deve funcionar! 2-SIMPLICIDADE: o algoritmo no deve realizar tarefas inteis. Ele deve ser feito da forma mais simples possvel. 3-CLAREZA: o algoritmo deve ser claro, isto , fcil de se ler e entender. I Sem estas caractersticas, o algoritmo estar ERRADO! ERRADO
I

Pseudocdigo - Portugus Estruturado


I

O Pseudocdigo utilizado no desenvolvimento de algoritmos estruturados chamado de Portugus Estruturado. Estruturado Nas prximas telas veremos como so escritas as estruturas usando o Portugus Estruturado.

Estrutura de um algoritmo
I

Contantes
I

Um algoritmo escrito em pseudocdigo possui a seguinte estrutura:

Programa Nome var Declarao de variveis incio Comandos fim Obs.: No utilize espaos no nome do algoritmo!

Uma constante um determinado valor fixo que no se modifica ao longo do tempo, durante a execuo de um programa. Pode ser um nmero (como conhecemos na matemtica), um valor lgico, um caracter ou uma seqncia destes com algum significado para o problema em estudo. Conforme o seu tipo, a constante classificada como sendo numrica, lgica ou literal.

Contante Numrica
I

A representao de uma constante numrica nos algoritmos feita no sistema decimal, podendo ser um nmero com ou sem parte fracionria. Exemplos: 28 3.14 A constante numrica pode ser positiva ou negativa, de acordo com o sinal que precede os algarismos formadores do nmero. Caso no exista um sinal, a constante considerada positiva.

Uma constante desse tipo pode ser qualquer seqncia de caracteres (letras, dgitos ou smbolos especiais) que forme um literal com algum significado para o problema em estudo. Toda constante literal que seja utiliza no algoritmo deve ser colocada entre apstrofo para que no seja confundida com outros itens importantes em um programa (varivel, instruo, palavra reservada) no qual estudaremos mais adiante.

Contante Literal

I I

Exemplos: Ana Maria O Grmio o melhor time do mundo 12345 x+y=9! 14/08/1999

Note que um numeral entre apostrofo considerado como uma seqncia de dgitos (literal), e no como uma constante numrica. Tambm no se deve confundir uma constante lgica (por exemplo, falso) como uma seqncia de caracteres (literal), que aparea entre apstrofos (por exemplo, falso).

Contante Literal

Pseudocdigo: Variveis
I I I I

As variveis so utilizadas para guardar valores na memria. So utilizadas no lugar do endereo de memria. So identificadas por um nome ou identificadores. Os nomes devem obedecer s seguintes regras: 1-S podem comear por LETRA. 2-S podem ter LETRAS, NMEROS e o caractere _ (sublinhado). Exemplos: A, B, A2, Contador, X_2, ABC2, Nome_Cliente (vlidos) 2A, ABC$%, A B C, Nome Cliente 2, Incio (invlidos) Os comandos do pseudocdigo so palavras reservadas e no podem ser usados como nome de variveis. Por isso, as palavras reservadas devem ser sublinhadas!

Declarao de variveis
I

Exemplos:
var X : real i,j : inteiro Nome_cliente : caracter Valor1, Valor2 : real Letra : caractere

Equivale lista de ingredientes da receita. Serve para informar quais os tipos de variveis utilizadas no algoritmo.

var NomeDaVarivel : tipo


I

Os tipos de variveis so os seguintes:


Inteiro: Nmeros sem parte decimal. Real: Nmeros com parte decimal. Booleano: Valores VERDADEIRO e FALSO. Caractere: Conjunto de caracteres. Armazena um texto.

Atribuio de valores
Indicam o valor que uma varivel deve receber em um algoritmo. varivel valor I Exemplos: x2 xy xy + 2
I

Operadores Aritmticos
I

So utilizados os seguintes operadores:


Operador + % / * + Operao Manuteno de Sinal (nmeros positivos) Inverso de Sinal (nmeros negativos) Resto da diviso Diviso Multiplicao Adio Subtrao Resultado

inteiro Inteiro ou real Inteiro ou real Inteiro ou real Inteiro ou real

Exemplos:
x y z r a 2 5 5 + * / % b x 2 2 (quanto vale r?)

Entrada e Sada
Entrada: indica que algum dado deve Entrada ser fornecido ao algoritmo (programa) pelo USURIO. I Sada: indica que algum dado deve ser Sada fornecido pelo algoritmo (programa) ao USURIO.
I

Pseudocdigo: Entrada
Leia Varivel
I

Pseudocdigo: Sada
Escreva Varivel Escreva Mensagem
I

O valor digitado pelo usurio ser armazenado na Varivel. Exemplo: Leia X O valor digitado ser armazenado na varivel X.

No primeiro caso, o valor da Varivel ser exibido ao usurio; no segundo, ser mostrada a mensagem entre aspas (). Ex.: Escreva X Escreva Bom dia!

Desenvolva um programa que efetue a leitura de dois valores numricos inteiros. Faa a operao de adio entre os dois valores e apresente o resultado obtido.
I

Problema/Exemplo

Estas perguntas so fundamentais. No podemos escrever um algoritmo que resolva todos os problemas do mundo. Isso impossvel. Lembra-se do conceito? Um algoritmo uma seqncia de instrues executadas pelo computador para se resolver um problema do mundo real.

Problema/Exemplo

Antes de comearmos a escrever um algoritmo que resolva este problema ou um programa em uma linguagem de programao, devemos inicialmente responder algumas perguntas:

I I

Este problema tem uma soluo geral? Voc programador conhece esta soluo?

Montar uma estratgia passo-a-passo da soluo do problema. No caso do nosso exemplo, devemos recorrer matemtica.
I

Problema/Exemplo

Elaborar um algoritmo que represente a soluo genrica do problema:


Programa soma Var a, b, x : inteiro incio leia a leia b x a+b escreva x fim

Problema/Exemplo

Estratgia
Ler um valor inteiro para a varivel A; Ler outro valor inteiro para a varivel B; Efetuar a adio dos valores contidos nas variveis A e B e implicar o resultado obtido em X; Apresentar o valor da varivel X aps a operao de adio dos dois valores fornecidos.

You might also like