5. Expressões aritméticas

Documentos relacionados
Inteligência Artificial

Introdução a Algoritmos Parte 04

ALGORITMOS E PROGRAMAÇÃO. Andreza Leite Andreza.leite@univasf.edu.br

Simulado de Linguagem de Programação Java

Expressões Lógicas e Aritméticas. Professora Kátia Adriana Alves Leite de Barros katia.barros@pitagoras.com.br

2ª Lista de Exercícios

ALGORITMOS MEMÓRIA, VARIÁVEIS E CONSTANTES, OPERADORES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Introdução à Lógica de Programação

Lista de Exercícios 1

Algoritmos com VisuAlg

Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

Aula 11 Introdução ao Pseudocódigo. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

Programação Elementar de Computadores Jurandy Soares

LINEARIZAÇÃO DE GRÁFICOS

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Algoritmos e Programação de Computadores

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

Capítulo 2: Introdução à Linguagem C

FESP FACULDADE DE ENGENHARIA SÃO PAULO DISCIPLINA BP1: PROCESSAMENTO DE DADOS

tipo e tamanho e com os "mesmos" elementos do vetor A, ou seja, B[i] = A[i].

Conversão Visualg à C++ Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Lógica de Programação PROF. FLÁVIO IZO

Aula 3 Desvio Condicional

