34
Introdu¸c˜ ao aos Algoritmos Aula 05 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa [email protected] Universidade Federal Rural do Semi´ arido Bacharelado em Ciˆ encia e Tecnologia 21 de outubro de 2009

Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Introducao aos AlgoritmosAula 05

Diogo Pinheiro Fernandes Pedrosahttp://www2.ufersa.edu.br/portal/professor/diogopedrosa

[email protected]

Universidade Federal Rural do SemiaridoBacharelado em Ciencia e Tecnologia

21 de outubro de 2009

Page 2: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

IntroducaoEm aulas anteriores...

Conceito de computador

I Equipamento para realizar processamento de dados;

I Possui hardware e software;

Software → composto por programas!

I Toda tarefa de processamento de dados necessita de umprograma (ou varios programas interligados);

I Todo programa e construıdo atraves de uma linguagem deprogramacao.

Page 3: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

IntroducaoEtapas para Desenvolvimento de Programas

Analise: estuda o enuciado do problema e define os dados deentrada do programa, o processamento a serrealizado e os dados de saıda;

Algoritmo: consiste em ferramentas que auxiliam na descricao doproblema com suas solucoes;

Codificacao: o algoritmo e transformado em codigos da linguagemde programacao escolhida para se trabalhar.

Observacao

Um programa e a codificacao de um algoritmo em uma linguagemde programacao.

Page 4: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Conceito de Algoritmo

Um algoritmo e a descricao de uma sequencia de passos que deveser seguida para a realizacao de uma tarefa.”

Exemplo: somar tres numeros

1. Receber os tres numeros;

2. Somar os tres numeros;

3. Mostrar o resultado obtido.

Page 5: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Conceito de Algoritmo

Exemplo: sacar dinheiro em caixa eletronico

1. Ir ate um caixa eletronico;

2. Colocar o cartao;

3. Digitar a senha;

4. Solicitar a quantia desejada;

5. Se o saldo for maior ou igual a quantia desejada, sacardinheiro; caso contrario, mostrar mensagem deimpossibilidade de saque;

6. Retirar cartao;

7. Sair da agencia.

Page 6: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Conceito de Algoritmo

Observacao

Podem existir varios algoritmos para solucionar o mesmo problema.

Page 7: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Metodo para Construir Algoritmos

I Compreender o problema a ser resolvido;

I Definir os dados de entrada;

I Definir que tipo de processamento (calculos) serao efetuados;

I Definir os dados de saıda;

I Construir o algoritmo;

I Testar o algoritmo com simulacoes.

Page 8: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Tipos de AlgoritmosDescricao Narrativa

Consiste em analisar o enunciado do problema e escrever,utilizando uma linguagem natural, os passos a serem seguidos para

sua resolucao.

Vantagem: nao e necessario aprender nenhum conceito novo;

Desvantagem: a lıngua natural abre espaco para variasinterpretacoes, o que pode dificultar a transcricao doalgoritmo para programa.

Page 9: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Tipos de AlgoritmosDescricao Narrativa – Exemplo

Algoritmo para mostrar o resultado da multiplicacao de doisnumeros:

1. Receber os dois numeros que serao multiplicados.

2. Multiplicar os dois numeros.

3. Mostrar o resultado obtido na multiplicacao.

Page 10: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Tipos de AlgoritmoFluxograma

Consiste em analisar o enunciado do problema e escrever,utilizando sımbolos graficos pre-definidos, os passos a serem

seguidos para sua resolucao.

Vantagem: uma vez que se tem o conhecimento dos sımbolos,entender um algoritmo escrito em fluxograma e maissimples que entender um algoritmo narrativo;

Desvantagem: e necessario aprender a simbologia dos fluxogramas.

Page 11: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Tipos de AlgoritmoFluxograma

Sımbolos graficos:

Simbolo utilizado para indicar inicio e fim do algoritmo

Simbolo que permite indicar o sentido do fluxo de dados.Serve exclusivamente para conectar os simbolos ou blocos existentes

Simbolo utilizado para indicar calculos e atribuicoes de valores

Simbolo utilizado para representar a entrada de dados

Simbolo utilizada para representar a saida de dados

Simbolo utilizado para indicar que deve ser tomada uma decisão, apontando a possibilidade de desvios.

Page 12: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Tipos de AlgoritmoFluxograma – Exemplo

Algoritmo para mostrar o resultado da multiplicacao de doisnumeros:

Inicio N1, N2

M = N1 x N2

M Fim

Page 13: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Tipos de AlgoritmoPseudocodigo

