Aula de hoje. Expressões. Expressões. Expressões. Exemplos. Programa em Python. SCC Introdução à Programação para Engenharias

Documentos relacionados
Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Aula de hoje. Códigos numéricos. Códigos binários. Armazenamento de dados. Armazenamento de dados. Armazenamento de dados

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

7 Operadores e Expressões

C Operadores e Expressões

Capítulo 7. Expressões e Sentenças de Atribuição

Linguagens de Programação. Marco A L Barbosa

Capítulo 2 Operadores. A função scanf()

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.

Aula de hoje. Comandos. Comandos simples. Comandos. Comandos de controle. Bloco de comandos. SCC Introdução à Programação para Engenharias

Linguagens de Programação I

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

Linguagem C: Introdução

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO

Operadores e Expressões: bit-a-bit e especiais

quadrado(a)*0.5 -((a+2)*f(x,(1.0+n)/x)) Arquitectura de Computadores (2008/2009) - Linguagem C - Expressões 2

Aula de hoje. Funções. Introdução. Função. Definição de funções. Exemplo. SCC Introdução à Programação para Engenharias

Introdução à Linguagem C++

Linguagem C: Variáveis e Operadores. Prof. Leonardo Barreto Campos 1

Introdução a Programação

Introdução à Computação MAC0110

Linguagem C Operadora

Operadores. Tipo de operadores. Aritméticos. Relacionais. Lógicos. Bit a bit. Cálculos aritméticos: soma, subtracção, multiplicação, divisão, etc.

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Linguagem C Operadores

01/08/2011. Tipos de dados Numéricos Alfanuméricos Lógicos. Numéricos. Tipos de dados. Dados Numéricos Inteiros. Dados Numéricos Reais.

Programação com Acesso a BD. Programação com OO Acesso em Java

INFORMÁTICA APLICADA AULA 03 LINGUAGEM DE PROGRAMAÇÃO C++

Revisão C++ - Parte 1

Java 2 Standard Edition Tipos, literais, operadores e controle de fluxo

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA. DIM0320 Algoritmos e Programação de Computadores

Ambientação com a Sintaxe de Java: parte 1

TÉCNICO DE INFORMÁTICA - SISTEMAS

Aula de hoje. Listas. Sequências especiais. Introdução. Listas. Sequências. SCC Introdução à Programação para Engenharias

Fábio Rodrigues / Israel Lucania

Estrutura do programa

PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

Python - Variáveis e expressões

Introdução à Programação I

Aula 7: Portas Lógicas: AND, OR, NOT, XOR, NAND e NOR

Aula 4 Expressões e Operadores Cleverton Hentz

Introdução à Programação em C (II)

Paradigmas de Linguagens

Capítulo 04 : Sistemas Numéricos

Curso de PHP. FATEC - Jundiaí TIPOS DE VARIÁVEIS

LÓGICA DIGITAL - CONCEITOS. * Constantes. * Expressões: Aritméticas; Lógicas; Tabela Verdade; Relacionais; Booleanas. * Portas Lógicas.

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Introdução à Programação

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Curso básico de Python para estudantes de Física

PHP: <?php echo("hello World");?> Printa Hello World na página do navegador, mais fácil do que no Java.

Linguagem C. Prof.ª Márcia Jani Cícero

Introdução à Linguagem C Variáveis e Expressões

Programação Aplicada à Engenharia

Aula 4 Estruturas Condicionais

Linguagem C (estruturas condicionais)

Ambiente de desenvolvimento

Operações e Expressões

Algoritmos: Conceitos Fundamentais. Slides de autoria de Rosely Sanches e Simone Senger de Souza

Representação de Dados

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

Programação Básica em Arduino Aula 2

Algoritmos RESUMO - LINGUAGEM C

Sistemas de Numeração. Exemplos de Sistemas de Numeração (1) Exemplos de Sistemas de Numeração (2) Sistemas de Numeração

MsC. João Maria MsC. Liviane Melo

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Introdução à Linguagem C

Algoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa:

Noções de algoritmos - Aula 1

Programação de Computadores:

1/ 23. Computação 1 - Python Aula 1 - Prática: Primeiros Passos - Função

Módulo 1. Introdução. AEDS I C++ (Rone Ilídio)