UNIMINAS Só é necessário o armazenamento de: Sinal da mantissa: - (menos). Valor da mantissa: Sinal do expoente: -(na realidade, háh

Algoritmo e Programação

Introdução à Informática

Componentes da linguagem C++

Capítulo 2: Introdução à Linguagem C

A lei dos senos. Na Aula 42 vimos que a Lei dos co-senos é. a 2 = b 2 + c 2-2bc cos Â

Introdução a C Tipos de Dados Variáveis Operadores

Conteúdo programático

ALP Algoritmos e Programação

Aula 11: Desvios e Laços

Laboratório de Programação I

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO. Prof. Dr. Daniel Caetano

Lista de Exercícios 5: Soluções Teoria dos Conjuntos

Linguagem algorítmica: Portugol

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

BC-0505 Processamento da Informação

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

Fundamentos de Programação. Diagrama de blocos

Jaime Evaristo Sérgio Crespo. Aprendendo a Programar Programando numa Linguagem Algorítmica Executável (ILA)

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

ENG1000 Introdução à Engenharia

Tipos de problemas de programação inteira (PI) Programação Inteira. Abordagem para solução de problemas de PI. Programação inteira

Comandos de Desvio 1

COBRANÇA BANCÁRIA CAIXA

Programas simples em C

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP

PROFESSOR: Guilherme Franklin Lauxen Neto

AULA 12 FUNÇÕES Disciplina: Algoritmos e POO Professora: Alba Lopes alba.lopes@ifrn.edu.br

Bacharelado em Ciência e Tecnologia Processamento da Informação. Módulos Parte III

Matemática Discreta - 03

Lista de Exercícios 04 Estruturas de Dados Homogêneas - Vetores

SITUAÇÃO DE APRENDIZAGEM 4 PROBABILIDADE E GEOMETRIA

Unidade 1: O Computador

GEOMETRIA. sólidos geométricos, regiões planas e contornos PRISMAS SÓLIDOS GEOMÉTRICOS REGIÕES PLANAS CONTORNOS

Seu pé direito nas melhores Faculdades

1 Exercícios de Aplicações da Integral

Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof. Fábio Nelson.

OPERAÇÕES COM FRAÇÕES

2 Segmentação de imagens e Componentes conexas

Estruturas de Repetição

Universidade Federal de Ouro Preto UFOP. Instituto de Ciências Exatas e Biológicas ICEB. Departamento de Computação DECOM

Autoria: Fernanda Maria Villela Reis Orientadora: Tereza G. Kirner Coordenador do Projeto: Claudio Kirner. Projeto AIPRA (Processo CNPq /2010-2)

Engenharia de Software II

ALGORITMOS E PROGRAMAÇÃO Estruturas de repetição. Andreza Leite andreza.leite@univasf.edu.br

2.1 - Triângulo Equilátero: é todo triângulo que apresenta os três lados com a mesma medida. Nesse caso dizemos que os três lados são congruentes.

Aula 6 Propagação de erros

PC Fundamentos Revisão 4

ENGENHARIA DE SOFTWARE

ESTRUTURAS DE DADOS II MSc. Daniele Carvalho Oliveira

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

CURSO BÁSICO DE PROGRAMAÇÃO AULA 7

Desenvolvido por: Juarez A. Muylaert Filho - jamf@estacio.br Andréa T. Medeiros - andrea@iprj.uerj.br Adriana S. Spallanzani - spallanzani@uol.com.

CURSO TÉCNICO DE INFORMÁTICA

Linguagem de Programação I

Universidade Federal de Goiás Campus Catalão Departamento de Matemática

Estruturas de Repetição Parte II PARA-ATÉ

I. Conjunto Elemento Pertinência

Conteúdo programático por disciplina Matemática 6 o ano

Introdução aos Computadores Introdução à Ciência de Computadores Outubro / 16

Programação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009

MC102 Algoritmos e Programação de Computadores 2ª Aula Programa, entrada e saída de dados

Representação de Circuitos Lógicos

Algoritmos Computacionais ( Programas )

Carlos de Salles Soares Neto Segundas e Quartas, 17h40 às 19h10

TESTES SOCIOMÉTRICOS

Matrizes. matriz de 2 linhas e 2 colunas. matriz de 3 linhas e 3 colunas. matriz de 3 linhas e 1 coluna. matriz de 1 linha e 4 colunas.

Introdução à Programação. Funções e Procedimentos. Prof. José Honorato F. Nunes honoratonunes@gmail.com

INTRODUÇÃO AOS SISTEMAS LÓGICOS

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Usando potências de 10

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

Porquê PADRÕES? - Exemplo

FACULDADE DE ENGENHARIA SÃO PAULO PROCESSAMENTO DE DADOS - BP1 LINGUAGEM C++ BUILDER PARTE II

Transcrição:

5. Expressões aritméticas DIM0320 2015.1 DIM0320 5. Expressões aritméticas 2015.1 1 / 37

Sumário 1 Operadores inteiros 2 Precedências 3 Alteração de prioridades 4 Operadores reais 5 Expressões de tipo misto 6 Exercícios DIM0320 5. Expressões aritméticas 2015.1 2 / 37

1 Operadores inteiros 2 Precedências 3 Alteração de prioridades 4 Operadores reais 5 Expressões de tipo misto 6 Exercícios DIM0320 5. Expressões aritméticas 2015.1 3 / 37

Operadores inteiros Operadores aritméticos Operações que podem ser executadas sobre números. Lista Suponha que x seja uma variável de tipo inteiro. Definição (Resto/divisão inteira.) $ a, b Z 2, q, r N 2,$ Operador Exemplos +, - -3, +x \ 5 \ 2 +,-, * 4 + 8 * 9 mod ou % 3 % 2 a = q b + r, r < b Resto Divisão inteira/euclidiana r = a % b q = a \ b DIM0320 5. Expressões aritméticas 2015.1 4 / 37

Expressões Expressões inteiras válidas Cada operador atua sobre elementos do mesmo tipo. É preciso variáveis e constantes do mesmo tipo (inteiro). Tipo dos operadores vistos: Binários (\, %, +, -, *) Z Z Z Unários (+, -) Z Z Dúvida? Seja r : real. Tipo de r + 2? real? inteiro? ter uma única resposta = aplicar regras semânticas DIM0320 5. Expressões aritméticas 2015.1 5 / 37

1 Operadores inteiros 2 Precedências 3 Alteração de prioridades 4 Operadores reais 5 Expressões de tipo misto 6 Exercícios DIM0320 5. Expressões aritméticas 2015.1 6 / 37

Problema Valor de 5 * 3 % 2? Regras de precedências são usadas para desambiguar tais expressões, i.e. para poder escrevê-las sem parênteses. DIM0320 5. Expressões aritméticas 2015.1 7 / 37

Prioridades Níveis de prioridade (prec) Conjuntos de operadores entre (..) definem classes de equivalência. Associatividade à esquerda (+, -. unário) (*,\,%) (+, - (binário)) Sejam p, q dois operadores em conflitos p q, a operação p é executada antes de q. q p, a operação q é executada antes de p. p q, a operação mais à esquerda é executada antes da outra. Exemplo (Precedências) a + b + c (a + b) + c a + b * c % 2 (a + ((b * c) % 2)) DIM0320 5. Expressões aritméticas 2015.1 8 / 37

Exemplo algoritmo "Expressoes aritmeticas envolvendo variaveis e constantes" var a, b, c : inteiro inicio escreva("entre com o valor da variavel a: ") leia(a) escreva("entre com o valor da variavel b: ") leia(b) escreva("entre com o valor da variavel c: ") leia(c) escreval("o resultado da expressao a * b % c e: ", a * b % c) escreval("o resultado da expressao -a * b % c * 8 e: ", -a * b % c * 8 ) escreval("o resultado da expressao -a - b - c * 3 e: ", -a - b - c * 3 ) fimalgoritmo DIM0320 5. Expressões aritméticas 2015.1 9 / 37

1 Operadores inteiros 2 Precedências 3 Alteração de prioridades 4 Operadores reais 5 Expressões de tipo misto 6 Exercícios DIM0320 5. Expressões aritméticas 2015.1 10 / 37

Uso de parênteses Pode-se alterar as prioridade com (...) (como em matemática). Exemplo (Ilustração) 1 (a + b) (c % 2) Isto é op 1 op 2 com: op1 = a + b op2 = c % 2 Execeturamos +, depois %, enfim. 2 ((2 + 3) (1 + 2)) 3 (3 + (3 2))?? DIM0320 5. Expressões aritméticas 2015.1 11 / 37

Instrução / comando de atribuição Usando expressões (inteiras), precisaremos armazenar o valor de algumas deles, através comandos de atribuição (<- ou leia). leia poder ser usada apenas quando a variável é uma variável de entrada. <- é usado dentro do corpo do algoritmo para armazenar valores, intermediares, ou seja, o resultado. DIM0320 5. Expressões aritméticas 2015.1 12 / 37

Exemplo de atribuições algoritmo "Quadrado da soma de 2 inteiros" var a, b, quadrado : inteiro inicio escreva("entre com o primeiro inteiro: ") leia(a) escreva("entre com o segundo inteiro: ") leia(b) quadrado <- (a + b) * (a + b) escreva ("O quadrado da soma dos inteiros lidos e: ", quadrado) fimalgoritmo DIM0320 5. Expressões aritméticas 2015.1 13 / 37

1 Operadores inteiros 2 Precedências 3 Alteração de prioridades 4 Operadores reais 5 Expressões de tipo misto 6 Exercícios DIM0320 5. Expressões aritméticas 2015.1 14 / 37

Operadores reais Sintaxe Um constante do tipo real é uma sequência de números terminada por. uma sequência de números começada por. uma sequência de números, um., um outra sequência de números Lista Suponha x : real Operador Exemplos +, - -3.2, +x +,-, *, / 4. + 8.3 * 9.3 ^ 3.3 ^ 2.1 DIM0320 5. Expressões aritméticas 2015.1 15 / 37

Precedências Níveis de prioridade Conjuntos de operadores entre (..) definem classes de equivalência. Associatividade à esquerda {+, (unário)} {ˆ,, /} {+, (binário)} Sejam p, q dois operadores em conflitos p q, a operação p é executada antes de q. q p, a operação q é executada antes de p. p q, a operação mais à esquerda é executada antes da outra. Exemplo (Precedências) a - b + c (a - b) + c a + b * c / 2 (a + ((b * c) / 2)) DIM0320 5. Expressões aritméticas 2015.1 16 / 37

Uso de parênteses Expressão a converter (3.0 a + 2.0 b)/(c (a 1.0)/(1.0 + (a + b)/(2.0 c))) algoritmo "Expressoes aritmeticas com variaveis e constantes reais" var a, b, c, res : real inicio escreva("entre com o valor da variavel a: ") leia(a) escreva("entre com o valor da variavel b: ") leia(b) escreva("entre com o valor da variavel c: ") leia(c) res <- (3.0 * a + 2.0 * b) / c - (a - 1.0 ) / (1.0 + (a + b) / (2.0 * c))) escreva ("O resultado da expressao e: ", res) fimalgoritmo DIM0320 5. Expressões aritméticas 2015.1 17 / 37

