Algoritmos e Estruturas de Dados I Conceitos Básicos Profa. Márcia Cristina Moraes Profa.Milene Selbach Silveira Material para estudo: Forbellone, A. e Eberspächer, H. (2005) capítulos 1 e 2 (até atribuição)
Definições de Algoritmos Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth, 2001). Algoritmo é um texto (do tipo receita de bolo) onde cada linha contém uma ação primitiva (ação elementar passível de execução por um humano ou uma máquina). A função do algoritmo, quando executado, é a de agir (operar) sobre os dados, transformando-os em informações (Pinto, 1990).
Qual linguagem é utilizada em algoritmos? Homem Linguagem Natural Linguagem Algorítmica Linguagem de Alto Nível Linguagem de Mnemônicos (Assembly) Computador Linguagem de Máquina
Linguagem Algorítmica Sub-conjunto restrito da linguagem natural. Descrever como solucionar problemas usando uma linguagem semelhante a linguagem humana.
Relação entre Algoritmos e Programação Etapas de programação (1) especificar claramente o problema (o que deve ser resolvido) (2) descobrir uma solução (algoritmo): transformar o que deve ser resolvido em como resolvê-lo (3) escrever a solução em uma linguagem de programação (programa) (4) testar a solução (programa)
Conceitos Básicos de Algoritmos (1/2) Constantes, Variáveis e Operações Considere a fórmula abaixo: R = 2x + 4 Os valores podem ser classificados como: Valores constantes, não variam em todas as aplicações da fórmula. No exemplo: 2 e 4 Valores a serem substituídos na fórmula em cada aplicação que fizermos dela. Estes valores recebem o nome de variáveis e tornam a fórmula genérica, ou seja, possível de ser usada para resolver uma certa classe de problemas. No exemplo: R e x
Conceitos Básicos de Algoritmos (2/2) Considere a fórmula abaixo: R = 2x + 4 Operações são executadas sobre determinados operandos (valores) para obtenção da solução do problema. No exemplo: multiplicação e adição
Constantes São valores fixos que não se modificam ao longo do tempo. As constantes podem ser: numéricas, lógicas ou literais.
Constantes Numéricas (1/2) A representação de uma constante numérica nos algoritmos é feita no sistema decimal, podendo ser um número com ou sem a parte fracionária e com ou sem sinal. Números sem sinal são considerados positivos. Exemplos: 25; -25; 13; +13; -13 3,14; -2,15; +2,15; 2,15
Constantes Numéricas (2/2) Podem existir constantes com uma parte exponencial, isto é, um fator elevado a um expoente inteiro. O expoente pode possuir sinal, indicando o deslocamento da vírgula para direita ou para a esquerda, conforme o sinal seja positivo ou negativo respectivamente. Exemplos 9,6 10 6 ; 9,6 10-6 ; -2,5 10 3 ; 10-3
Constantes Lógicas São valores lógicos que só podem ser falsos ou verdadeiros. São usados em proposições lógicas. Só existem duas constantes deste tipo, sendo representadas pelas palavras falso e verdadeiro.
Constantes Literais Qualquer seqüência de caracteres (letras, dígitos ou símbolos especiais). Toda a constantes literal deverá ser representada no algoritmo entre aspas. Exemplos Jose da Silva 1234 %We& falso
Exercícios Identifique o tipo de cada uma das constantes abaixo: 21 amarelo falso falso 3,42 +12 10-3 verdadeiro
Variável É um objeto que representa/armazena um valor que pode ser alterado a cada execução. Embora uma variável possa assumir diferentes valores em diferentes instantes de tempo, ela só pode armazenar um valor a cada instante. Toda a variável é identificada por um nome ou identificador.
Formação de Identificadores Um identificador é formado por: uma única letra ou uma letra seguida de letras e dígitos não são permitidos espaços em branco e outros caracteres que não sejam letras e dígitos Identificadores Permitidos a, nota, x3, a43b, codigo Identificadores Não Permitidos 5b, x-y, a(1), a:4, %e3
Exercícios Assinale com um X os identificadores válidos e indique porque os outros não são válidos: ( ) valor ( ) nota-aluno ( ) b324 ( ) x2 ( ) nota*aluno ( ) km/h ( ) 3#4 ( ) notaaluno ( ) 123 ( ) xyz ( ) a! ( ) m{a} ( ) abc ( ) 2sa ( ) v1
Tipos de Dados (1/2) Tipos das variáveis Conjunto ordenado de valores que podem ser atribuídos as variáveis Inteiro: todo e qualquer valor numérico que pertença ao conjunto dos números inteiros (negativo, nulo ou positivo). Real: todo e qualquer valor numérico que pertença ao conjunto dos números reais (negativo, nulo ou positivo).
Tipos de Dados (2/2) Lógico: quando pertencem ao conjunto {verdadeiro, falso} Literal: quando pertencem ao conjunto dos caracteres: números (0-9), alfabéticos(a...z, a...z) e especiais (por exemplo #,@, *)
Definição de Variáveis Deve-se indicar o tipo de valores que as variáveis do algoritmo podem assumir: <tipo>: <Lista de variáveis> Onde lista de variáveis é uma variável ou várias variáveis separadas por vírgulas. Por exemplo: inteiro: n real: a, b, c
Exercícios Analise o conteúdo das variáveis abaixo e declare corretamente seu tipo. num 10 end Av. Ipiranga 6681 achou msg falso valor 10.0 teste 10.0 verdadeiro base 1.5678
Operações - Expressões Aritméticas Expressão aritmética pode ser conceituada como sendo uma constante ou uma variável ou uma combinação de constantes e/ou variáveis por meio de operadores aritméticos. Operandos: constantes e variáveis Operadores: operações (+,-,, /)
Expressões Aritméticas Prioridade dos operadores 1) Potenciações 2) Multiplicações e divisões 3) Somas e subtrações 4) Parênteses, colchetes ou chaves podem alterar esta ordem 5) Segue-se da esquerda para a direita em caso de indeterminação (mais de uma operação de mesma prioridade).
Expressões Aritméticas - Exemplos (1/3) 3b + 2 2 Operador Representação (3*b)/2 + 2 potenciação pot(base, expoente) radiciação rad(número) multiplicação * divisão / soma + subtração -
Expressões Aritméticas - Exemplos (2/3) c 2-21 Operador Representação pot(c,2)-21 potenciação pot(base, expoente) radiciação rad(número) multiplicação * divisão / soma + subtração -
Expressões Aritméticas - Exemplos (3/3) 2b 3 Operador Representação rad(2*b+3) potenciação pot(base, expoente) radiciação rad(número) multiplicação * divisão / soma + subtração -
Exercícios a + b 3-6a 2 2c 4a 2 + 3d 4a ( b a) ( a c) Operador Representação potenciação pot(base, expoente) radiciação rad(número) multiplicação * divisão / soma + subtração -
Funcionamento da atribuição de valor R 2x + 4 cada vez que a fórmula for utilizada ocorrerá o seguinte: variável x deverá receber um valor antes da execução dos cálculos variável R receberá um valor após a execução dos cálculos o valor de x será utilizado no cálculo de R a cada nova utilização o valor x será alterado e consequentemente o valor R também
Atribuição de Valor (1/2) O ato de armazenar ou escrever um valor em uma variável é chamado de atribuição de valor. Pode ser representado através dos símbolos: Variável valor Variável := valor Variável = valor Iremos utilizar a primeira representação
Atribuição de Valor (2/2) A atribuição significa a substituição do conteúdo da variável, ou seja, após a atribuição a variável passa a representar um novo valor, sendo perdido o valor anterior. Por exemplo, a atribuição: x 2 seguida de outra: x 4 fará com que a variável x represente o valor 4 como resultado atual, perdendo o valor 2 anteriormente armazenado nela.
Exercícios (1/2) Considere as atribuições: A 5 B 2 C 8 Quais os valores finais de A, B e C se: 1) fizermos A B e depois B C 2) fizermos A C e B A
Exercícios (2/2) Se tivermos as variáveis A 22 e B 42, qual seqüência de atribuições devemos fazer para trocar os valores das variáveis?
Referências Bibliográficas Orth, Afonso Inácio. Algoritmos e Programação. Editora AIO. 2001. Pinto, Wilson Silva. Introdução ao Desenvolvimento de Algoritmos e Estruturas de Dados. Editora Érica. 1990. Farrer et al. Algoritmos Estruturados. Editora Guanabara.1989. Forbellone, A. e Eberspacher, H. Lógica de Programação: A Construção de Algoritmos e Estruturas de Dados. Makron Books, São Paulo, 3ª edição. 2005.