Algoritmos
Um algoritmo uma seqncia finita de instrues bem definidas e no ambguas. Com tempo finito e com uma quantidade de esforo finita. No representa, necessariamente, um programa de computador, e sim os passos necessrios para realizar uma tarefa.
ESTRUTURAS DE DADOS I
Prof Penha Abi Harb mpenhaufpa@gmail.com
Algoritmos
Podem repetir passos (fazer iteraes) ou necessitar de decises (tais como comparaes) at que a tarefa seja completada. Um algoritmo corretamente executado no ir resolver um problema:
se estiver implementado incorretamente ou se no for apropriado ao problema.
Algoritmos: Representao
Linguagem Natural
Os algoritmos so expressos diretamente em linguagem natural (exemplos: receita de bolo e troca de pneu furado). Algoritmo: Troca de pneu furado
Afrouxar ligeiramente as porcas Suspender o carro Retirar as porcas e o pneu Colocar o pneu reserva Apertar as porcas Abaixar o carro Dar o aperto final nas porcas
Algoritmos: Representao
Fluxograma (ou Diagrama de Fluxo)
Representao grfica Emprega formas geomtricas padronizadas Indicam as diversas aes e decises que devem ser executadas para resolver o problema.
Algoritmos: Fluxograma
Incio e fim de fluxograma Teste e deciso
Processamento
Impresso de resultados
Algoritmos: Fluxograma
Incio
Algoritmos: Representao
Pseudo-linguagem ou pseudo-cdigo
Obter a
Obter b
Emprega uma linguagem intermediria entre a linguagem natural e uma linguagem de programao para descrever os algoritmos. Algoritmo: dividir dois nmeros
Imprime C
Fim
Algoritmos: Pseudo-linguagem
Para o computador 1. Incio de programa interpretar este algoritmo devemos 2. ler a, b reescreve-lo em uma linguagem de 3. se b0 ento programao. c=a/b imprimir c seno imprimir diviso invlida fim de se 4. Fim de programa
Algoritmos e Computao
Hoje em dia a noo e domnio dos algoritmos tornou-se absolutamente essencial, pois qualquer programa de computador deve ser provavelmente uma descrio de um algoritmo. Programao consiste na codificao de um algoritmo, segundo uma linguagem de programao especfica.
Algoritmos e Computao
Segundo Toscani e Veloso, algoritmos so o cerne da computao: um programa codifica um algoritmo de modo a ser executado em um computador, resolvendo assim um problema. (Complexidade de Algoritmos, 2008)
Algoritmos e Programas
Existem trs fases distintas na elaborao de programas:
a anlise do problema (especificao do problema, anlise de requisitos, pressupostos, etc.) a concepo do algoritmo a traduo desse algoritmo na linguagem de programao
Problema Algoritmo Programa
Linguagens
Qualquer tipo de informao que deva ser transferida, processada ou armazenada deve estar na forma de uma linguagem.
Linguagem natural Linguagem de maquina Linguagens de programao
Linguagem Natural
A linguagem natural a maneira como expressamos nosso raciocnio e trocamos informao. Como a expresso da cultura de uma sociedade, desenvolvida atravs das geraes e em diferentes situaes, raramente constitui um sistema de regras rgidas que possa ser implementada numa mquina ou que possa ser transcrita logicamente. Alm da linguagem falada, fazem parte da nossa comunicao gestos e posturas.
Linguagem de maquina
Linguagem que o computador entende Esta linguagem composta somente por nmeros, representados de forma binria, que, sob o ponto de vista do computador, representam as operaes e os operandos que sero usados no processamento do programa.
Linguagem de programao
Linguagem que os programadores entendem As linguagens de programao so um meio termo entre a linguagem de mquina e a linguagem natural.
Linguagem de baixo nvel Linguagem de alto nivel
Linguagem de programao
Linguagem de baixo nvel:
muito parecidas com linguagem de mquina suas instrues parecem-se muito com aquelas que sero executadas pelo processador Ex: linguagem de montagem (assembly)
Comando de atribuio: =
a = 56;
Definindo tipos
Exemplo:
para (int i=1 ; i<=5 ; i++) { // O loop executado ??? vezes
Escreva(i+" ")
SO
Comentrios
Utilizados para documentar parte do cdigo No fazem parte do programa no so compilados Documentar programas atravs de comentrios uma boa prtica de programao
Comentrios
Os comentrios podem ocupar mais de uma linha Quando ocupam uma linha usamos a sequncia de caracteres // que indica que o comentrio dura at o final da linha Quando se quer comentar mais de uma linha devemos usar a sequncia /*(inicio) e */(fim) . O comentrio dura at os caracteres */ serem encontrados
Comentrios
Indica que, a classe est acessivel a outras classes de outros pacotes Indica o fim de um bloco
A mensagem
Sada do Programa
Exemplo
As 53 palavras-chave de Java
Operadores
Operadores de Incremento
Operadores de Incremento int a = 10; int b = 20; int c, d; c = a++; Qual valor de c?? 10 d = ++b; Qual valor de d?? 21
Operadores Relacionais
Operadores Lgicos
Classe Scanner
Encontrada no pacote java.util
Declara a classe
Classe Swing
Encontrada no pacote javax
class Exercicio {
public static void main (String args []){ int numero; Declara a classe String aux= ""; aux=JOptionPane.showInputDialog(null, "Digite um numero:); numero=Integer.parseInt(aux); Imprime uma JOptionPane.showMessageDialog(null, numero); mensagem para o
usurio
public static void main (String args []){ Imprime o int numero; valor da String aux= ""; entrada aux=JOptionPane.showInputDialog(null, "Digite um numero:); numero=Integer.parseInt(aux); JOptionPane.showMessageDialog(null, numero);
Converso de String
possvel converter qualquer tipo primitivo String para
Converso de String
Estruturas de Controle
Estruturas de Seleo Estruturas de Repetio
if
Estrutura de Seleo
Java possui as seguintes estruturas de seleo
if else switch
Comando if
Especifica que um comando ou bloco ser executado se e somente se uma determinada condio booleana for verdadeira
Comando if - else
Especifica que um comando ou bloco ser executado quando uma condio booleana for verdadeira e outro comando quando a condio for falsa
Comando switch
Permite multiplicidade de escolha
Estruturas de Repetio
Permite executar um bloco de instrues um nmero determinado de vezes
while do while for
Comando while
Os comandos no lao while so executados enquanto uma condio booleana for verdadeira
Comando do - while
A principal diferena no do while que os comandos so executados pelo menos uma vez;
Comando for
Permite a execuo de um comando ou um bloco um pr-definido nmero de vezes
Exerccios
1) Faa um programa que receba um numero inteiro e imprima a tabuada deste numero. 2) Construir uma sub-rotina que calcule o quadrado de um nmero. 3) Construir uma sub-rotina que verifique se um dado nmero par.
Exerccios
4) Construir uma calculadora que receba dois valores e efetue as operaes bsicas (soma, subtrao, diviso e multiplicao). Deve-se utilizar a estrutura CASE para criao de um menu e sub-rotinas para cada uma das operaes.
Referncias
Java: Como Programar - HARVEY M. DEITEL & PAUL J. DEITEL Prentice-Hall - 2005 Estruturas de Dados e Algoritmos em Java: Miclael T. Goodrih e Roberto Tamasia Bookman 2007 Slides Bruno Correa Laboratrio Nacional de Computao Cientifica