Tipos dos operadores Resumo Operador Tipos +, - Z Z Z, Z Z, Z R R, R R \, % Z Z Z * Z Z Z, R R R /, ˆ R R R Observação Em Portugol: Z inteiro R real DIM0320 5. Expressões aritméticas 2015.1 18 / 37

1 Operadores inteiros 2 Precedências 3 Alteração de prioridades 4 Operadores reais 5 Expressões de tipo misto 6 Exercícios DIM0320 5. Expressões aritméticas 2015.1 19 / 37

Misturar tipos Nos exemplos aritméticos usamos só variáveis e constantes do tipo real ou variáveis e constantes do tipo inteiro. DIM0320 5. Expressões aritméticas 2015.1 20 / 37

Misturar tipos Nos exemplos aritméticos usamos só variáveis e constantes do tipo real ou variáveis e constantes do tipo inteiro. Em matemática, 3, 14 + 2 = 5, 14 porque Z R DIM0320 5. Expressões aritméticas 2015.1 20 / 37

Misturar tipos Nos exemplos aritméticos usamos só variáveis e constantes do tipo real ou variáveis e constantes do tipo inteiro. Em matemática, 3, 14 + 2 = 5, 14 porque Z R Podemos fazer isso em Portugol? DIM0320 5. Expressões aritméticas 2015.1 20 / 37