Consiste em analisar o enunciado do problema e escrever, por meiode regras pre-definidas, os passos a serem seguidos para sua

resolucao.

Vantagem: a passagem do algoritmo para qualquer linguagem deprogramacao e quase imediata, basta conhecer oscodigos da linguagem;

Desvantagem: e necessario aprender as regras do pseudocodigo.

Page 14: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Tipos de AlgoritmoPseudocodigo – Exemplo

Algoritmo para mostrar o resultado da multiplicacao de doisnumeros:

1: INICIO ALGORITMO2: DECLARE N1, N2, M NUMERICO3: ESCREVA “Digite dois numeros”4: LEIA N1, N25: M ← N1 * N26: ESCREVA “Multiplicacao = “, M7: FIM ALGORITMO

Page 15: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Conceito de Variavel

I Um algoritmo e, posteriormente, um programa, recebemdados que precisam ser armazenados no computador eutilizados no processamento;

I O armazenamento e feito na memoria;I Uma variavel representa uma area da memoria que armazena

um determinado dado;I A variavel deve possuir um nome e deve ser definido que tipo

de dado ela pode armazenar;I Uma variavel pode ter seu valor alterado (por outro do mesmo

tipo) a qualquer momento.

Page 16: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Nome das VariaveisFormacao de Identificadores

Os identificadores sao os nomes utilizados para as variaveis nosalgoritmos e programas. As regras basicas para a formacao dosidentificadores sao:

I Pode-se utilizar numeros, letras maiusculas, letras minusculase o caractere underscore. Exemplo: Nota 1, Nota01;

I O primeiro caractere deve ser sempre uma letra. Exemplo:01Nota nao pode!

I Nao sao permitidos espacos em branco nem sımbolos especiais(@, $, +, -, %, !, etc.). Exemplo: Nota 01 nao pode!

I Existem palavras que sao exclusivas para as linguagens deprogramacao. Tais palavras nao podem ser utilizadas comoidentificadores.

Page 17: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Tipos de DadosValores que as Variaveis Recebem

Numerico:

I Podem assumir valores inteiros (-23, 0, 237, ...) ou valoresreais (-23.45, 0.0, 234.478).

Logico:

I Podem assumir valores booleanos: verdadeiro ou falso.

Caractere:

I Tambem e conhecido como tipo Literal;

I Esse tipo pode assumir um unico caractere ou uma sequenciade caracteres;

I Exemplo: ’Informatica Aplicada’.

Page 18: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Linguagem de ProgramacaoA Linguagem que sera utilizada...

I Uma linguagem de programacao consiste em um conjunto decodigos que traduz um algoritmo para um programa;

I Esse codigo possui regras e palavras chaves especıficas dalinguagem adotada;

I Exemplo:

#include <stdio.h>

int main(){int N1, N2, M;printf("Digite dois numeros: ");scanf("%d %d", &N1, &N2);M = N1*N2;printf("Multiplicac~ao = %d", M);return(0);

}

Page 19: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Linguagem de ProgramacaoA Linguagem que sera utilizada...

I A linguagem a ser utilizada sera a C/C++;

I A linguagem C foi criada em 1972, nos Laboratorios Bell, parao desenvolvimento do sistema operacional UNIX;

I A linguagem C++ foi originalmente criada como umaextensao da linguagem C. Hoje ela e uma das mais utilizadasno mundo academico.

I Ambas sao linguagens de alto nıvel → o programador naoprecisa se preocupar com funcoes especıficas do processador.

Page 20: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Paradigmas de Programacao

I Paradigma → e a representacao de um padrao a ser seguida;

I Paradigma de programacao → esta relacionado com a formade pensar do programador e como ele busca a solucao para oproblema;

I Ha dois paradigmas principais em programacao:I Estruturado;I Orientado a objetos.

Page 21: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Paradigmas de ProgramacaoProgramacao Estruturada

I Pelo paradigma estruturado, qualquer problema pode serresolvido utilizando tres estruturas basicas: sequencial,condicional e de repeticao (iterativa);

I Procura encontrar uma forma de quebrar um problemacomplexo em varios problemas simples, que trabalhandoconjuntamente, obtem o resultado desejado.

Page 22: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Paradigmas de ProgramacaoProgramacao Orientada a Objetos

I No paradigma orientado a objetos, o programador enxerga oproblema como uma colecao de objetos que interagem pormeio de troca de mensagens.

Page 23: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Paradigmas de ProgramacaoExemplo

