Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução a Programação 1 Lógica A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir a sequencia lógica para o desenvolvimento. Então o que é lógica? Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo. 2 3 Um algoritmo é formalmente uma sequencia finita de passos que levam a execução de uma tarefa. Podemos pensar em algoritmo como uma receita, uma sequencia de instruções que dão cabo de uma meta específica. Estas tarefas não podem ser redundantes nem subjetivas, na sua definição, devem ser claras e precisas. http://www.inf.ufsc.br/~vania/teaching/ine5231/Logica.pdf Um exemplo de algoritmo pode ser as instruções que um professor de ginástica passa aos seus alunos em uma academia de ginástica. Por exemplo: Repetir 10 vezes os quatro passos abaixo: ◦ Levantar e abaixar braço direito; ◦ Levantar e abaixar braço esquerdo; ◦ Levantar e abaixar perna esquerda; ◦ Levantar e abaixar perna direita. 4 Características básicas de um algoritmo Sequencia lógica As instruções devem ser definidas em uma ordem correta. Ter passos a serem executados até atingir um objetivo ou solução de um problema. A sequencia lógica de instruções não deve dar margem à dupla interpretação. A sequencia lógica deve resolver exatamente o problema identificado. Uma sequencia lógica de instruções deve sempre terminar após um número finito de passos. 5 Exemplos de algoritmos ◦ Coreografia ◦ Receitas de comidas ◦ Manuais de instalação Contra-exemplos de algoritmos ◦ Dança informal ◦ Índice remissivo de um livro ◦ Listas de compras 6 Para mostrar outro exemplo de algoritmo considere o seguinte problema: Dispomos de duas vasilhas com capacidades de 9 e 4 litros respectivamente. As vasilhas não tem nenhum tipo de marcação, de modo que não é possível ter medidas como metade ou um terço. Mostre uma sequencia de passos, que usando as vasilhas de 9 e 4 litros encha uma terceira vasilha de medida desconhecida com seis litros de água 7 Uma possível solução é: Encha a vasilha de 9 litros; Usando a vasilha de 9 litros, encha a vasilha de 4 litros; Despeje o que sobrou na vasilha de 9 litros (5 litros) na terceira vasilha. Observe que falta um litro para completar os seis litros; Esvazie a vasilha de 4 litros; Torne a encher a vasilha de 9 litros; Usando a vasilha de 9 litros encha a vasilha de 4 litros; Esvazie a de 4 litros; Usando o que restou na vasilha de 9 litros (5 litros), encha novamente a vasilha de quatro litros; Despeje o que sobrou na vasilha de 9 litros (1 litro) na terceira vasilha, que agora tem 6 litros. 8 Um outro exemplo de algoritmo é o que resolve o seguinte problema. Quatro rãs estão posicionadas em cinco casas da seguinte maneira: As rãs foram treinadas para trocar de casas, mas sempre obedecendo as seguintes regras: elas podem pular para a casa vizinha (frente ou trás), se ela estiver vazia; elas podem pular sobre a rã vizinha para uma casa livre (frente ou trás). 9 Mostre como as rãs podem chegar a seguinte posição final: 10 Este é um problema de colocar em ordem decrescente (ordenação), tarefa muito comum em computação. Uma possível solução para este problema é a seguinte: 11 Atenção: ◦ Um algoritmo é “uma solução” e não “a única solução” de um problema. Um problema pode ser resolvido por mais de um algoritmo! ◦ Tarefas que possuem “padrão de comportamento” podem ser descritas por um algoritmo. Ex: Qual será o próximo número das sequencias a) 0,1,4,9,16,25? b) 7,8,10,13,17? 12 13 Então: Lógica de Programação é o encadeamento lógico de instruções para o desenvolvimento de programas. 14 Programa é a implementação das instruções (codificação+tradução+execução) de um algoritmo em uma linguagem de programação. 15 Instruções são um conjunto de regras ou normas definidas para a realização ou emprego de algo. Em informática, é o que indica a um computador uma ação elementar a executar. http://www.inf.ufsc.br/~vania/teaching/ine5231/Logica.pdf Representação de Algoritmos As formas mais comuns de representação de algoritmos são as seguintes: ◦ Linguagem Natural Os algoritmos são expressos diretamente em linguagem natural, como nos exemplos anteriores. ◦ Fluxograma Convencional Esta é um representação gráfica que emprega formas geométricas padronizadas para indicar as diversas ações que devem ser executadas e decisões que devem ser tomadas para resolver o problema. 16 17 Pseudo-linguagem Seria uma linguagem intermediária entre a linguagem natural e uma linguagem de programação para descrever os algoritmos. Obs: Hoje não existe um consenso entre os especialistas sobre qual seria a melhor maneira de representar um algoritmo. Atualmente a maneira mais comum de representar-se algoritmos é através de uma pseudo-linguagem ou pseudo- código. Esta forma de representação tem a vantagem de fazer com que o algoritmo seja escrito de uma forma que está próxima de uma linguagem de programação de computadores. Nesta apostila empregaremos preferencialmente a pseudo-linguagem. Segundo grandes pesquisadores ... ◦ “A noção de algoritmo é básica para toda a programação de computadores”. KNUTH KNUTH - Professor da Universidade de Stanford e autor da coleção “The art of computer programming”. ◦ “O conceito central da programação e da ciência da computação é o conceito de algoritmo”. WIRTH WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área e responsável pela criação de linguagens de programação como ALGOL, PASCAL e MODULA -2. 18 Estruturas básicas de um algoritmo: ◦ Seqüência – Início/Fim Define uma estrutura onde as instruções serão executadas na ordem que aparecem. ◦ Seleção – Se-Então/Senão Define uma estrutura condicional que, dada a sua avaliação (V ou F), determina qual “caminho” do algoritmo será executado. ◦ Repetição – Repita, Enquanto ou Para Define uma estrutura de iteração condicional (V ou F) ou contada (predefinida) de instruções. 19 Algoritmo para ligar de um telefone público – Seqüência: Início 1. Tirar o fone do gancho; 2. Ouvir o sinal de linha; 3. Introduzir o cartão; 4. Teclar o número desejado; 5. Conversar; 6. Desligar; 7. Retirar o cartão; Fim. 20 Este algoritmo só usa uma estrutura de seqüência “Início/Fim” Algoritmo para ligar de um telefone público – Seleção Início 1. Tirar o fone do gancho; 2. Se ouvir o sinal de linha, então 2.1 Introduzir o cartão; 2.2 Teclar o número desejado; 2.3 Conversar; 2.4 Desligar; 2.5 Retirar o cartão; 3. Senão 3.1 Ir para o próximo telefone; Fim. 21 Este algoritmo usa uma estrutura de decisão “Se-então/Senão” Algoritmo para ligar de um telefone público – Repetição Início {o telefone precisa estar funcionando} 1. Repita 1. Tirar o fone do gancho; 2. Se ouvir o sinal de linha então 2.1 Introduzir o cartão; 2.2 Teclar o número desejado; 2.3 Conversar; 2.4 Desligar; 2.5 Retirar o cartão; 3. Senão 3.1 Desligar; 4. Continua(S/N) 2. Até Continua=‘N’ Fim. 22 Este algoritmo usa uma estrutura de repetição “Repita/Até” Algoritmo para ligar de um telefone público – Repetição E se o telefone chamado estiver com defeito? E se o telefone chamado estiver ocupado? E se acabarem os créditos do cartão telefônico? E se ...? 23 Calma! É normal que um algoritmo sofra melhorias sucessivas. (Técnica de refinamentos sucessivos) Inicio 1. Pegue o pincel; 2. Pegue a lata de tinta; 3. Enquanto não chegar no fim da parede, repita os passos 4,5,6 e 7; 4. Se acabou a tinta, pegue outra lata; 5. Molhe o pincel na tinta; 6. Passe o pincel na parede; 7. Ande um passo à direita; Fim Neste exemplo, podemos observar que as instruções se encaixam em três estruturas padrão: A SEQUÊNCIA SIMPLES, ou seja, a execução de passos um após o outro de forma sequencial (Ex: passos 1 e 2, passos 5, 6 e 7). A SELEÇÃO, ou seja, execução de determinada ação, condicionada a um teste. (Ex: passo 4). A REPETIÇÃO, ou seja, execução de um conjunto de passos repetidas vezes, enquanto determinada condição for verdadeira (Ex: passo 3). 25 O que é um Sistema Computacional? 26 Sistema Computacional Software Hardware Peopleware A programação de um sistema computacional pode ser resumida em 3 passos básicos Arquitetura de Von Newman 28 Processamento Entrada Saída Dispositivo de Entrada Dispositivo de Saída Memória UCP Exemplo 1 – Exibir a média de dois números Arquitetura de Von Newman 29 Processamento Entrada Saída Dispositivo de Entrada Dispositivo de Saída Memória UCP 6 , 8 (6 + 8) / 2 7 Exemplo 2 – Exibir se o aluno está aprovado ou reprovado Arquitetura de Von Newman 30 Processamento Entrada Saída Dispositivo de Entrada Dispositivo de Saída Memória UCP Ana, 5, 3 Se (5+3)/2>=6 aprovado Senão reprovado Ana, 4,reprovado Tipos de Linguagens de Programação ◦ 1 - Totalmente codificadas em binário (0´s e 1´s) ◦ 2 - Usa instruções simbólicas para representar os 0´s e 1´s ◦ 3 - Voltadas para facilitar o raciocínio humano 31 Linguagem Assembly ( Mnem ô nica ) LOAD R1, val1 LOAD R2, val2 ADD R1, R2 STORE R1, val2 Linguagem de M á quina 0010 0001 1110 0010 0010 1111 0001 0001 0010 0011 0001 1111 Linguagem de Alto N í vel val2 = val1+val2 Baixo Nível Alto Nível (1) (2) (3) Problema da Torre de Hanói - Edouard Lucas em 1883 Seja a seguinte situação: deve-se mover todos os discos do primeiro eixo para o terceiro mantendo-se a ordem original em cada movimento, pode-se mover apenas um disco um disco nunca poderá ser sobreposto por outro maior 32 Passo 1: mova disco menor para terceiro eixo 33 Passo 2: mova disco médio para segundo eixo 34 Passo 3: mova disco menor para segundo eixo 35 Passo 4: mova disco maior para terceiro eixo 36 Passo 5: mova disco menor para primeiro eixo 37 Passo 6: mova disco médio para terceiro eixo 38 Passo 7: mova disco menor para terceiro eixo 39 Seqüência de passos completa: Para n discos têm-se 2n –1 movimentos Passo 1: mova disco menor para terceiro eixo 40 Passo 2: mova disco médio para segundo eixo Passo 3: mova disco menor para segundo eixo Passo 4: mova disco maior para terceiro eixo Passo 5: mova disco menor para primeiro eixo Passo 6: mova disco médio para terceiro eixo Passo 7: mova disco menor para terceiro eixo Algoritmo aprovação – Informa se o aluno foi aprovado ou reprovado, a partir das 2 notas obtidas Início 1. Obter as 2 notas do aluno; 2. Calcular a media; 3. Se Média do aluno <6 então 3.1 Informar que o aluno está REPROVADO; 4. Senão 3.2 Informar que o aluno está APROVADO; Fim. 41 Algoritmo aprovação – Repetição para todos os alunos Início 1. Repita 1.1 Obter as 2 notas do aluno; 1.2 Calcular a media; 1.3 Se Média do aluno <6 então 1.3.1 Informar que o aluno está REPROVADO; 1.4 Senão 1.4.1 Informar que o aluno está APROVADO; 2. Até último aluno; Fim. 42 Representação Algorítmica Fases Básicas da Construção de Algoritmos Programação Estruturada Introdução a uma Linguagem Algorítmica 43 Abrangência ◦ Apresentar os primeiros conceitos relacionados à construção de algoritmos estruturados. Importância ◦ Os conceitos discutidos formam a parte mais elementar de qualquer algoritmo. 44 Apresentar as principais formas de representar um algoritmo. Discutir as 3 fases para construção de algoritmos. Contextualizar a importância de Algoritmos Estruturados. Definir os seguintes conceitos: ◦ Identificadores e Palavras Reservadas ◦ Tipos de Dados ◦ Variável e Constante ◦ Expressões ◦ Operadores 45 46 Como representar um algoritmo? Algoritmos podem ser representados, dentre outras maneiras, por: ◦ DESCRIÇÃO NARRATIVA Utiliza uma linguagem de escrita natural para descrever algoritmos. ◦ FLUXOGRAMA (DIAGRAMA DE MÓDULOS) Utiliza uma linguagem de representação gráfica para descrever algoritmos. ◦ LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO) Utiliza uma linguagem de escrita artificial para descrever algoritmos. 47 48 Exemplo: Algoritmo para calcular e mostrar o dobro de um numero 50 Exemplo: Algoritmo para converter uma temperatura fahrenheit em tempertura celsius Descrição narrativa do algoritmo Fahrenheit- Celsius: solicite a temperatura em Fahrenheit; transforme a temperatura em Fahrenheit para Celsius; informe a temperatura em Celsius. 51 Fluxograma (Diagrama de Módulos) ◦ Seus principais símbolos gráficos são: 52 = Início e final do fluxograma = Operação de entrada de dados = Operação de saída de dados em impressora = Operações de processamento = Decisão = Operação de saída de dados em vídeo = Seta de Fluxo de Dados = Conector de Fluxo de Dados Fluxograma do algoritmo Fahrenheit-Celsius 53 Início Fahrenheit Celsius = 5/9 * (Fahrenheit – 32) Celsius Fim Início do algoritmo Entrada da temperatura (F) Cálculo da temperatura (C) Apresentação do resultado Fim do algoritmo Linguagem algorítmica (pseudo-código) ◦ A forma geral de um algoritmo em pseudo-código: Algoritmo <nome_do_algoritmo> [<declaração_de_variáveis>] Início <corpo_do_algoritmo> Fim. 54 LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO) ◦ Onde: Algoritmo Indica o início da definição do algoritmo. <nome_do_algoritmo> Nome dado ao algoritmo para distingui-lo dos demais. [<declaração_de_variáveis>] Parte opcional onde são declaradas as variáveis usadas no algoritmo e, eventualmente, nos sub-algoritmos(partes deum algoritmo). 55 LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO) ◦ Onde: [<subalgoritmos>] Parte opcional onde são definidos os sub-algoritmos(quebra do algoritmo em partes:modularização). Início Palavra que delimita o início do corpo do algoritmo. <corpo do algoritmo> Conjunto de instruções do algoritmo [ chamada dos subalgoritmos] Fim Palavra que delimita o término do corpo do algoritmo. 56 Pseudo-código do algoritmoFahrenheit_Celsius Algoritmo Fahrenheit_Celsius Fahrenheit, Celsius:real; Início Ler (Fahrenheit); Celsius 5/9 * (Fahrenheit – 32); Escrever (Celsius); Fim 57 Ling. Algorítmica Algoritmo Fahrenheit_Celsius Real: Fahrenheit, Celsius; Início Ler (Fahrenheit); Celsius 5/9 * (Fahrenheit – 32); Escrever (Celsius); Fim 58 Fluxograma Desc. Narrativa Solicite a temperatura em Fahrenheit. Transforme de Fahrenheit para Celsius. Informe a temperatura em Celsius. Início Fahrenheit Celsius = 5/9 * (Fahrenheit – 32) Celsius Fim 59 Vantagens Desvantagens Descrição Narrativa O português é bastante conhecido por nós. Imprecisão. Pouca confiabilidade (a imprecisão acarreta a desconfiança). Extensão (normalmente, escreve-se muito para dizer pouca coisa). Fluxograma Padrão mundial. Ferramenta bem conhecida. Figuras dizem muito mais que palavras. Complica-se à medida que o algoritmo cresce. Pouca atenção aos dados, não oferecendo recursos para declará-los. Linguagem Algorítmica Independência de linguagem de programação. Usa o português como base. Define-se melhor quais e como os dados vão estar estruturados. Passagem quase imediata do algoritmo para uma linguagem de programação qualquer. Exige a definição de uma linguagem não real para trabalho. Não é padronizada. Uma boa prática para construir algoritmos é dividir o problema em 3 fases (Entrada, Processamento e Saída). ◦ Lembra-se da Arquitetura de Von Newman ? ◦ ENTRADA: São os dados de entrada do algoritmo. ◦ PROCESSAMENTO: São os procedimentos utilizados para chegar ao resultado final. ◦ SAÍDA: São os dados já processados. 60 Entrada Processamento Saída No algoritmo Fahrenheit-Celsius temos: ◦ ENTRADA: Temperatura em Fahrenheit ◦ PROCESSAMENTO: Celsius = 5/9 *(Fahrenheit – 32) ◦ SAÍDA: Temperatura em Celsius Num algoritmo para calcular a área de um triângulo temos: ◦ ENTRADA: Base e Altura do triângulo ◦ PROCESSAMENTO: Área = (Base * Altura)/2 ◦ SAÍDA: Área 61 62 Dividir o problema em Entrada, Processamento e Saída irá ajudá-lo a ordenar corretamente as instruções do seus algoritmos. 63 Por isso, antes de construir um algoritmo, pare para pensar e identificar: Que dados preciso para começar? – Entrada Quais são os cálculos e decisões? – Processamento Que dados devem ser exibidos? – Saída Identifique a entrada, o processamento e a saída dos problemas abaixo: 1. Calcular e exibir a média ponderada de 2 notas dadas. (nota1= peso 4 e nota2= peso 6) 2. Reajustar um salário em 7,75%. 3. Calcular o desconto de 23% sobre o preço de um produto. 4. Dada uma taxa de câmbio, transformar um valor em Dólar para Reais. 5. Dada uma taxa de câmbio, transformar um valor em Reais para Dólar. 64 1. Calcular e exibir a média ponderada de 2 notas dadas. (nota1= peso 6 e nota2= peso 4) ◦ ENTRADA: nota1 e nota2 ◦ PROCESSAMENTO: médiaP=((nota1 * 6)+(nota2 * 4))/(6+4) ◦ SAÍDA: médiaP 65 2. Reajustar um salário em 7,75%. ◦ ENTRADA: salário ◦ PROCESSAMENTO: salárioR = salário+(salário*0,0775 ou 7,75/100) ◦ SAÍDA: salárioR 3. Calcular o desconto de 23% sobre o preço de um produto. ◦ ENTRADA: preço ◦ PROCESSAMENTO: desconto = preço*0,23(ou 23/100) ◦ SAÍDA: desconto 66 4. Dada uma taxa de câmbio, transformar um valor em Dólar para Reais. ◦ ENTRADA: câmbio e dólar ◦ PROCESSAMENTO: real = dólar * câmbio ◦ SAÍDA: real 5. Dada uma taxa de câmbio, transformar um valor em Reais para Dólar. ◦ ENTRADA: câmbio e reais ◦ PROCESSAMENTO: dólar = reais/câmbio ◦ SAÍDA: dólar 67 68 Um problema! Nos primórdios da programação os programas eram desenvolvidos de forma intuitiva. Neste tipo de abordagem era comum o uso de desvios incondicionais (vá para/go to) para codificação das soluções. Porém a abordagem intuitiva falha quando os programas são grandes e complicados. 69 Algoritmo UmExemploNãoEstruturado; Início Escreva( “Início do programa”); Vá Para Marca {ou GOTO Marca} //Isso nunca será executado! Escreva( “Meio do programa”); Marca {continua a partir daqui} Escreva (“Fim do programa”); Fim. 70 desvio incondicional A saída deste Algoritmo é : Início do programa Fim do programa E o meio do programa? 71 A solução! Nos anos 70 surgiu a programação estruturada como solução destes problemas. Programação estruturada (Algoritmo Estruturado) “É a arte ou técnica de construir e formular algoritmos de forma sistemática ". Niklaus Wirth (Pai do PASCAL) Objetivos: ◦ Facilitar a escrita, leitura e compreensão dos programas. ◦ Permitir a verificação/testes a priori dos programas. ◦ Facilitar a manutenção dos programas. ◦ Possibilitar o desenvolvimento em equipe. ◦ Reduzir a complexidade. 72 Conceitos básicos: ◦ Identificadores e Palavras Reservadas ◦ Tipos de Dados ◦ Variável e Constante ◦ Expressões ◦ Operadores ◦ Sintaxe e Semântica ◦ Instruções Primitivas ◦ Estrutura de seqüência ◦ Estruturas de Decisão ◦ Estruturas de Repetição 73 Serão estudados neste Tema Serão estudados nos próximas Temas Identificadores: ◦ São nomes únicos definidos pelos programadores para identificar/distinguir os elementos de um algoritmo. Palavras Reservadas ◦ São instruções primitivas que têm significados pré- determinados e fazem parte da estrutura de qualquer linguagem de programação. 74 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 a uma instrução do algoritmo. ◦ Devem ser significativos. ◦ Não podem ser repetidos dentro de um mesmo algoritmo/sub-algoritmo. 75 Identifique os erros e reescreva os identificadores abaixo: ◦ vm ◦ 13salário ◦ salário$ ◦ salário_mínimo ◦ salário+reajuste ◦ novoSalário ◦ fumante? ◦ preço médio ◦ %desconto ◦ km/h 76 Identifique os erros e reescreva os identificadores abaixo: ◦ vm sem significado valor_médio ◦ 13salário não começa com caractere alfabético salário13 ◦ salário$ usa caractere especial salário ◦ salário_mínimo correto ◦ salário+reajuste usa caractere especial salário_reajustado ◦ novoSalário correto ◦ fumante? usa caractere especial fumante ◦ preço médio tem espaço em branco preço_médio ◦ %desconto não começa com caractere alfabético percentual_desconto ◦ km/h - usa caractere especial km_por_hora 77 As fases de Entrada, Processamento e Saída podem manipular vários tipos primitivos de dados, a saber: ◦ Obs: Um Caractere SEMPRE deve estar entre “ ” EX: “A”, “Fone 3333-33333”, “1”, 78 Tipo Primitivo Descrição Inteiro Representa o conjunto de números inteiros Real Representa o conjunto de números reais Caracter Representa um ou mais caracteresdo teclado. Lógico valor lógico (V ou F).Representa um Classifique os dados de acordo com o seu tipo, sendo (I = Inteiro, R = Real, C = Caractere e L = Lógico): a( ) 0 b( ) + 36 c( ) 0,3257 d( ) F e( ) 1 f( ) “F” g( ) “+3257” h( ) -1 i ( ) 0,0 j( ) - 0,001 k( ) “-0,0” l ( ) “.F.” m( ) “o” n( ) + 0,05 o( ) “.V.” p( ) 7/2 q( ) 32 r( ) + 3257 s( ) V t ( ) -32 u( ) “A” v( ) “abc” x( ) -1,9E123 z( ) “0” 79 Classifique os dados de acordo com o seu tipo, sendo (I = Inteiro, R = Real, C = Caractere e L = Lógico): a( I ) 0 b( I ) + 36 c(R) 0,3257 d(L) F e( I ) 1 f(C) “F” g(C) “+3257” h( I ) -1 i (R) 0,0 j(R) - 0,001 k(C) “-0,0” l (C) “.F.” m(C) “o” n(R) + 0,05 o(C) “.V.” p(R) 7/2 q( I ) 32 r( I ) + 3257 s(L) V t ( I ) -32 u(C) “A” v(C) “abc” x(R) -1,9E123 z(C) “0” 80 Constante é um identificador que representa valores constantes, ou seja, que não variam no decorrer do algoritmo. ◦ Seu uso poupa tempo quando tem que alterar o seu valor no algoritmo. Ao trocar o valor de uma constante, todas as instruções que a usam irão manipular, automaticamente, o novo valor. 81 Variável é um endereço físico da memória principal, que é representado por um identificador que, ao longo do seu tempo de existência, pode armazenar vários conteúdos de um único tipo pré- determinado. 82 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 Simplificando... ◦ Considere que a memória principal do seu computador é um armário, onde cada gaveta é a uma variável. 83 Declaração de Constantes ◦ <nome da constante> = <valor>; ◦ • • • ◦ <nome da constante> = <valor>; Declaração de Variáveis ◦ <tipo de dado:><var1, ..., varN>; ◦ • • • ◦ <tipo de dado:><var1, ..., varN>; 84 Obs: Declarar as constantes antes das variáveis Exemplos corretos: CONST ◦ PI = 3.1416 ; ◦ MAX = 10 ; ◦ OK = V; ◦ País = “Brasil”; VAR ◦ notaMédia, Salário:real; ◦ contador:inteiro; ◦ achou:logico; ◦ nome, sexo:caractere; 85 Exemplos incorretos: CONST ◦ PI <- 3.1416 ; ◦ Km/h = 80 ; ◦ OK! = V; ◦ País Padrão = “Brasil” VAR ◦ Real: achou?, 13 Salário; ◦ Inteiro: #contador; ◦ Lógico: sobre nome; ◦ Caractere: primeira nota, masculino/feminino; 86 1) Escreva o tipo das variáveis abaixo: a) dólar b) sexo c) cpf d) nota e) idade f) fumante g) raça h) quantidade i) média j) escolaridade k) universitário 87 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 V 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 88 Use corretamente os parênteses! 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. 89 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 90 Atribuição: serve para atribuir um valor a uma variável. Operador de atribuição “ ” , “:=”, “=” ◦ EX: Nome “Alves”; (caracter) Idade 18;(inteiro) Casado F;(boleano ou lógico) Salário 500,50;(real) ◦ A expressão do lado direito do operador é avaliada e seu resultado é armazenado na variável à esquerda. Obs: A expressão deve retornar o mesmo tipo da variável ! 91 Aritméticos: são as operações aritméticas básicas 92 Operador Tipo Operação Prioridade - Unário Inversão do Sinal 1 + Unário Manutenção do Sinal 1 POT(x,y) Binário Potenciação 2 DIV 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 O rd e m p ri o ri d a d e Maior Menor Exemplos: 93 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 5 MOD 3 2 DIV Quociente da Divisão Inteira 5 DIV 3 1 POT(x,y) Potenciação POT (4,3) 64 + Manutenção do Sinal +- 4 - 4 - Inversão do Sinal -- 4 +4 Relacionais: são operadores binários (de mesma prioridade) que somente retornam os valores lógicos V ou F. ◦ Estes somente são usados para efetuar comparações, as quais só podem ser feitas entre dados do mesmo tipo. ◦ O resultado de uma comparação é sempre um valor lógico. 94 Operador Comparação > maior que < menor que >= maior ou igual <= menor ou igual = igual <> diferente Exemplos: 95 Operador Comparação Exemplo Resultado > maior que 4>3 V < menor que 4<3 F >= maior ou igual 4>=3 V <= menor ou igual 3<=3 V = igual 4=3 F <> diferente 4<>3 V Lógicos ou Booleanos: são usados para combinar expressões relacionais e lógicas. Também retornam como resultado valores lógicos V ou F. 96 Operador Tipo Operação Prioridade NÃO Unário Negação 1 E Binário Conjunção 2 OU Binário Disjunção 3 O rd e m p ri o ri d a d e Maior Menor Exemplos: 97 Operador Operação Exemplo Resultado OU Disjunção V ou F V E Conjunção V e F F NÃO Negação Não V F Ordem de prioridades Observações: ◦ Operadores de igual prioridade, execução da esquerda para direita (na ordem em que aparecem n expressão). ◦ Para alterar a ordem de prioridade, utilizar parênteses. 98 Operador Prioridade Aritméticos 1 Relacional 2 Lógico 3 O rd e m p ri o ri d a d e Maior Menor 1) indique qual o resultado o tipo que será obtido das seguintes expressões: a) 1 / 2 b) 1 DIV 2 c) 1 MOD 2 d) ( 200 DIV 10 ) MOD 4 e) POT(5,2) + 3 f) RAD(25)+19-23 g) 3,0* 5,0 +1 h) 1/4+2 i) 28,0/7+4 j) 3/6,0-7 99 2) Indique o resultado o tipo das seguintes expressões: a) 2 > 3 b) ( 6 < 8 ) OU ( 3 > 7 ) c) ((( 10 DIV 2 ) MOD 6 ) > 5 ) E ( 3 < ( 2 MOD 2 ) ) d) NÃO ( 2 < 3 ) 3) Escreva o comando de atribuição e resolva a expressão das seguintes fórmulas matemáticas. a) onde A= 2, B= 6, C = 3, D=4, E=8, F=4 b) onde X = 2 10 0 FE D C B A X X X X XXX Y 2 2 2 32 12 4)Para cada linha informar o valor da expressão e das variáveis. X 5; Y 1; Z 3; X 5 + Y * Z; Z X; Y Z ; Y = X ; Z X+Y/2**2; X Z; Z Y; X=Y; Z>X; Y<Z; 10 1 5) Se X possui o valor 15 e foram executadas as seguintes instruções: X X + 3; X X – 6; X X / 2; X 3 * X; X X-X+X*X/X Qual será o valor armazenado em X? 10 2 Referencias: Alem da bibliografia indicada, http://equipe.nce.ufrj.br/adriano/algoritmos/ apostila/algoritmos.htm
Compartilhar