Regras semânticas Regra Em expressões de tipo misto: 1 o tipo do operando mais simples é convertido para o tipo do operando mais complexo. 2 a operação aritmética é aplicada a operandos de mesmo tipo. Operador de conversão Para marcar as etapas de conversões, usaremos o operador seguinte : Z R DIM0320 5. Expressões aritméticas 2015.1 21 / 37

Exemplos Exemplo (Etapas de conversão) a, b: real, c: inteiro (a b) (c/2) (a b) (c/2 ) (a b) (c /2 ) Exemplo (Etapas de conversão) a, b, c: inteiro (a b) (c/2) (a b) (c/2 ) (a b) (c /2 ) (a b) (c /2 ) DIM0320 5. Expressões aritméticas 2015.1 22 / 37

Uso da divisão real Divisão real As regras semânticas permitem o uso da divisão real / e de exponenciação ^ com tipos inteiros. Exemplo (Validade de expressões) 5 / 2 5 % 2 / 3 5 / 2 % 2 Observação Nenhum valor real pode ser automaticamente convertido em um valor inteiro. DIM0320 5. Expressões aritméticas 2015.1 23 / 37

Precedências mistas Níveis de prioridade Conjuntos de operadores entre (..) definem classes de equivalência. Associatividade à esquerda {+, (unário)} {ˆ, \, %,, /} {+, (binário)} Sejam p, q dois operadores em conflitos p q, a operação p é executada antes de q. p q, a operação q é executada antes de p. p q, a operação mais à esquerda é executada antes da outra. Exemplo (Precedências) a - b + c (a - b) + c a + b / c % 2 (a + ((b / c) % 2)) DIM0320 5. Expressões aritméticas 2015.1 24 / 37

Algoritmo com valores reais e inteiros Assunto Desenvolver um algoritmo para determinar o volume, V, de uma esfera a partir do raio, r, da esfera. Formula: V = r 3 * π * 4 / 3 Observação pi é uma constante, palava reservada da linguagem Portugol. DIM0320 5. Expressões aritméticas 2015.1 25 / 37

Solução algoritmo "Volume da esfera" var raio : real volume : real inicio escreva ("Entre com o valor do raio da esfera: ") leia (raio) volume <- (4 / 3) * pi * raio * raio * raio escreva ("O volume da esfera de raio ", raio, " e ", volume) fimalgoritmo DIM0320 5. Expressões aritméticas 2015.1 26 / 37

Algumas primitivas Exponenciacão exp(a, b) = a ^ b Valores aleatórios rand() retorna um número real gerado aleatoriamente, maior ou igual a zero e menor que um. Truncamento int(e) Exemplos int(3.14) = 3 int(-3.5) = -3 DIM0320 5. Expressões aritméticas 2015.1 27 / 37

