Introdução aos Algoritmos Aula 05 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa diogopedrosa@ufersa.edu.br Universidade Federal Rural do Semiárido Bacharelado em Ciência e Tecnologia 21 de outubro de 2009
Introdução Em aulas anteriores... Conceito de computador Equipamento para realizar processamento de dados; Possui hardware e software; Software composto por programas! Toda tarefa de processamento de dados necessita de um programa (ou vários programas interligados); Todo programa é construído através de uma linguagem de programação.
Introdução Etapas para Desenvolvimento de Programas Análise: estuda o enuciado do problema e define os dados de entrada do programa, o processamento a ser realizado e os dados de saída; Algoritmo: consiste em ferramentas que auxiliam na descrição do problema com suas soluções; Codificação: o algoritmo é transformado em códigos da linguagem de programação escolhida para se trabalhar. Observação Um programa é a codificação de um algoritmo em uma linguagem de programação.
Conceito de Algoritmo Um algoritmo é a descrição de uma sequência de passos que deve ser seguida para a realização de uma tarefa. Exemplo: somar três números 1. Receber os três números; 2. Somar os três números; 3. Mostrar o resultado obtido.
Conceito de Algoritmo Exemplo: sacar dinheiro em caixa eletrônico 1. Ir até um caixa eletrônico; 2. Colocar o cartão; 3. Digitar a senha; 4. Solicitar a quantia desejada; 5. Se o saldo for maior ou igual à quantia desejada, sacar dinheiro; caso contrário, mostrar mensagem de impossibilidade de saque; 6. Retirar cartão; 7. Sair da agência.
Conceito de Algoritmo Observação Podem existir vários algoritmos para solucionar o mesmo problema.
Método para Construir Algoritmos Compreender o problema a ser resolvido; Definir os dados de entrada; Definir que tipo de processamento (cálculos) serão efetuados; Definir os dados de saída; Construir o algoritmo; Testar o algoritmo com simulações.
Tipos de Algoritmos Descrição Narrativa Consiste em analisar o enunciado do problema e escrever, utilizando uma linguagem natural, os passos a serem seguidos para sua resolução. Vantagem: não é necessário aprender nenhum conceito novo; Desvantagem: a ĺıngua natural abre espaço para várias interpretações, o que pode dificultar a transcrição do algoritmo para programa.
Tipos de Algoritmos Descrição Narrativa Exemplo Algoritmo para mostrar o resultado da multiplicação de dois números: 1. Receber os dois números que serão multiplicados. 2. Multiplicar os dois números. 3. Mostrar o resultado obtido na multiplicação.
Tipos de Algoritmo Fluxograma Consiste em analisar o enunciado do problema e escrever, utilizando símbolos gráficos pré-definidos, os passos a serem seguidos para sua resolução. Vantagem: uma vez que se tem o conhecimento dos símbolos, entender um algoritmo escrito em fluxograma é mais simples que entender um algoritmo narrativo; Desvantagem: é necessário aprender a simbologia dos fluxogramas.
Tipos de Algoritmo Fluxograma Símbolos gráficos: 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 Algoritmo Fluxograma Exemplo Algoritmo para mostrar o resultado da multiplicação de dois números: Inicio N1, N2 M = N1 x N2 M Fim
Tipos de Algoritmo Pseudocódigo Consiste em analisar o enunciado do problema e escrever, por meio de regras pré-definidas, os passos a serem seguidos para sua resolução. Vantagem: a passagem do algoritmo para qualquer linguagem de programação é quase imediata, basta conhecer os códigos da linguagem; Desvantagem: é necessário aprender as regras do pseudocódigo.
Tipos de Algoritmo Pseudocódigo Exemplo Algoritmo para mostrar o resultado da multiplicação de dois números: 1: INÍCIO ALGORITMO 2: DECLARE N1, N2, M NUMÉRICO 3: ESCREVA Digite dois números 4: LEIA N1, N2 5: M N1 * N2 6: ESCREVA Multiplicação =, M 7: FIM ALGORITMO
Conceito de Variável Um algoritmo e, posteriormente, um programa, recebem dados que precisam ser armazenados no computador e utilizados no processamento; O armazenamento é feito na memória; Uma variável representa uma área da memória que armazena um determinado dado; A variável deve possuir um nome e deve ser definido que tipo de dado ela pode armazenar; Uma variável pode ter seu valor alterado (por outro do mesmo tipo) a qualquer momento.
Nome das Variáveis Formação de Identificadores Os identificadores são os nomes utilizados para as variáveis nos algoritmos e programas. As regras básicas para a formação dos identificadores são: Pode-se utilizar números, letras maiúsculas, letras minúsculas e o caractere underscore. Exemplo: Nota 1, Nota01; O primeiro caractere deve ser sempre uma letra. Exemplo: 01Nota não pode! Não são permitidos espaços em branco nem símbolos especiais (@, $, +, -, %,!, etc.). Exemplo: Nota 01 não pode! Existem palavras que são exclusivas para as linguagens de programação. Tais palavras não podem ser utilizadas como identificadores.
Tipos de Dados Valores que as Variáveis Recebem Numérico: Podem assumir valores inteiros (-23, 0, 237,...) ou valores reais (-23.45, 0.0, 234.478). Lógico: Podem assumir valores booleanos: verdadeiro ou falso. Caractere: Também é conhecido como tipo Literal; Esse tipo pode assumir um único caractere ou uma sequência de caracteres; Exemplo: Informática Aplicada.
Linguagem de Programação A Linguagem que será utilizada... Uma linguagem de programação consiste em um conjunto de códigos que traduz um algoritmo para um programa; Esse código possui regras e palavras chaves específicas da linguagem adotada; Exemplo: #include <stdio.h> int main(){ int N1, N2, M; printf("digite dois números: "); scanf("%d %d", &N1, &N2); M = N1*N2; printf("multiplicaç~ao = %d", M); return(0); }
Linguagem de Programação A Linguagem que será utilizada... A linguagem a ser utilizada será a C/C++; A linguagem C foi criada em 1972, nos Laboratórios Bell, para o desenvolvimento do sistema operacional UNIX; A linguagem C++ foi originalmente criada como uma extensão da linguagem C. Hoje ela é uma das mais utilizadas no mundo acadêmico. Ambas são linguagens de alto nível o programador não precisa se preocupar com funções específicas do processador.
Paradigmas de Programação Paradigma é a representação de um padrão a ser seguida; Paradigma de programação está relacionado com a forma de pensar do programador e como ele busca a solução para o problema; Há dois paradigmas principais em programação: Estruturado; Orientado a objetos.
Paradigmas de Programação Programação Estruturada Pelo paradigma estruturado, qualquer problema pode ser resolvido utilizando três estruturas básicas: sequencial, condicional e de repetição (iterativa); Procura encontrar uma forma de quebrar um problema complexo em vários problemas simples, que trabalhando conjuntamente, obtêm o resultado desejado.
Paradigmas de Programação Programação Orientada a Objetos No paradigma orientado a objetos, o programador enxerga o problema como uma coleção de objetos que interagem por meio de troca de mensagens.
Paradigmas de Programação Exemplo Problema Calcular a área e o perímetro de um retângulo. Para isso, deverá existir uma janela pela qual serão informadas as medidas dos lados do retângulo. Nesta janela também serão exibidos os resultados encontrados.
Paradigmas de Programação Exemplo Pelo paradigma estruturado, o problema principal pode ser dividido nos seguintes problemas: 1. Obter o valor da altura do retângulo; 2. Obter o valor da largura do retângulo; 3. Calcular a área; 4. Calcular o perímetro; 5. Mostrar os resultados.
Paradigmas de Programação Exemplo Pelo paradigma orientado a objeto, o problema principal pode ser visto como dois objetos se comunicando: janela e retângulo. Assim, deve-se: 1. Programar a janela para receber as medidas do retângulo a partir do usuário (entrada de dados) e enviar essas medidas para o objeto retângulo; 2. Programar o retângulo para receber as medidas da janela, fazer com que ele calcule a sua área e o seu perímetro e, por fim, enviar os resultados para a janela; 3. Uma vez que a janela recebeu essa mensagem, ela deve apresentar o resultado para o usuário.
Paradigmas de Programação De uma maneira geral: A linguagem C foi originalmente projetada para escrever programas estruturados; A linguagem C++ possui elementos que permitem uma programação orientada a objetos.
Estrutura Sequencial É a estrutura que permite criar o algoritmo como uma sequência de passos para resolver um determinado problema. Consiste em: Utilizar uma palavra-chave para iniciar o algoritmo (INÍCIO ALGORITMO); Declarar as variáveis e seus tipos; Realizar o processamento sobre as variáveis; Finalizar o algoritmo com uma outra palavra chave (FIM ALGORITMO). Exemplo 1: INÍCIO ALGORITMO 2: DECLARE variáveis 3: bloco de comandos 4: FIM ALGORITMO
Declaração de Variáveis Utiliza a palavra chave DECLARE, seguida do identificador da variável e do seu tipo. Exemplo 1: INÍCIO ALGORITMO 2: DECLARE X NUMÉRICO 3: DECLARE Y, Z CARACTERE 4: DECLARE TESTE LÓGICO 5: FIM ALGORITMO
Atribuição de Valores Para a atribuição de valores às variáveis, usa-se o símbolo. Exemplo 1: INÍCIO ALGORITMO 2: DECLARE X NUMÉRICO 3: DECLARE Y, Z CARACTERE 4: DECLARE TESTE LÓGICO 5: X 4 6: Y teste 7: TESTE falso 8: FIM ALGORITMO
Comando de Entrada Para a entrada de dados no algoritmo, usa-se a palavra-chave LEIA! Exemplo 1: INÍCIO ALGORITMO 2: DECLARE X NUMÉRICO 3: LEIA X 4: X X + 2 5: FIM ALGORITMO
Comando de Saída Para a saída (exibição) de dados (variáveis), usa-se a palavra-chave ESCREVA! Exemplo 1: INÍCIO ALGORITMO 2: DECLARE X NUMÉRICO 3: LEIA X 4: X X + 2 5: ESCREVA X 6: FIM ALGORITMO
Exemplo Faça um algoritmo que receba quatro números inteiros e que calcule e apresente a soma deles. 1: INÍCIO ALGORITMO 2: DECLARE n1, n2, n3, n4 NUMÉRICO 3: DECLARE soma NUMÉRICO 4: ESCREVA Digite os quatro números 5: LEIA n1, n2, n3, n4 6: soma n1 + n2 + n3 + n4 7: ESCREVA Soma =, soma 8: FIM ALGORITMO
Exemplo Faça um algoritmo que receba três notas e que calcule e apresente a média aritmétrica entre elas. 1: INÍCIO ALGORITMO 2: DECLARE n1, n2, n3, NUMÉRICO 3: DECLARE media NUMÉRICO 4: ESCREVA Digite as três notas: 5: LEIA n1, n2, n3 6: media (n1 + n2 + n3)/3 7: ESCREVA Média =, media 8: FIM ALGORITMO
Próxima Aula... Continuação de algoritmos: Estruturas sequenciais mais exemplos e exercícios; Estruturas condicionais; Exemplos e exercícios.