ProblemaCalcular a area e o perımetro de um retangulo. Para isso, deveraexistir uma janela pela qual serao informadas as medidas dos ladosdo retangulo. Nesta janela tambem serao exibidos os resultadosencontrados.

Page 24: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Paradigmas de ProgramacaoExemplo

Pelo paradigma estruturado, o problema principal pode ser divididonos seguintes problemas:

1. Obter o valor da altura do retangulo;

2. Obter o valor da largura do retangulo;

3. Calcular a area;

4. Calcular o perımetro;

5. Mostrar os resultados.

Page 25: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Paradigmas de ProgramacaoExemplo

Pelo paradigma orientado a objeto, o problema principal pode servisto como dois objetos se comunicando: janela e retangulo.Assim, deve-se:

1. Programar a janela para receber as medidas do retangulo apartir do usuario (entrada de dados) e enviar essas medidaspara o objeto retangulo;

2. Programar o retangulo para receber as medidas da janela,fazer com que ele calcule a sua area e o seu perımetro e, porfim, enviar os resultados para a janela;

3. Uma vez que a janela recebeu essa mensagem, ela deveapresentar o resultado para o usuario.

Page 26: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Paradigmas de Programacao

De uma maneira geral:

I A linguagem C foi originalmente projetada para escreverprogramas estruturados;

I A linguagem C++ possui elementos que permitem umaprogramacao orientada a objetos.

Page 27: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Estrutura Sequencial

E a estrutura que permite criar o algoritmo como uma sequenciade passos para resolver um determinado problema. Consiste em:

I Utilizar uma palavra-chave para iniciar o algoritmo (INICIOALGORITMO);

I Declarar as variaveis e seus tipos;

I Realizar o processamento sobre as variaveis;

I Finalizar o algoritmo com uma outra palavra chave (FIMALGORITMO).

Exemplo

1: INICIO ALGORITMO2: DECLARE variaveis3: bloco de comandos4: FIM ALGORITMO

Page 28: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Declaracao de Variaveis

Utiliza a palavra chave DECLARE, seguida do identificador davariavel e do seu tipo.

Exemplo

1: INICIO ALGORITMO2: DECLARE X NUMERICO3: DECLARE Y , Z CARACTERE4: DECLARE TESTE LOGICO5: FIM ALGORITMO

Page 29: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Atribuicao de Valores

Para a atribuicao de valores as variaveis, usa-se o sımbolo “←”.

Exemplo

1: INICIO ALGORITMO2: DECLARE X NUMERICO3: DECLARE Y , Z CARACTERE4: DECLARE TESTE LOGICO5: X ← 46: Y ← “teste”7: TESTE ← falso8: FIM ALGORITMO

Page 30: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Comando de Entrada

Para a entrada de dados no algoritmo, usa-se a palavra-chaveLEIA!

Exemplo

1: INICIO ALGORITMO2: DECLARE X NUMERICO3: LEIA X4: X ← X + 25: FIM ALGORITMO

Page 31: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Comando de Saıda

Para a saıda (exibicao) de dados (variaveis), usa-se a palavra-chaveESCREVA!

Exemplo

1: INICIO ALGORITMO2: DECLARE X NUMERICO3: LEIA X4: X ← X + 25: ESCREVA X6: FIM ALGORITMO

Page 32: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Exemplo

Faca um algoritmo que receba quatro numeros inteiros e quecalcule e apresente a soma deles.

1: INICIO ALGORITMO2: DECLARE n1, n2, n3, n4 NUMERICO3: DECLARE soma NUMERICO4: ESCREVA “Digite os quatro numeros”5: LEIA n1, n2, n3, n46: soma← n1 + n2 + n3 + n47: ESCREVA “Soma = ”, soma8: FIM ALGORITMO

Page 33: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Exemplo

Faca um algoritmo que receba tres notas e que calcule e apresentea media aritmetrica entre elas.

1: INICIO ALGORITMO2: DECLARE n1, n2, n3, NUMERICO3: DECLARE media NUMERICO4: ESCREVA “Digite as tres notas:”5: LEIA n1, n2, n36: media← (n1 + n2 + n3)/37: ESCREVA “Media = ”, media8: FIM ALGORITMO

Page 34: Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na descri˘c~ao do problema com suas solu˘c~oes; Codi ca˘c~ao:o algoritmo e transformado

Proxima Aula...

Continuacao de algoritmos:

I Estruturas sequenciais – mais exemplos e exercıcios;

I Estruturas condicionais;

I Exemplos e exercıcios.