Вы находитесь на странице: 1из 50

Algoritmos

Prof. Msc. Carlos Queiroz


Semestre 2014.2

Agenda
Apresentao
Ementa da Disciplina
Avaliao
Bibliografia
Introduo

Apresentao
Carlos Alberto
Graduao
Especializao
Mestrado
Histrico Profissional

Apresentao (Alunos)
Algoritmo para apresentao:
Faa:
Diga o seu Nome;
Responda: J possui algum conhecimento relacionado a
disciplina?
Indique um colega para se apresentar;
Enquanto (tiverem alunos que no se apresentaram )

Ementa
Ementa disponvel no Plano de Ensino

Avaliao
3 Provas
Avaliao Parcial 1 (AP1) -> Peso 30% da nota final
Avaliao Parcial 2 (AP2) -> Peso 30% da nota final
Avaliao Parcial 3 (AP3) -> Peso 40% da nota final

Mdia deve ser superior a 5,0. Caso contrrio, nos


veremos no prximo semestre =)
Obs.: Terceira prova elaborada pela prpria faculdade
(25 questes)

Bibliografia Bsica
FORBELLONE, Andr Luiz Villar. Lgica de Programao:
a Construo de Algoritmos e Estrutura de Dados. So
Paulo: Pearson, 2005.
GUIMARAES, Angelo de Moura; LAGES, N. A. C.
Algoritmos e Estrutura de Dados. Rio de Janeiro : LTC,
2008.
SEBESTA, Robert W. Conceitos de Linguagens de
Programao. So Paulo: Bookman, 2003.

Aula 1 - Introduo
Agenda
Conceito de Algoritmo
Conceito de programa de computador

Conceito de Algoritmo

10

Conceito de Algoritmo (cont.)


Algoritmos esto em toda parte
Receita de bolo
Descrio de um caminho
Instrues medicamentosas
Manual de instrues
Atividades cotidianas
Etc...

11

Conceito de Algoritmo (cont.)

12

Conceito de Algoritmo (cont.)

13

Conceito de Algoritmo (cont.)

Exemplo

Trocar uma lampada...

Pegar Lmpada nova

Pegar Escada

Posicionar escada embaixo da lmpada queimada

Subir na escada com a lmpada nova na mo

Retirar lmpada queimada

Colocar lmpada nova

Descer da escada

Testar no interruptor

Guardar a escada

Descartar Lmpada velha

14

Conceito de Algoritmo (cont.)


Exemplo
Calcular mdia
Pegar nota da primeira prova
Multiplicar primeira nota por 0,3 e guarde o resultado
Pegar nota da segunda prova
Multiplicar segunda nota por 0,3 e guarde o resultado
Pegar nota da terceira prova
Multiplicar terceira nota por 0,4 e guarde o resultado
Some todos os resultados que foram guardados
Mostre ao seu professor

15

Conceito de Algoritmo (cont.)


Computadores podem ajudar na realizao de tarefas mais complexas
Problemas envolvendo um grande volume de dados
Problemas que exijam um grande nmero de operaes
Problemas que exijam preciso

Caractersticas de um bom Algoritmo


Finitude
Exatido
Entradas e Sadas determinadas
Efetividade

16

Conceito de Algoritmo (cont.)


Representao
Linguagem Natural
Descrio textual da tarefa em linguagem natural
Forma narrativa
Ex.: Para chegar na minha casa basta que voc siga
pela rua A por 2 quilmetros. Quando voc passar em
frente a padaria vire esquerda e siga por mais 100
metros. Minha casa ficar logo sua direita.

17

Conceito de Algoritmo (cont.)


Representao
Fluxograma
Representao Grfica
estruturada e
simplificada
Ilustra o fluxo de
operaes
Sintaxe e Semntica
bem definidos
Fcil para traduzir para
uma linguagem de
programao

18

Conceito de Algoritmo (cont.)


Fluxograma

19

Conceito de Algoritmo (cont.)


