Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
ECT1203 Linguagem de Programação 2012.2 Prof. Diego Rodrigues de Carvalho Profa. Idalmis Milián Sardina Prof. Luiz Eduardo Cunha Leite Prof. Marconi Câmara Rodrigues Aula 04 – Operadores e expressões Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia Hora de silenciar o celular Manter o celular sempre desligado/silencioso quando estiver em sala de aula Nunca atender o celular em sala de aula Revisão da aula anterior Variáveis: maneira mais simples de trabalhar com a memória. Declaração de variáveis: tipo identificador; Principais tipos: char (char nome;) int (int idade;) float (float peso;) Entrada de dados pelo teclado: cin >> variável; Saída de dados no monitor; cout << “texto”; Objetivo da aula Responder as seguintes perguntas: Aula passada eu aprendi como a memória funciona e como passar uma informação para ela e como mostrar uma informação que esteja nela... mas como eu faço para alterar uma informação que esteja na memória? O que acontece se eu misturar informações diferentes? Nova definição Atribuição: Além das constantes, como visto na aula passada, os operadores e variáveis também podem ser utilizados na atribuição. Atribuição Uma variável recebendo o valor de outra variável O compilador busca na memória a informação de uma variável e passa o valor para outra variável sem alterar o valor da primeira. Ex: var2 = var1; 03 var1 34 var2 03(var1) 13 ... ... 34(var2) Antes da atribuição Atribuição Uma variável recebendo o valor de outra variável O compilador busca na memória a informação de uma variável e passa o valor para outra variável sem alterar o valor da primeira. Ex: var2 = var1; 03 var1 34 var2 03(var1) 13 ... ... 34(var2) 13 Depois da atribuição Operadores Operadores tem como finalidade transformar uma informação em uma nova informação Operadores matemáticos Operadores de incremento/decremento Operadores lógicos e relacionais Operadores bit a bit Operador sizeof Operadores aritméticos Operador Ação - Subtração,menos unário + Adição * Multiplicação / Divisão % Móduloda divisão Os operações são feitas na precisão dos operandos. Atenção! Usar exemplo no Dev C++ 9 Code::Blocks Faça um programa que calcule a força aplicada em um corpo. Definição de força: é o produto da massa de um corpo pela sua aceleração. Code::Blocks Faça um programa que calcule a força aplicada em um corpo. Definição de força: é o produto da massa de um corpo pela sua aceleração. 12 massa 55 acel 148 forca 12(massa) 34.4 ... ... 55(acel) 9.8 ... ... 148(forca) Depois do usuário digitar os valores Code::Blocks Atribuição: forca = massa * acel; Passos do compilador: Quem é “massa”? Resposta: é o conteúdo da posição 12 da memória. Compilador vai na posição 12 da memória e substitui “massa” pelo conteúdo da memória. Mesma operação é feita com “acel” forca = 34.4 * 9.8; Executa o operador matemático (34.4*9.8 é 337.12) A constante é atribuída a variável “forca” 12 massa 55 acel 148 forca 12(massa) 34.4 ... ... 55(acel) 9.8 ... ... 148(forca) 337.12 Após a operação de atribuição Incremento e decremento Operador Ação ++ Soma 1 ao seu operando -- Subtrai 1 ao seu operando ++x; x = x + 1; é o mesmo que --x; x = x - 1; é o mesmo que X++; x--; Usar exemplo no Dev C++ 14 Code::Blocks Faça um programa que peça para o usuário digitar um número e em seguida mostre o próximo valor. Pergunta: Se mais de um operador estiver presente, qual deve ser executado primeiro? Exemplo: 6/2*(1+2) Pergunta: Se mais de um operador estiver presente, qual deve ser executado primeiro? Precedência dos operadores aritméticos Maisalta ++ -- * / % Maisbaixa +- Operadores do mesmo nível de precedência, em uma mesma linha, são avaliados da esquerda para a direita. Parânteses podem ser usados para forçar uma (ou mais) operação a ter precedência maior, assim como na matemática. Usar exemplo no Dev C++ 18 Code::Blocks Faça um programa que peça para o usuário digitar três valores x,y,z (ex: 6,2,4) e em seguida mostre: O resultado de: x*(y/z) O resultado de : (x*y)/z O resultado de : x*y/z Operadores aritméticos de atribuição Pode ser aplicado a todo operador binário. variável = variável operador expressão; variável operador = expressão; é o mesmo que i = i + 10; x = x * (y + 1); a = a – 120; i += 10; x *= y + 1; a -= 120; exemplos Usar exemplo no Dev C++ 20 Operadores lógicos e relacionais São baseados na idéia de verdadeiro e falso. VERDADEIRO = qualquer valor diferente de zero FALSO = zero As expressões que usam operdores relacionais ou lógicos devolvem zero para falso e 1 para verdadeiro. Relacional refere-se às relações entre os valores. Lógico refere-se a como essas relações podem ser conectadas. 21 Operadores lógicos e relacionais Operador Ação > Maior que >= Maior ou igual que < Menor que <= Menor ou igualque == Igual != Diferente Operador Ação && AND || OR ! NOT Relacionais Lógicos 22 Operadores lógicos AND = Será verdadeiro quando TODAS as condições forem verdadeiras. OR = Será verdadeiro quando pelo menos UMA condição for verdadeira. Operadores relacionais e lógicos ficarão mais claro quando estudarmos estruturas. Precedência dos operadores lógicos e relacionais São menores em precedência que os operadores aritméticos. 10 > 1 + 12 10 > (1 + 12) é avaliado como Maisalta ! > >= < <= == != && Maisbaixa || Usar exemplo no Dev C++ 24 Operadores bit a bit São aplicados aos bits individuais dos operandos. Operação bit a bit refere-se a testar, atribuir ou deslocar os bits de tipos de dados char e int. Operador Ação & AND | OR ^ XOR (OR exclusivo) ~ Complemento de um >> Deslocamentoà esquerda << Deslocamento à direita 25 Operador sizeof Para calcular o tamanho de um tipo, deve-se usar parênteses. É um operador que retorna o tamanho (em bytes) de uma variável ou especificados de tipo. float f; cout << sizeof f << ‘\n’; cout << sizeof(int) << ‘\n’; exemplo 26 Conversão de tipos em expressões Quando operandos de tipos diferentes são misturados em uma expressão, os valores são convertidos no tipo do maior operando. double float int char prioridade de conversão 27 Conversão de tipos em expressões 28 Cast (operador de molde) Cast é uma conversão explícita de tipo. sintaxe (tipo) expressão int x = 13; float y = (float) x/2; exemplo 29 Conversão de tipos em atribuições Quando se converte de: inteiros para caracteres inteiros longos para inteiros inteiros para inteiros curtos perde-se a informação. Quando se faz conversão envolvendo números em ponto flutuante, pode se perder precisão. Regra: O valor do lado direito de uma atribuição é convertido no tipo do lado esquerdo. Usar exemplos 30 Objetivo da aula Responder as seguintes perguntas: Aula passada eu aprendi como a memória funciona e como passar uma informação para ela e como mostrar uma informação que esteja nela... mas como eu faço para alterar uma informação que esteja na memória? O que acontece se eu misturar informações diferentes?