Introdu˘c~ao aos Algoritmos - ufersa.edu.br · Algoritmo:consiste em ferramentas que auxiliam na...

Preview:

Citation preview

Introducao aos AlgoritmosAula 05

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

diogopedrosa@ufersa.edu.br

Universidade Federal Rural do SemiaridoBacharelado em Ciencia e Tecnologia

21 de outubro de 2009

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.

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.

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.

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.

Conceito de Algoritmo

Observacao

Podem existir varios algoritmos para solucionar o mesmo problema.

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.

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.

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.

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.

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.

Tipos de AlgoritmoFluxograma – Exemplo

Algoritmo para mostrar o resultado da multiplicacao de doisnumeros:

Inicio N1, N2

M = N1 x N2

M Fim

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.

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

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.

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.

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’.

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);

}

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.

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.

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.

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.

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.

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.

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.

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.

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

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

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

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

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

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

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

Proxima Aula...

Continuacao de algoritmos:

I Estruturas sequenciais – mais exemplos e exercıcios;

I Estruturas condicionais;

I Exemplos e exercıcios.

Recommended