MANUTENÇÃO DE COMPUTADORES SISTEMAS NUMÉRICOS

ARQUITECTURA DE COMPUTADORES

Linguagens de Programação Aula 13

Nesta aula... Iteração indefinida. 1 Decisões em Python. 2 Funções lógicas. 3 Recursão. 4 Iteração. 5 Ciclo for ou while?

Variáveis, Tipos de Dados e Operadores

EXPRESSÕES ARITMÉTICAS PARTE 1

Introdução a Programação de Jogos

JSP Prof. Daniela Pires. VARIAVEIS... 2 Tipos de Dados... 2 String Float Integer Boolean... 3

11 - Estrutura de um programa em C

Aula 12- Variáveis e valores reais

Introdução à Programação em Java Constantes, expressões e variáveis

Variável. Expressões. Atribuição. Tipos básicos Declaração. Aritméticas Lógicas. Professor Leandro Augusto Frata Fernandes

Módulo Lógica Programação com aplicações em Java. Projeto khouse Profissionalizante Profª Larissa Brandão

CAPÍTULO 5 LINGUAGEM LEGAL E EXTENSÕES PROPOSTAS

Orientação a Objetos e Java

Programação: Vetores

Linguagens de Programação

Algoritmos I Aula 13 Linguagem de Programação Java

Capítulo 4: Condicionais

Variáveis primitivas e Controle de fluxo

Expressões, Atribuições, Entrada e Saída. Givanaldo Rocha

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

Transcrição:

SCC 124 - Introdução à Programação para Engenharias Expressões Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto Menezes Aula de hoje Expressões Aritméticos Relacionais Bitwise Atribuição Mistura de tipos 1 2 Expressões Frequentemente usadas em programas escritos em Python São compostas por operandos e operadores Ex.: x = a + 5; Operando Constante literal, variável, expressão ou função Ex.: a, 2, soma(x),... Representados por símbolos e palavras chave especiais, manipulam operandos Expressões Construídas de acordo com a sintaxe da linguagem Calculam valores que podem: Ser atribuídos a variáveis Controlar fluxo de execução de um programa Valor e tipo do resultado Dependem do operador e do tipo dos operandos utilizados 3 4 Exemplos Programa em Python >>> 3 + 4 7 >>> 3 * 4 12 >>> x = 4 * 3 >>> x 12 >>> x = - 7 + 5 * 3 / 4 - (8 * 3 + 2) # Cálculo do valor de uma expressão val = 0 while (val < 16): val = val * 3-8 + 14 print ('Valor da expressão eh: %d\n' %(val)) 5 6 1

Mesma programa em C /* Calculo do valor de uma expressao*/ # include <stdio.h> main (){ int valor; valor = 0; while (valor < 16){ valor = valor + 4; } printf ( Valor da expressao eh: %d\n, valor); } Aritméticos Relacionais Bitwise Atribuição 7 8 Ordem como uma expressão é avaliada é importante Ex.: x + y / 100 Ordem de avaliação pode ser definida explicitamente Ex.: (x + y) / 100 da linguagem Python possuem uma ordem de precedência Precedência Informa ordem de aplicação de operadores na ausência de parênteses Operador com precedência mais alta é aplicado antes Ex.: x = 4 * 2-3 9 10 Precedência de operadores Menor Maior Operador Descrição lambda Expressão Lambda if else Expressão Condicional or Booleano OR and Booleano AND not x Booleano NOT in, not in, is, is not, <, <=, >, >=,!=, == Comparações, incluindo testes de pertinência e testes de identidade Bitwise OR ^ Bitwise XOR & Bitwise AND <<, >> Shifts +, - Adição e subtração *, @, /, //, % Multiplicação, multiiplicação de matrizes divisão, resto +x, -x, ~x Positivo, negativo, bitwise NOT ** Exponenciação await x Expressão await x[index], x[index:index], x(arguments...), x.attribute Subscrito, fatiamento (slicing), chamada, referência a atributo (expressions...), [expressions...], {key: value...}, {expressions...} Exibir binding ou tuple, exibir lista, exibir dictionário, exibir conjunto na mesma linha têm a mesma precedência Associatividade binários são avaliados da esquerda para a direita Exceto os de atribuição Avaliados da direita para a esquerda 11 12 2

