Elementos Básicos de Algoritmos Prof. Araken Medeiros araken@ufersa.edu.br Angicos, RN 30/04/2010 Os elementos básicos de um algoritmo ou programa são: Palavras reservadas Identificadores Constantes ariáveis Expressões Instruções 2 Palavras Reservadas São palavras que tem significados prédeterminados e fazem parte da estrutura da linguagem utilizada. Início, Fim, Inteiro, Real etc. Dados Correspondem à porção das informações a serem processadas pelo computador A maioria dos computadores pode trabalhar com vários tipos de dados Os dados podem ser divididos em três tipos: Numéricos Caracteres Lógicos 10:04 3 10:04 4 Dados Numéricos Inteiros Toda e qualquer informação numérica que pertença ao conjunto dos números inteiros relativos (negativos, nulos ou positivos) Ex.: 5; -15; 20; 1340; 6; 4 Dados Numéricos Reais Toda e qualquer informação numérica que pertença ao conjunto dos números reais (negativos, nulos ou positivos) Ex.: 0,008; 3754,41; 3,74; -52.453; 3; 0 10:04 5 10:04 6 1
Dados Caracteres Toda e qualquer informação composta de um conjunto de caracteres alfanuméricos (0,..., 9), alfabéticos (A,..., Z, a,..., z) e especiais (por exemplo, #, @,?,!). Dados Lógicos Toda e qualquer informação que pode assumir apenas duas situações: verdadeira e falsa. 10:04 7 10:04 8 Identificadores São os nomes únicos definidos para identificar/distinguir elementos de um algoritmo. Identificadores Algumas REGRAS para os nomes de identificadores Devem começar por um caractere alfabético Podem ser seguidos por mais caracteres alfabéticos e/ou numéricos Não é permitido o uso de espaço em branco ou de caracteres especiais, como @, #, &, *, +,?, $ (exceto o _ ) Não poderá ser uma palavra reservada Não podem ser repetidos dentro de um mesmo algoritmo. 10:04 9 10:04 10 ariáveis e Constantes: Conceitos Iniciais Quando estivermos fazendo nossos algoritmos ou programas, faz-se necessário ARMAZENAR informações para utilizá-la posteriormente durante a execução do programa. Para tornar isso possível, são utilizadas variáveis e constantes. ariáveis e Constantes: Conceitos Iniciais Para entendermos a relação das variáveis e constantes e a memória faremos uma analogia: Imagine que a memória do computador seja um armário com várias gavetas 10:04 11 10:04 12 2
ariáveis e Constantes: Conceitos Iniciais Cada gaveta possui um identificador (nome) que em determinado momento guarda um conteúdo (informação). O computador, para poder trabalhar esses conteúdos, precisa saber qual o local onde o conteúdo se encontra. ariáveis e Constantes: Conceitos Iniciais Resumindo... As gavetas seriam os locais físicos responsáveis por armazenar objetos, os objetos seriam os dados eas gavetas, as variáveis. 10:04 13 10:04 14 Constantes Constantes são dados, rotulados com um identificador, que permanecem sem mudanças durante todo o desenvolvimento e execução do algoritmo. Constantes Declarar uma constante significa reservar uma área da memória RAM, que irá receber um nome (rótulo) cujo conteúdo vai permanecer constante durante toda a execução do algoritmo. 10:04 15 10:04 16 Constantes Seu uso poupa tempo quando se tem que alterar o valor no algoritmo Ao trocar o valor de uma constante, todas as instruções que a usam irão manipular, automaticamente, o novo valor PI = 3,1415 Circunferência = 360 DataNascimento = 14/05/1950 ariável Um dado éconsiderado como variável quando tem apossibilidade de ser alterado em algum instante no decorrer do tempo Durante a execução do algoritmo em que é utilizado, ovalor do dado sofre alteração ou é dependente da execução em um certo momento ou circunstância. 10:04 17 10:04 18 3
ariável Declarar uma variável significa reservar uma área da memória RAM (endereço físico de memória), representada por um identificador que, ao longo de sua existência, pode armazenar vários conteúdos de um único tipo pré-determinado ariável Declarar uma variável significa reservar uma área da memória RAM (endereço físico de memória), representada por um identificador que, ao longo de sua existência, pode armazenar vários conteúdos de um único tipo pré-determinado Endereço Físico Identificador Conteúdo Tipo 1000:2000 Nome João Caracter 2001:3000 RG 12345 Inteiro 3001:4000 Salário 999,99 Real 4001:5000 Fumante F Lógico 10:04 19 10:04 20 ariável Assim, uma variável é composta por dois elementos básicos: a) Conteúdo:valoratualda variável b) Identificador: nome dados à variável (ou constante)para possibilitarsua manipulação. Éboa prática utilizar nomes significativos (que digam mais ou menos o significado da variável) quando utilizamos uma variável em um algoritmo. ariável Algumas regras para nomear variáveis: Sempre começar por um caractere alfabético. Os caracteres seguintes podem ser alfabéticos ou numéricos; Não colocar espaços nem outros sinais que possamser confundidoscom operadores; Evitarnomesdesnecessariamentecompridos. Exemplos álidos: Alpha, X, nota1, media, ABC, FGTS, CPF; Exemplos Não álidos: 5E3, 4X, A(12), A:B, A-B, Nota/2. 10:04 21 10:04 22 Declaração de ariáveis e Constantes No momento da declaração (criação) de variáveis e constantes, deve-se definir o tipo de dado que será armazenado No caso de constantes, deve-se fornecer também o valor da constante. Declaração de ariáveis e Constantes Declaração de Constantes <nome da constante> = <valor>; <nome da constante> = <valor>; Declaração de ariáveis <tipo de dado:><var1,..., varn>; <tipo de dado:><var1,..., varn>; Obs: Declarar as constantes antes das variáveis 24 4
Declaração de ariáveis e Constantes Declaração de ariáveis e Constantes Declaração de Constantes <nome da constante> = <valor>; <nome da constante> = <valor>; Declaração de ariáveis <tipo de dado:><var1,..., varn>; OU <var1,..., varn>: <tipo de dado>; Obs: Declarar as constantes antes das variáveis Exemplos corretos: CONST PI =3.1416 ; MAX =10 ; OK =; Pais = Brasil ; AR Real: notamedia, Salario; Inteiro: contador; Logico: achou; Caractere: nome, sexo; AR notamedia, Salario:Real; contador: Inteiro; Achou: Logico; nome, sexo: Caractere; 25 26 Declaração de ariáveis e Constantes Exemplos incorretos: AR Real: achou?, 13 Salário; Inteiro: #contador; Lógico: sobre nome; Caractere: primeira nota, masculino/feminino; CONST _PI =3.1416 ; Km/h=80 ; OK! =; País Padrão = Brasil Expressões Uma expressão é uma fórmula para processamento de um valor. As principais expressões são as seguintes: Aritméticas: Retornam um valor numérico (inteiro ou real). EX: 10+(3+1)/2 Lógicas: Retornam um valor lógico ou F. EX: (3=2+1) e (3>2) Obs: Ter atenção com as prioridades dos operadores! 3+2*2 = 7 (3+2)*2 = 10 Use corretamente os parênteses! 27 28 Expressões Expressões consistem de operandos e operadores. Operandos são os elementos de uma expressão que sofrem uma ação. Ex: variáveis, constantes ou outras expressões. Operadores são os elementos de uma expressão que realizam a ação. EX: aritméticos, lógicos e relacionais. Na expressão 3 + 2 = 5, temos 3, 2 e 5 como operandos e + e = como operadores. Operadores Os operadores podem ser classificados em: Binários: atuam sobre dois operandos. Ex: operadores aritméticos básicos (+ -* /) Unários: atuam sobre um único operando. Ex.: o sinal de (-) na frente de um número para inverter seu sinal. Tipos de operadores da nossa linguagem: Atribuição Aritméticos Relacionais Lógicos ou Booleanos 29 30 5
Operadores Atribuição: serve para atribuir um valor a uma variável. Operador de atribuição EX: Nome Um nome ; Idade 18; Casado F; Salário 500,50; A expressão do lado direito do operador é avaliada e seu resultado é armazenado na variável à esquerda. Obs:Aexpressãodeveretornar omesmotipo da variável! Aritméticos: são as operações aritméticas básicas Maior Operador Tipo Operação Prioridade - Unário Inversão do Sinal 1 + Unário Manutenção do Sinal 1 RAD(x) Unário Radiciação 2 POT(x,y) Binário Potenciação 2 DI Binário Quociente da Divisão Inteira 3 MOD Binário Resto da Divisão Inteira 3 / Binário Divisão 3 * Binário Multiplicação 3 - Binário Subtração 4 + Binário Adição 4 Ordem prioridade Menor 31 32 O operador de potenciação POT(x,y) pode ser representado de outras formas, como por exemplo: 33 x^y x**y EXP(x,y) O operador de radiciação RAD(x) pode ser representado de outras formas, como por exemplo: SQR(x) 34 Operador Função Exemplos mod Resto da divisão 9 mod 4 (resulta em 1) div Quociente da divisão 9 div 4 (resulta em 2) Prioridades: Na resolução das expressões aritméticas, as operações guardam uma hierarquia entre si. parênteses mais internos pot rad * / div mod + - Operador Operação Exemplo Resultado + Adição 4+3 7 - Subtração 4-3 1 * Multiplicação 4*3 12 / Divisão 4/3 1,33 MOD Resto da Divisão Inteira 4 MOD 3 1 DI Quociente da Divisão Inteira 4 DI 3 1 POT(x,y) Potenciação POT (4,3) 64 RAD(x) Radiciação RAD(4) 2 + Manutenção do Sinal +- 4-4 - Inversão do Sinal -- 4 +4 a)5 + 9 + 7 + 8/4 5 + 9 + 7 + 2.0 14+ 7 + 2.0 21+ 2.0 23.0 35 6
b)1 4 * 3/6 pot(3,2) 1 4 * 3/6 9 1 12/6 9 1 2.0 9 1.0 9-10.0 Os seguintes exemplos mostram resultados de expressões aritméticas: Expressão Resultado Expressão Resultado 10.5/3.0 3.5 10 div 3 3 1/4 0.25 18 div 2 9 2.0/4.0 0.5 30 div 30 1 6/1 6.0 6 div 8 0 30/30 1.0 10 div 3 1 6/8 0.75 10 div 2 0 38 Regras de Prioridade 39 As expressões que tem dois ou mais operandos requerem algumas regras para determinar a ordem das comparações, denominadas regras de prioridade ou precedência: 1. As operações que estão fechadas entre os parênteses são avaliados primeiro. Se existirem diferentes parênteses aninhados, as expressões mais internas são avaliadas primeiro. Regras de Prioridade 40 As expressões que tem dois ou mais operandos requerem algumas regras para determinar a ordem das comparações, denominadas regras de prioridade ou precedência: 2. As operações aritméticas dentro de uma expressão costumam obedecer à seguinte ordem de prioridade. No caso de coincidirem vários operadores de igual prioridade em uma expressão, ou subexpressão fechada em parênteses, a ordem de prioridade é da esquerda para a direita. a) 3 + 6 * 14 3 + 84 87 b) 8 +7 * 3 + 4 * 6 8 + 21 + 4 * 6 8 + 21 + 24 29 + 24 53 c) -4 * 7 + 2 ^ 3/4-5 -4 * 7 + 8/4-5 -28 + 8/4 5-28 + 2.0 5-26.0 5-31.0 7
d) 12 + 3 * 7 + 5 * 4 12 + 21 + 5 * 4 12 + 21 + 20 33 + 20 53 e) POT(5,2) 4/2 + RAD(1 + 3 * 5)/2 25 4/2 + RAD(1 + 3 * 5)/2 25 4/2 + RAD(1 + 15)/2 25 4/2 + RAD(16)/2 25 4/2 + 4/2 25 2.0 + 4/2 25 2.0 + 2.0 23.0 + 2.0 25.0 Exercícios Qual o resultado das seguintes expressões? a) A * (B + 3) b) (A * B) + 3 c) A + (B + C) + D d) (A + B/C) + D e) A * B/C * D OBS.: A = 2; B = 5; C = 10; D = 20 Operadores Lógicos Os operadores lógicos ou booleanos são: NÃO E OU Operador Lógico Expressão Lógica Significado NÃO(NOT) NÃO (p) Negação de p E (AND) pe q Conjunçãode p e q OU (OR) p OU q Disjunçãode p e q 46 Operadores Lógicos As definições das operações NÃO, E e OU estão resumidas em tabelas conhecidas como tabela-verdade. Tabela-erdade é o conjunto de todas as possibilidades combinatórias entre os valores de diversas variáveis lógicas ariáveis lógicas permitem apenas duas situações ( ou F) e a utilização de um conjunto de operadoreslógicos. Operadores Lógicos Operadorde Negação Operadorde Conjunção a F NÃO (a) a b a E b F F F F F F F F 47 48 8
Operadores Lógicos Operadores Lógicos Operador de Disjunção a b a OU b F F F F F Ordem de Prioridade Operador Tipo Operação Prioridade NÃO Unário Negação 1 E Binário Conjunção 2 OU Binário Disjunção 3 Maior Ordem prioridade Menor 49 50 Operadores Lógicos Operador Operação Exemplo Resultado OU Disjunção ou F E Conjunção e F F NÃO Negação Não F Operadores Relacionais Os operadores relacionais são utilizados para realizar comparações entre dois valores de mesmo tipo primitivo. O formato geral para comparações é: expressão1 operador relacional expressão2 51 52 Operadores Relacionais Os operadores relacionais somente são usados para efetuar comparações, as quais só podem ser feitas entre dados do mesmo tipo. Oresultado de uma comparação ésempre um valor lógico. Operadores Relacionais O resultado obtido de uma relação é sempre um valor lógico, ou seja, verdadeiro ou falso. Operador Função Exemplos = Igual a 3 = 3, x = y > Maior que 5 > 4, x > y < Menor que 5 < 4, x < y >= Maior ou igual a 5 >= 4, x >= y <= Menor ou igual a 5 >= 4, x >= y <> Diferente de 8 <> 9, x <> y 53 54 9
Observações: Operador Prioridade Parenteses mais internos 1 Aritméticos 2 Relacional 3 Lógico 4 Operadores de igual prioridade, execução da esquerda para direita. Para alterar aordem de prioridade, utilizar parênteses. a) 2 * 4 = 24/3 8 = 24/3 8 = 8.0 b) 15 MOD 4 < 19 MOD 6 3 < 19 MOD 6 3 < 1 F 55 56 c) 3 * 5 DI 4 <= POT(3, 2)/0.5 3 * 5 DI 4 <= 9/0.5 15 DI 4 <= 9/0.5 3 <= 9/0.5 3 <= 18 v d) 2 + 8 MOD 7 >= 3 * 6-15 2 + 1 >= 3 * 6 15 2 + 1 >= 18 15 3 >= 18 15 3 >= 3 57 58 e) 2 < 5 E 15 DI 3 = 5 2 < 5 E 5 = 5 E 5 = 5 E f) F OU 20 MOD(18 DI 3) <> (21 DI 3) MOD 2 F OU 20 MOD 6 <> (21 DI 3) MOD 2 F OU 20 MOD 6 <> 7 MOD 2 F OU 2 <> 7 MOD 2 F OU 2 <> 1 F OU 59 60 10
h) NÃO OU POT(3, 2)/3 < 15 35 DI 7 NÃO OU 9/3 < 15 35 DI 7 NÃO OU 3.0 < 15 35 DI 7 NÃO OU 3.0 < 15 5 NÃO OU 3.0 < 10 NÃO OU F OU i) NÃO (5 <> 10 DI2) OU E 2 5 > 5 2 OU NÃO (5 <> 5) OU E 2 5 > 5 2 OU NÃO (5 <> 5) OU E 3 > 5 2 OU NÃO (5 <> 5) OU E 3 > 3 OU NÃO (F) OU E 3 > 3 OU NÃO F OU E F OU OU E F OU E F OU F OU 61 62 j) POT (2, 4) <> 4 + 2 OU 2 + 3 * 5 DI 3 MOD 5 < 0 16 <> 4 + 2 OU 2 + 3 * 5 DI 3 MOD 5 < 0 16 <> 4 + 2 OU 2 + 1 5 DI 3 MOD 5 < 0 16 <> 4 + 2 OU 2 + 5 MOD 5 < 0 16 <> 4 + 2 OU 2 + 0 < 0 16 <> 6 OU 2 + 0 < 0 16 <> 6 OU 2 < 0 OU 2 < 0 OU F É o comando que indica o que a variável vai receber em seu conteúdo em determinado momento É o modo de armazenar valores para uma variável Representada pelo símbolo ou operador O formato geral de uma operação de atribuição é: nome da variável expressão Expressão => expressão, variável ou constantes 63 64 Em algumas linguagens de programação, a seta ( ) é substituída por: = isual Basic, Fortran := Pascal == Java, C++, C# Exemplo: A 5 Significa que a variável A recebe o valor 5 B A + 10 C B + A + 2 65 66 11
A operação de atribuição é destrutiva O valor que tiver a variável antes da atribuição é perdido e substituído pelo novo valor Exemplo: A 25 A 134 A 5 Quando executadas em sequência, ovalor de Aserá o último valor recebido, no caso 5, enquanto os valores 25 e 134são perdidos. Executada em dois passos: 1º passo: O valor da expressão ao lado direito do operador é calculado, obtendo-se um valor de um tipo específico. 2º passo: Este valor é armazenado na variável cujo nome aparece à esquerda do operador de atribuição, substituindo o valor que havia anteriormente. 67 68 Y 2 X Y + 2 X X + 2 Observação: O tipo de dado a ser armazenado deve ser compatível com o tipo da variável As operações de atribuição podem ser classificadas segundo o tipo de expressões, em: Aritméticas Lógicas Caracteres 69 70 Atribuição Aritmética Atribuição Lógica AMN 3 + 14 + 8 M 8 < 5 TER1 14.5 + 8 N M OU (7 >= 12) TER2 0.75 * 3.4 P 7 > 6 QUOCIENTE TER1/TER2 71 72 12
Atribuição de Cadeias de Caracteres X 12 de outubro de 2009 Y UFERSA Conversão de Tipo Nas atribuições não podemos colocar valores em uma variável de um tipo diferente do seu. Ocorrerá um erro ao tentar atribuir valores do tipo caractere a uma variável numérica ou um valor numérico a uma variável de tipo caractere. 73 74 Conversão de Tipo Nas atribuições não podemos colocar valores em uma variável de um tipo diferente do seu. Ocorrerá um erro ao tentar atribuir valores do tipo caractere a uma variável numérica ou um valor numérico a uma variável de tipo caractere. Exceção: O único caso permitido é a atribuição de um valor inteiro a uma variável real. O contrário não é permitido. 75 13