A sintaxe de um fluxograma corresponde ao emprego
correto de seus Elementos
Cada instruo possui um smbolo grfico especfico
Cada smbolo admite um conjunto de expresses prprias
Sub-rotinas pr-definidas podem ser utilizadas nas
expresses

A semntica de um fluxograma corresponde ao


significado dos smbolos utilizados
Cada instruo deve ser descrita de forma clara, sem
ambiguidade

20

Fluxograma/Resumo

Conceito de Algoritmo (cont.)


Representao
Pseudo-cdigo

22

Algoritmo Aprofundando no
conceito
Um algoritmo uma sequncia de instrues finita e
ordenada de forma lgica para a resoluo de uma
determinada tarefa ou problema.
No obrigatoriamente nico
H vrios caminhos para o mesmo destino
Deve seguir uma sequencia lgica
Nem toda combinao de uma sequencia de passos vai
levar ao mesmo objetivo completo

23

Conceito de Programa
Programa de Computador
Algoritmo escrito em uma linguagem de programao

24

0-25

Tipos de Software
Software de Aplicao
Programas para realizao de tarefas particulares utilizao da
mquina
Ex.: Sistemas de Banco de dados, Sistemas de Planilhas
eletrnicas, sistemas de contabilidade, Software para
desenvolvimento de programas, etc

Software de Sistema
Tratam da realizao de tarefas comuns aos sistemas
computacionais em geral
Fornecem a infraestrutura necessria para execuo das
aplicaes

Figura 3.3 Classificao de


software

0-26

Software

Aplicao

Sistema

Sistema

Sistema
Operacional

Linguagem de Mquina
Um processador executa apenas instrues escritas em
linguagem de mquina (dgitos binrios)
Cada instruo composta de duas partes
Comando
1000

operando
11101001

A Linguagem de mquina a mais rpida

27

0-28

O Computador

0-29

Viso geral sobre arquitetura de


Computadores
Unidade Central de Processamento (CPU)
o conjunto de circuitos de computador que controla a
manipulao de dados
Em razo da sua evoluo, hoje so conhecidos tambm por
microprocessadores
Consiste em trs partes
Unidade Lgica e Aritmtica
Unidade de Controle
Unidade de Registro

0-30

Viso geral sobre arquitetura de


Computadores
Unidade Lgica e Aritmtica
Contm circuitos que realizam operaes sobre os dados
Unidade de Controle
Contm circuitos para a coordenao das atividades da
mquina
Unidade de Registro
Contm clulas de armazenamento de dados
Essas clulas so chamadas Registradores e servem
como locais temporrios de armazenamento de dados que
so manipulados pela CPU
Registradores
Propsito geral
Propsito especfico

Memria
Dispositivo capaz de armazenar dados.
Possui uma grande quantidade de posies livres para
armazenamento temporrio de dados.

0-32

Viso geral sobre arquitetura de


Computadores
Barramento
Ligao entre a CPU de uma mquina e sua memria
principal, para fins de transferncia de padres de bits,
atravs de um conjunto de fios

Conceito de Programa Armazenado


Nos primeiros computadores, os passos que cada dispositivo
executava eram definidos dentro das suas unidades de
controle, como uma parte da mquina
O objetivo que a CPU pudesse ser reconfigurada
Ex.: Cartes perfurados

A ideia que um programa assim como seus dados, pudesse


ser codificado e armazenado na memria principal
A CPU pode extrair as instrues e execut-las
O programa a ser executado pode ser alterado mais facilmente
No mais necessrio alteraes na CPU para modificaes no
seu programa

0-33

0-34

Linguagem de Mquina
A partir do conceito de programa armazenado, as CPUs so
projetadas para reconhecer instrues codificadas como
padres de bits

Forma geral de operao em dados

1. Unidade de controle
transfere dados da memria
principal para os
registradores
2. Unidade de controle
informa a unidade lgica e
aritmtica (ULA) sobre quais
registradores mantm os
dados
3. Ativa os circuitos
apropriados da ULA e
informa quais os
registradores que devem
receber o resultado

0-35

0-36

Comunicao com outros dispositivos