Exemplo Expressão em Python para a fórmula: b x = b 2 4ac 2a x = (-b + math.sqrt (b*b - 4 *a*c)) / (2*a) Exercício Escrever programa em Python para definir valor das expressões abaixo: a) y = 7 + 4 % 2-5 * 4 b) x = 7 y = (x + 3) * 2-7 % 2 * (5-2) 13 14 aritméticos binários Operador Uso Descrição + op1 + op2 Adiciona op1 e op2 - op1 - op2 Subtrai op2 de op1 * op1 * op2 Multiplica op1 por op2 / op1 / op2 Divide op1 por op2 // op1 // op2 Divide op1 por op2 e trunca % op1 % op2 Calcula o resto op1 / op2 @ op1 @ op2 Multiplica op1 por mop2* de divisão Python tem dois operadores de divisão Divisão / Resultado é um valor real Não importa se a divisão for exata Exemplos: 9/4 = 2.5 8/4 = 2.0 Divisão e truncamento // * Ainda não está implementado na linguagem Python 15 16 Divisão e truncamento (//) Operador de resto (%) Parte fracionária é descartada (truncamento) Se os dois operandos forem do tipo inteiro Resultado é do tipo inteiro Ex.: 9 // 4 = 2 Se pelo menos um dos operandos for do tipo ponto flutuante Os argumentos são primeiro convertidos para o tipo de maior precisão (neste caso, float) Resultado é do tipo ponto flutuante Ex. 9.0 // 4 = 9 // 4.0 = 9.0 // 4.0 = 2.0 17 18 Resto da divisão de um valor por outro Exemplos: 9 % 4 = 9.0 % 4 = 7 % -4 = -7 % 4 = Útil para testar se um número é divisível por um outro (resto da divisão é igual a zero) Resultado possui mesmo sinal do segundo operando Valor absoluto do resultado é menor que o valor absoluto do segundo operando 3

Operador de resto (%) Operador de resto (%) Resto da divisão de um valor por outro Exemplos: 9 % 4 = 1 9.0 % 4 = 1.0 7 % -4 = -1-7 % 4 = 1 Útil para testar se um número é divisível por um outro (resto da divisão é igual a zero) Resultado possui mesmo sinal do segundo operando Valor absoluto do resultado é menor que o valor absoluto do segundo operando 19 Pode ser usado para extrair os N valores menos significativos Exemplos: Base 10 x = y % 10 x = y % 100 Base 2 x = y % 0b10 x = y % 0b100 20 relacionais Comparam dois valores e retornam a relação entre eles Valor Booleano Operador Uso Descrição == op1 == op2 op1 é igual a op2!= op1!= op2 op1 é diferente de op2 > op1 > op2 op1 é maior que op2 < op1 < op2 op1 é menor que op2 >= op1 >= op2 op1 é maior ou igual a op2 <= op1 <= op2 op1 é menor ou igual a op2 relacionais Retornam dois valores True ou False Qualquer valor 0 é interpretado como True Pode ser útil, mas deve ser evitado Valores especiais do tipo bool (não são strings) Não confundir = (atribuição) com == (igual) Um dos erros mais comuns Interpretador Python geralmente não detecta esses erros 21 22 lógicos Utilizam operandos Booleanos Retornam resultado Booleano Operador Uso Retorna True se not not op1 op1 é falso and op1 and op2 op1 e op2 são ambos verdade, avalia condicionalmente op2 or op1 or op2 op1 ou op2 é verdade, avalia condicionalmente op2 Precedência Maior Menor lógicos Como funcionam Operandos op1 op2 not (op2) and or False False True False False False True False False True True False True False True True True False True True 23 24 4

