Algoritmos em Estrutura seqüencial 1. Tipos de dados São quatro os tipos básicos de dados, e podem assumir os seguintes valores válidos: - números inteiros: -,, -3, -2, -1, 0, 1, 2, 3,, + ; - números reais: -,, -4.0,, -3.14,, -3.0,, -2.0,, -1.0,, -0.5,, 0.0,, 1.0,, 2.0,, 2.5,, 3.0,, 3.14,, 4.0,, + ; - caracteres (ou cadeias de caracteres): letras (AZ, az), algarismos (09), símbolos de acentuação, pontuação e todos os que representarem informações de texto; - valor lógico: verdadeiro (V) ou falso (F). Toda e qualquer informação é definida, em um programa, em função destes tipos básicos. Por exemplo, um som é definido através de sua freqüência, intensidade e duração, que são expressos em números; uma imagem como um conjunto de pontos, que possuem uma posição, e uma intensidade de cor, que por sua vez é a combinação das intensidades das três cores primárias. Outros exemplos: - idade de uma pessoa: inteiro; - número de dependentes: inteiro; - altura de uma árvore: real; - salário: real; - nome de uma empresa: caracteres; - telefone: caracteres; - nº de identidade: caracteres. Observe que o telefone e o nº de identidade foram definidos como caracteres apesar de serem escritos com algarismos. Eles não são valores, mas apenas códigos de acesso, logo, são caracteres. O número de telefone, por exemplo, em outros países possui algarismos e letras, o que deixa claro que não se trata da medida de uma grandeza. Nas linguagens de programação observa-se a existência de um número muito maior de tipos de dados. Isto é devido ao fato da memória RAM ser limitada. Cada tipo de dado ocupa um espaço definido na memória e, utilizar um tipo de dado que aceita valores pequenos pode não atender aos requisitos do problema, enquanto um tipo de dado que ocupe muito espaço pode deixar sub-utilizada a RAM. 2. Variáveis X constantes Variável é uma posição de memória RAM cuja finalidade é armazenar informações. Em uma posição de memória pode-se armazenar somente um valor por vez. Como a memória RAM é volátil, conclui-se que ao armazenar um novo valor em uma variável o valor anterior é perdido. No algoritmo a variável pode ser entendida como a representação (o apelido ) de uma informação que se deseja processar, mas cujo valor somente será conhecido quando o programa for executado. A variável é definida pelo programador na declaração de variáveis; ao ser declarada, recebe um nome e um tipo de dado. O tipo de dado definido para uma informação determina quanto espaço de memória RAM será reservado para ela e como este conteúdo será interpretado. Exemplo de declaração de variáveis: VARIÁVEIS NOME: CARACTERES IDADE, DEPENDENTES: INTEIRO SALARIO, DESCONTOS: REAL Uma constante é um valor característico de um problema, ou seja, um valor que sempre aparece na sua solução. Por exemplo, a fórmula do comprimento do círculo, C=2pr, possui duas constantes, o valor 2 e o valor p; a fórmula da área do círculo, A=pr 2, a constante p e o expoente constante 2. Programação estruturada Algoritmos 1 / 5
A constante pode ser definida pelo programador de duas maneiras: na declaração de constantes ou nas próprias instruções. O tipo de dado de uma constante é definido pelo valor da constante. A constante de caracteres é sempre escrita entre aspas ( ). Exemplos: - constantes definidas na declaração de constantes: - constantes definidas na instrução: CONSTANTES PI=3.14 JUROS=0.05 TITULO= Faetec - CI/Quintino C 2*3.14*r Regras para a criação de identificadores (nomes de variáveis, constantes, programas): 1ª) Caracteres válidos: - letras: AZ ou az (algumas linguagens fazem diferença entre maiúsculas e minúsculas); - algarismos: 09; - sublinhado (underline): _ 2ª) Começa obrigatoriamente por letra; 3ª) Sem espaços em branco; 4ª) Não pode ser palavra reservada ou identificador duplicado. Exemplos de identificadores: - Válidos: IDADE MEDIA_DO_BIM T_DESC SAL_LIQ MEDIA_1_BIM N_DEP CEL NOTA_1 ENDER A_CIRC - Inválidos: 1_NOTA MÉDIA DO BIM INÍCIO p D 1 NOTA ENDEREÇO NOTA_2ª _X PROFISSÃO Estas regras não são absolutas para todas as linguagens de programação, pois algumas são menos restritivas. Porém atendem a todas elas, e você não vai criar nomes inválidos se utilizá-las. 3. Operadores aritméticos Os operadores aritméticos realizam operações entre valores e tanto os dados quanto os resultados são valores numéricos. Operador Operação + Adição - Subtração * Multiplicação / Divisão real - Troca de sinal QUOC Quociente da divisão inteira REST Resto da divisão inteira Divisão inteira é a que ocorre quando o dividendo e o divisor são números inteiros e divisão real quando estes são números reais. Os resultados são respectivamente inteiro e real. Há uma operação definida para o tipo de dado cadeia de caracteres: é a concatenação. Exemplo: Programação estruturada Algoritmos 2 / 5
1º) A= Faetec B= - (esta constante é formada por um espaço, um hífen e outro espaço) C= CI/Quintino A+B+C= Faetec - CI/Quintino 2º) D= Helio E= mar D+E= Heliomar 4. Expressões aritméticas As expressões de cálculo precisam ser linearizadas para que possam ser utilizadas em um programa; não é possível utilizar traços de fração, índices, expoentes e outros. Todas as operações precisam ser explicitamente indicadas; não se pode deixar, por exemplo, multiplicações implícitas. As operações são executadas na ordem em que aparecem, exceto se esta ordem for alterada pelas regras de precedência das operações aritméticas: multiplicações e divisões antes de adições e subtrações. Se for necessário alterar esta ordem pode-se usar parênteses, que poderão ser utilizados também para delimitar partes da expressão (veja os exemplos 1 e 4). Exemplos: 1) 2) 3) 4) Matemática 4 V ESFERA = ----- pr 3 3 (a + b) ÁREA TRAPÉZIO = ------------ h 2 2prh V CONE = --------- 3 b 2 4ac DELTA = ----------------- 2a Algoritmo V_ESFERA 4 / 3 * PI * (R * R * R) AREA_TRAPEZIO (A + B) / 2 * H V_CONE 2 * PI * R * H / 3 DELTA ((B * B) 4 * A * C) / (2 * A) 5. Instruções básicas As instruções ou comandos em geral iniciam-se por uma palavra reservada, um termo que significa uma determinada ação e não pode ser utilizado para qualquer outra finalidade. A partir deste ponto utilizaremos a seguinte notação para definir a sintaxe de uma instrução de algoritmo ou linguagem de programação: - palavras reservadas estarão em minúsculas, ou somente a inicial em maiúsculas; - os termos que o programador deve fornecer estarão entre colchetes quebrados (< >); - os termos opcionais aparecerão entre colchetes ([ ]). Estes símbolos não fazem parte dos comandos. São apenas marcadores da sintaxe. São três as instruções utilizadas na estrutura de programação seqüencial: - entrada de dados: Obter <variável> - saída de dados: Programação estruturada Algoritmos 3 / 5
Mostrar [<constante>], <variável> - armazenamento de valores em variáveis ou atribuição: <variável> <expressão> O símbolo é também conhecido como recebe, porque indica que o valor da variável ou expressão à direita dele foi armazenado na variável. Comentários podem ser colocados em qualquer lugar do código-fonte e são demarcados por chaves ({ }): { <texto do comentário> } Esquematicamente, podemos representar o fluxo de execução das instruções em um processamento seqüencial através de um trecho de fluxograma: Obter <variável 1> <variável 2> <expressão> Mostrar <variável 2> 6. Estrutura de um algoritmo Esta estrutura é semelhante à do programa em diversas linguagens de programação. Algoritmo <nome do algoritmo> Constantes < nome da constante>=<valor> Variáveis <nome da variável>: <tipo de dado> Início <instruções> Fim Cabeçalho Declarações Instruções Programação estruturada Algoritmos 4 / 5
Exemplo de aplicação Faça um algoritmo para calcular o salário líquido de um funcionário segundo a fórmula: salário líquido= salário bruto total de descontos, onde: salário bruto = número de horas trabalhadas X valor da hora, e total de descontos = salário bruto X percentual de descontos / 100. Algoritmo SALARIO { Cálculo de salário líquido } { Fórmulas: } { salário líquido= salário bruto total de descontos } { salário bruto = número de horas trabalhadas X valor da hora } { total de descontos = salário bruto X percentual de descontos } Variáveis SAL_LIQ, SAL_BRUTO, T_DESC, V_HORA, P_DESC: real H_TRAB: inteiro { SAL_LIQ: salário líquido} { SAL_BRUTO: salário bruto } { T_DESC: valor total a ser descontado do salário bruto } { V_HORA: salário-hora do funcionário } { P_DESC: percentual de desconto em porcentagem } { H_TRAB: total de horas trabalhadas } Início Obter V_HORA Obter P_DESC Obter H_TRAB SAL_BRUTO V_HORA * H_TRAB T_DESC SAL_BRUTO * P_DESC / 100 SAL_LIQ SAL_BRUTO T_DESC Mostrar SAL_LIQ Fim Programação estruturada Algoritmos 5 / 5