Algoritmos e Estrutura de Dados I Conceitos de Algoritmos Prof. Elyssandro Piffer
CONCEITO DE ALGORITMO O computador pode auxiliar em muitas tarefas, contudo ele não possui independência, não é inteligente, portanto necessita receber instruções. A finalidade de um computador é receber, manipular e armazenar dados. Mais ele só consegue realizar essas tarefas por meio de um algoritmo ou programa de computador.
CONCEITO DE ALGORITMO Algoritmo é uma sequência finita de instruções ou operações cuja execução, em tempo finito, resolve um problema computacional, qualquer que seja sua instância. (SALVETTI, 1999). Ação é um acontecimento que, a partir de um estado inicial, após um período de tempo finito, produz um estado final previsível e bem definido. Portanto, um algoritmo é a descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações. (FARRER, 1999).
CONCEITO DE ALGORITMO/PROGRAMA/SISTEMA Algoritmos + Programas + Sistema (software) Um algoritmo é um pequeno grupo de instruções passadas para o computador. Programar é basicamente construir vários algoritmos. Construir Sistemas (Software) é a junção de vários programas.
CONCEITO DE LINGUAGEM DE PROGRAMAÇÃO Para que o computador compreenda e execute um algoritmo, programa ou sistema, deve-se escrevê-lo usando uma linguagem que tanto o computador quanto o criador de software entendam. Essa linguagem é chamada de linguagem de programação. Exemplo: Pascal, C, Java, Php, etc.
PROCESSAMENTO DE DADOS...a partir de um estado inicial, após um período de tempo finito, produz um estado final previsível e bem definido... (FARRER, 1999).
SEQUÊNCIA LÓGICA DAS INSTRUÇÕES Para se construir um algoritmo, é necessário ter lógica apurada, de forma que se possa definir uma sequência lógica das instruções (comandos) a serem passadas para o computador atingir o objetivo (solucionar o problema). Na vida quotidiana, os algoritmos são encontrados frequentemente. Exemplos: tomar banho, tomar café, almoçar, trocar um pneu, fazer um bolo, atender um celular, entre outros. Vejamos alguns exemplos detalhadamente...
EXEMPLO DE ALGORITMO Algoritmo 1: Somar 3 números Passo 1 - Receber os três números Passo 2 - Somar os três números Passo 3 - Mostrar o resultado obtido
EXEMPLO DE ALGORITMO Algoritmo 2: Fazer um sanduíche Passo 1 - Pegar o pão Passo 2 - Cortar o pão ao meio Passo 3 - Pegar a maionese Passo 4 - Passar a maionese no pão Passo 5 - Pegar e cortar alface e tomate Passo 6 - Colocar alface e tomate no pão Passo 7 - Pegar o hambúrguer Passo 8 - Fritar o hambúrguer Passo 9 - Colocar o hambúrguer no pão
EXEMPLO DE ALGORITMO Algoritmo 3: Realizar compra num supermercado Passo 1 - Faça a lista de compra e vá ao supermercado Passo 2 - Entre no supermercado Passo 3 - Pegue o carrinho de compra Passo 4 - Pegue os produtos da lista de compra Passo 5 - Passe os produtos junto ao caixa e pague Passo 6 - Volte para casa Passo 7 Guarde as compras
ETAPAS DO DESENVOLVIMENTO ANÁLISE: onde o enunciado do problema será estudado para a definição dos dados de entrada, do processamento e saída. ALGORITMO: onde ferramentas do tipo descrição narrativa, fluxograma ou pseudocódigo (portugol ou português estruturado) são utilizadas para descrever o problema com suas soluções; CODIFICAÇÃO: onde o algoritmo é transformado em códigos da linguagem de programação escolhida.
PARA SE CONSTRUIR, NECESSÁRIO SE FAZ Ler atentamente o enunciado, destacando os pontos mais importantes. Definir os dados de entrada, ou seja, quais dados serão fornecidos. definir o processamento, ou seja, quais cálculos serão efetuados. Definir os dados de saída, ou seja, quais dados serão gerados depois do processamento. Construir o algoritmo utilizando os tipos descritos no slide anterior. Testar o algoritmo realizando simulações.
FERRAMENTA 1 DESCRIÇÃO NARRATIVA Descrição Narrativa: A descrição narrativa consiste em analisar o enunciado do problema e escrever, utilizando uma linguagem natural, por exemplo, a língua portuguesa, os passos a serem seguidos para a resolução do problema. Vantagem: não é necessário aprender nenhum conceito novo, pois uma linguagem natural, neste ponto, já é bem conhecida.
FERRAMENTA 2 - FLUXOGRAMA Fluxograma: O fluxograma consiste em analisar o enunciado do problema e escrever, utilizando símbolos pré-definidos, os passos a serem seguidos para a resolução do problema. Vantagem: o entendimento de elementos gráficos é mais fácil do que o entendimento de textos. Desvantagem: é necessário aprender a simbologia dos fluxogramas e, além disso, o algoritmo resultante não apresenta muitos detalhes, dificultando a sua transcrição para um programa.
FERRAMENTA 2 - FLUXOGRAMA
FERRAMENTA 3 PSEUDOCÓDIGO Pseudocódigo: consiste em analisar o enunciado do problema e escrever, utilizando regras pré-definidas, os passos a serem seguidos para a resolução do problema. Vantagem: a passagem do algoritmo para qualquer linguagem de programação é quase imediata, bastando conhecer as palavras reservadas da linguagem de programação que será utilizada. Desvantagem: é necessário aprender as regras do pseudocódigo, que serão apresentadas posteriormente.
EXEMPLO - DESCRIÇÃO NARRATIVA Faça um algoritmo que mostre o resultado da multiplicação de dois números. Passo 1 Receber os dois números que serão multiplicados Passo 2 Multiplicar os números Passo 3 Mostrar o resultado obtido na multiplicação
EXEMPLO - FLUXOGRAMA Faça um algoritmo que mostre o resultado da multiplicação de dois números.
EXEMPLO - PSEUDOCÓDIGO Faça um algoritmo que mostre o resultado da multiplicação de dois números. ALGORITMO DECLARE n1, n2, m NUMÉRICO ESCREVA Digite dois números LEIA n1, n2 m n1 * n2 ESCREVA Multiplicação =, m FIM_ALGORITMO.
CONCEITO DE VARIÁVEL Um ALGORITMO recebe dados, que são armazenados na memória do computador. Desta forma, uma variável representa uma posição de memória, possuindo nome e tipo. Quando queremos buscar algum dado na memória basta sabermos o nome da variável que o computador irá buscá-lo automaticamente.
CONCEITO DE TIPOS DE DADOS Quando uma variável é definida é necessário saber que TIPO são os dados que ela armazenará. São eles: Numérico: dividem-se em inteiros e reais. Os números inteiros podem ser positivos ou negativos e NÃO possuem parte decimal. Exemplos: -23; 98; 0; 1350. Os números reais podem ser positivos ou negativos e POSSUEM parte decimal. Exemplos: -23.50; 98.37; 0.29; 1350.45.
CONCEITO DE TIPOS DE DADOS Lógico: São também chamados dados booleanos (por causa da álgebra de Boole) e podem assumir apenas duas possibilidades de representação, os valores VERDADEIRO ou FALSO. Literal ou Caractere : São dados formados por um único caractere ou por uma cadeia de caracteres. Estes caracteres podem ser as letras maiúsculas, minúsculas, números (não podem ser usados para cálculos) e os caracteres especiais (&, #, @,?, +, etc). Exemplos: F ; s ; unipar ; rua das flores.
REGRAS PARA IDENTIFICADORES (VARIÁVEL) Só pode conter letras (maiúsculas ou minúsculas), números e o caractere sublinhado. o primeiro caractere deve ser sempre letra ou o caractere sublinhado. não são permitidos espaços em branco e caracteres especiais. não podemos usar as palavras reservadas, ou seja, palavras que pertencem a uma linguagem de programação. Deve dizer respeito ao que será armazenado dentro dela.
REGRAS PARA IDENTIFICADORES (VARIÁVEL) Exemplos de identificadores Válidos: A _a nota NOTA X5 A32 Inválidos: 5b começa por número e 12 contém espaço em branco x-y contém caractere especial - If por ser palavra reservada
ESTRUTURA SEQUENCIAL EM ALGORITMOS Escopo ALGORITMO DECLARE INICIO bloco de comandos FIM.
DECLARAÇÃO DE VARIÁVEIS EM ALGORITMOS As variáveis são declaradas após a palavra DECLARE e os tipos mais utilizados são: NÚMERICO, LITERAL e LÓGICO. DECLARE idade NÚMERICO sexo LITERAL teste LÓGICO
COMANDO DE ATRIBUIÇÃO EM ALGORITMOS O comando de atribuição é utilizado para atribuir valores ou operações a variáveis, sendo representado pelos símbolo x 4 y y + 2 z joão teste falso
COMANDO DE ENTRADA EM ALGORITMOS O comando de entrada é utilizado para receber dados digitados pelo usuário. Os dados recebidos são armazenados em variáveis. Este comando é representado pela palavra LEIA. EXEMPLO: LEIA nota LEIA nome
COMANDO DE SAÍDA EM ALGORITMOS O comando de saída é utilizado para mostrar dados na tela, na impressora ou outros. Este comando é representado pela palavra ESCREVA e os dados podem ser conteúdo de variáveis ou mensagens. EXEMPLO: ESCREVA idade ESCREVA Entre com o seu nome ESCREVA Eu tenho, idade, anos