lógicos Avaliação preguiçosa Operandos de um operador lógico são avaliados da esquerda para a direita Avaliação termina assim que a resposta puder ser determinada op1 and op2 op1 or op2 bitwise Permite manipular bits dos dados Operador Uso Descrição >> op1 >> op2 move op2 posições p/ direita os bits de op1 << op1 << op2 move op2 posições p/ esquerda os bits de op1 & op1 & op2 bitwise and op1 op2 bitwise or ^ op1 ^ op2 bitwise xor (ou exclusivo) ~ ~ op2 complemento a 1 25 26 bitwise Como funcionam bit a bit bitwise Como funcionam para um byte Operandos op1 op2 ~op2 & ^ 0 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 0 1 1 0 Operador Exemplo Resultado >> 11110011 >> 2 << 11110011 << 1 & 10001001 & 00000101 10001001 00000101 ^ 10001001 ^ 00000101 ~ ~11110000 27 28 bitwise Como funcionam para um byte Operador Exemplo Resultado >> 11110011 >> 2 00111100 << 11110011 << 1 11100110 & 10001001 & 00000101 00000001 10001001 00000101 10001101 ^ 10001001 ^ 00000101 10001100 ~ ~11110000 00001111 bitwise Exemplo Calcular o valor da expressão: 13 >> 1; /* Usar codificação com 8 bits */ 29 30 5

bitwise Exemplo Calcular o valor da expressão: 13 >> 1; /* Usar codificação com 8 bits */ Resposta: Representação binária do valor 13: 00001101 Movendo 00001101 uma posição para a direita: 00000110 = 6 Equivale a divisão truncada por 2 Operador (comando) de atribuição Atribuição de valores a variáveis é construída na forma de uma expressão Tipo da variável será o tipo do operando Ex.: resultado = 4 Variável será do tipo int >>> n = 3 >>> n 3 >>> n = 2.0 >>> n 2.0 31 32 Operador de atribuição Permite atribuir valores a mais de uma variável simultaneamente Operador de atribuição Permite atribuir valores a mais de uma variável simultaneamente >>> a, b, c = 3, 4, 5 >>> a >>> b >>> c >>> x = y = z = 0 >>> x >>> y >>> z >>> a, b, c = 3, 4, 5 >>> a 3 >>> b 4 >>> c 5 >>> x = y = z = 0 >>> x 0 >>> y 0 >>> z 0 33 34 Operador de atribuição Mistura de tipos Python permite a combinação da atribuição com operadores binários Atribuição com atalho total += 3 total = total + 3 Exemplos: valor+= 3 res -= 2 x /= 10 y //= 8 z *= 2 Expressão pode incluir valores de tipos numéricos diferentes Operandos numéricos são convertidos para um tipo comum Maior precisão Resultado será do tipo de maior precisão Garante que o resultado da operação seja tão preciso quando possível 35 36 6

Exemplo com operandos de tipos diferentes geram resultado com o tipo de maior precisão >>> 3 * 3.75 / 1.5 7.5 >>> 7.0 / 2 3.5 Ex.: inteiro para ponto flutuante Exemplo Mistura de tipos >>> n = 3 >>> x = 2.0 >>> r1 = n + 1 >>> r2 = n + 1.0 >>> r3 = x + 1 >>> r4 = x + 2.0 >>> r1 >>> r2 >>> r3 >>> r4 37 38 Exemplo Mistura de tipos >>> n = 3 >>> x = 2.0 >>> r1 = n + 1 >>> r2 = n + 1.0 >>> r3 = x + 1 >>> r4 = x + 2.0 >>> r1 4 >>> r2 4.0 >>> r3 3.0 >>> r4 4.0 Conversão de Valores Python distingue entre número e strings Mistura desses tipos em uma expressão provoca erro Python possui operadores para converter números em strings E vice-versa 39 40 Conversão de Valores Conversão de Valores Conversão de um valor numérico no string correspondente str () Converção de um string de números no valor numérico correspondente int () float () eval () Avalia string como uma expressão, não da para saber tipo do resultado (evitar) 41 >>> 2 + 3.8 Traceback (most recent call last): File "<stdin>", line 1, in? IndexError: unsupported operand type(s) for +: ínt and str >>> 2 + eval ( 3.8 ) 5.8 >>> str (2 + eval ( 3.8 )) 5.8 >>> n = int ( 20 ) >>> n 20 >>> a = float ( 4.25 ) >>> a 4.25 42 7

Exercício Escreva um programa em Python que verifica se um número é primo Exercício Escrever um programa em Python para calcular a média final do aluno utilizando os critérios discutidos para esta disciplina 43 44 Conclusão Expressões Aritméticos Booleanos Bitwise Atribuição Conversão de tipos Perguntas 45 46 8