Representação dos tipos aritméticos Inteiros A representação dos tipos inteiros é exata Z Reais A representação do tipo real não é exata. Alguns elementos de R não podem ser representados no tipo real (ex: 1/3). Os cálculos reais podem produzir erros de precisão (ver ponto flutuante e perda de precisão). Conclusão É melhor usar inteiros até precisar da conversão. DIM0320 5. Expressões aritméticas 2015.1 28 / 37

Resumo Expressões aritméticas reais Operadores reais Expressões aritméticas mistas Primitivas Uso dos tipos aritméticos DIM0320 5. Expressões aritméticas 2015.1 29 / 37

Perguntas? http://dimap.ufrn.br/~richard/dim0320 DIM0320 5. Expressões aritméticas 2015.1 30 / 37

1 Operadores inteiros 2 Precedências 3 Alteração de prioridades 4 Operadores reais 5 Expressões de tipo misto 6 Exercícios DIM0320 5. Expressões aritméticas 2015.1 31 / 37

Primeiros exercícios 1 Escrever em Portugol 5x 3 + 7x 2 3x 1 2 Avaliar, de acordo com as regras de precedências: 2-3 * 5 1 \ 4-8 * 4 * 10 \ 9 3 * 5 + 1-6 % 2 \ 3 3 Suponha que 1 a linha 11 seja substituída por 1 quadrado <- a + b * a + b O algoritmo continuará correto? 2 a linha 11 seja substituída por as duas seguintes linhas 1 quadrado <- a + b 2 quadrado <- quadrado * quadrado O algoritmo continuará correto? DIM0320 5. Expressões aritméticas 2015.1 32 / 37

Somas de cubos Assunto Escrever um algoritmo calculando a soma dos cubes de 2 números inteiros lidos como entradas. Essa soma será a saída (escrita) do algoritmo. DIM0320 5. Expressões aritméticas 2015.1 33 / 37

Somas de cubos Assunto Escrever um algoritmo calculando a soma dos cubes de 2 números inteiros lidos como entradas. Essa soma será a saída (escrita) do algoritmo. Solução algoritmo "Cubos" var m, n : inteiro inicio escreval("entre com um inteiro: ") leia(m) escreval("entre com um inteiro: ") leia(n) escreval("a soma dos cubos e: ", m * m * m + n * n * n) fimalgoritmo DIM0320 5. Expressões aritméticas 2015.1 33 / 37

Sintaxe Tradução Traduzir em Portugol a notação 1 1 + 1 1 + a 1 se a é um valor real; 2 se a é um valor inteiro DIM0320 5. Expressões aritméticas 2015.1 34 / 37

Área de retângulo Assunto Escrever um algoritmo que leia os valores correspondentes à base e altura de um retângulo, determine a área do retângulo e escreva a área como saída. DIM0320 5. Expressões aritméticas 2015.1 35 / 37

Área de retângulo Assunto Escrever um algoritmo que leia os valores correspondentes à base e altura de um retângulo, determine a área do retângulo e escreva a área como saída. Solução algoritmo "Area retangulo" var altura, base: real inicio escreva("entre com valores positivo para a base do retangulo: ") leia(base) escreva("entre com valores positivo para a altura do retangulo: ") leia(altura) escreval("a area do retangulo e:", altura * base) fimalgoritmo DIM0320 5. Expressões aritméticas 2015.1 35 / 37

Área de círculo Assunto Escrever um algoritmo para calcular a área de um círculo. A entrada do seu algoritmo é o valor do raio do círculo. A saída é o valor da área do círculo. DIM0320 5. Expressões aritméticas 2015.1 36 / 37

Área de círculo Assunto Solução Escrever um algoritmo para calcular a área de um círculo. A entrada do seu algoritmo é o valor do raio do círculo. A saída é o valor da área do círculo. algoritmo "Area circulo" var raio: real inicio escreva("entre com um valor positivo para o raio do circulo: ") leia(raio) escreval("a area do circulo e:", pi * raio * raio) fimalgoritmo DIM0320 5. Expressões aritméticas 2015.1 36 / 37

Valores aleatórios de um intervalo Assunto Use a primitiva rand() para escrever um algoritmo que gera um valor aleatório do intervalo [a, b], onde a e b são dois valores dados. DIM0320 5. Expressões aritméticas 2015.1 37 / 37