Controlador
Um aparato intermedirio que cuida da
comunicao entre a CPU e um dispositivo
Especializados para cada tipo de dispositivo
Traduz mensagens e dados em ambas as
direes entre formatos compatveis
Atualmente existem controladores de propsito
geral (Ex.: USB)

0-37

Comunicao com outros dispositivos


Porta
Ponto no qual um dispositivo se conecta ao
computador

E/S Mapeada em memria


A CPU se comunica com os perifricos como se
eles fossem clulas de memria

0-38

Figura 2.13 Controladores anexados ao


barramento

O QUE SER ARMAZENADO NA


MEMRIA?
n

Tipos de Informaes:
n

Podemos classificar os tipos de informaes a serem


processadas, a grosso modo, em dados e instrues.
Dados: So as informaes a serem processadas por um
computador. Consideremos 3 tipos de dados primitivos:
numricos (inteiros e reais), caracteres e lgicos.

Tipos primitivos de dados


n

Inteiro: toda e qualquer informao numrica que pertena


ao conjunto dos nmeros inteiros (negativa, nula ou
positiva).
n

Exemplos: 10, 5, -5, -10

Tipos primitivos de dados


n

Real: toda e qualquer informao numrica que pertena ao


conjunto dos nmeros reais (negativa, nula ou positiva,
inteiro ou fracionrio).
n

Exemplos:10.555, 15.5, -14.67, -1000.000

Tipos primitivos de dados


n

Caractere: So caracterizadas como tipos caracteres, as


seqncias contendo letras, nmeros e smbolos especiais.
Uma seqncia de caracteres deve ser indicada entre aspas
().
Este tipo de dado tambm conhecido como alfanumrico,
string, literal ou texto.
n

Exemplos: "Esta uma cadeia de caracteres", "B",


"1552366", "Vozo"

Tipos primitivos de dados


n

Lgico: So caracterizados como tipos lgicos, os dados com


valores verdadeiro e falso, sendo que este tipo de dado
poder representar apenas um dos dois valores.

Tipos primitivos de dados

Constantes
n

Definio: um valor fixo que pode ou no ser especificado.


n

Exemplo: velocidade da luz, pi

So valores que no sofrem alteraes ao longo da execuo


do algoritmo;
n

Exemplo: constante pi = 3.14159

VARIVEIS
O que uma varivel?

n
n

Varivel uma estrutura que adiciona apelidos s posies de


memria.

Para que uma linguagem de programao saiba o que ser


guardado em cada posio da memria, necessrio definir
um tipo para esse dado.

Basicamente existem 4 tipos bsicos de variveis:

Valores inteiros (1, -2, 4, 120, 1024, ...)


Valores reais (1.1, 0.5, 120.50, -1024.0, ...)

Valores lgicos (verdadeiro, falso)

Valores caracteres (arroz, 0.5, verdadeiro, 5)

VARIVEIS
n

A todo momento durante a execuo de qualquer tipo de


programa os computadores esto manipulando informaes
representadas pelos diferentes tipos de dados descritos
anteriormente.
Para que no se esquea das informaes, o computador
precisa guard-las em sua memria. E para que essa
informao possa ser usada depois, ela precisa de uma
identificao (etiqueta).

VARIVEIS
n

O nome de uma varivel faz referncia ao endereo de


memria onde o valor dessa varivel se encontra.
O nome de uma varivel utilizado para sua identificao e
posterior uso dentro de um programa.

VARIVEIS
n

O nome da varivel tem que ser nico

No se deve utilizar espaos entre as letras

No utilizar smbolo especial exceto sublinha (underline ou


underscore) (_)
O primeiro caractere de uma varivel sempre deve ser uma
letra
Nenhum nome de varivel pode ser uma palavra reservada a
uma instruo da linguagem usada

ENTRADA E SADA DE DADOS


Comandos para receber os dados a serem processados
pelos algoritmos e para exibir o resultado processado.

Comando de entrada (leia) permite atribuir o dado para


uma varivel;
Comando de sada (escreva) permite exibir o contedo de
varivel;

Вам также может понравиться