Aula 03 Revisão de Expressões Comando de Seleção

Slides:



Advertisements
Apresentações semelhantes
Pseudo-código: sintaxe
Advertisements

INTRODUÇÃO A COMPUTAÇÃO ENG. CIVIL
Programação de Computadores
Programação em Java Prof. Maurício Braga
Estruturas de Repetição
Agrupamento de Escolas drª Laura Ayres
1 Introdução (Informal) à Programação DI/FCT/UNL 1º Semestre 2004/2005.
Operadores Aritméticos
Conteúdo: - Operadores.
SPEED MATH 1 8.ª SÉRIE Você terá 25” para resolver cada item, então...
Princípio aditivo da igualdade
BCC 101– Matemática Discreta
Algoritmos com seleção
Introdução à Lógica de Programação (cont.)
THOBER CORADI DETOFENO, MSC. Aula 07
Números Complexos 1 Prof. Marlon.
SISTEMAS LINEARES I Prof. Marlon.
Polinômios Prof. Marlon.
EQUAÇÕES POLINOMIAIS Prof. Marlon.
Sintaxe de Fortran 25/abril/2006. Comandos Fortran PROGRAM PRINT READ STOP END.
Comandos condicionais
Lógica de Programação Módulo II
Linguagem C Estruturas de Seleção.
Descreva por palavras suas o funcionamento de um algoritmo
Operadores Aritméticos Valores lógicos Relacionais e lógicos MF.
Aula 07 Comandos de Repetição while e for
Material Didático Unificado.
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Aula 01 Variáveis, Expressões, Atribuição, E/S
Aula 5 - Operadores, Expressões e Funções Matemáticas
BCC /01 Funções. Material Didático Unificado. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento de Ciência.
Aula 02 Variáveis, Matrizes, Gráficos
Funções Universidade Federal de Ouro Preto - UFOP
Aula 06 Comandos de Repetição for
Aula Teórica 03 Comandos Condicionais (Decisão) Semana 03
Material Didático Unificado.
Material Didático Proposto 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão para Coordenação das Atividades Pedagógicas.
Material Didático Proposto
Cálculo Numérico / Métodos Numéricos
Capítulo 10 Funções polinomiais slide 1
FTIN Formação Técnica em Informática
AGORA É COM VOCÊ... Calcule a soma e o produto das raízes da equação  2x²  + 10x + 12 = 0.
1 TESTAR CONHECIMENTOS... 2 dbac 3 A) Falsa. Decrescente no intervalo [ 3, + ] B) Falsa. Max absoluto = +2 para x=3 C) Falsa. V(3,2) D) Verdadeira.
Fábio de Oliveira Borges
Estruturas de Dados Módulo 3 – Controle de Fluxo
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Programação de Computadores
Equações do 2º grau.
1.
Programação e Sistemas de Informação
BC-0505 Processamento da Informação
BCC /01 Aula Teórica 09 Funções Material Didático Proposto. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento.
Material Didático Proposto 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão para Coordenação das Atividades Pedagógicas.
Algumas notas sobre a linguagem de programação C
DCC 001 Programação de Computadores 2° Semestre de 2011
REVISÃO POTENCIAÇÃO E ÁLGEBRA.
ESTRUTURAS DE CONTROLE
prof. André Aparecido da Silva
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA ENGENHARIA DE AUTOMAÇÃO INDUSTRIAL  Operadores São meios pelo qual incrementamos, comparamos e avaliamos dados.
Algoritmos.
Exercícios (Algoritmo Narrativo, Fluxograma e Pseudocódigo) RESOLVIDO
Algoritmos e Programação MC102
Desenvolvimento WEB Prof. Renato de Oliveira Bastos
Pontifícia Universidade Católica de Goiás PUC GOIÁS Departamento de Computação Informática e Computação Cesar Augusto da Rocha Magalhães.
Linguagens de Programação
Andréa Iabrudi 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I.
Escola Estadual São Francisco Campo Grande, 04 de Junho de 2014 Professora: Maria Aparecida S. Ferreira Disciplina: Matemática Ano: 9º Turma:A Turno: Matutino.
1 Estruturas Condicionais Aula – Tópico 3 Algoritmos e Estruturas de Dados I (DCC/003)
Prof. Tertuliano Estrutura Condicional em C++. Sumário „ Estrutura Condicional Simples „ Estrutura Condicional Composta „ Estrutura Condicional Simples.
Algoritmos Grupos de Slides No 2. Prof. SIMÃO Estrutura de decisão simples “Se” if end Feito por Prof. Jean Marcelo SIMÃO e revisado por Prof. Luis Alberto.
Transcrição da apresentação:

Aula 03 Revisão de Expressões Comando de Seleção Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I – BCC701 www.decom.ufop.br/moodle Aula 03 Revisão de Expressões Comando de Seleção

Equações de Segundo Grau: Equação Raízes (reais se ∆>0) Calcular as raízes para a = 534.2765, b = 9987.3431 e c = 225.7690 UFMG DCC001 2013-1

Equação de 2º grau Como obter a solução? Ler os valores dos coeficientes a, b e c Calcular o valor de delta Obter as raízes da equação Imprimir as raízes da equação

Equações de Segundo Grau: Lendo os valores dos coeficientes // Cálculo das raízes de equação de 2o grau // Entrada de dados a = input("Digite o valor de a:") b = input("Digite o valor de b:") c = input("Digite o valor de c:") Diálogo com o usuário UFMG DCC001 2013-1

Equações de Segundo Grau: Obtendo e imprimindo as raízes // Resolvendo a equação delta = b^2 - 4*a*c r1 = (-b + sqrt(delta))/ (2*a) r2 = (-b - sqrt(delta))/ (2*a) // Imprimindo resultados printf(“Raiz 1 = %g”,r1) printf(“Raiz 2 = %g”,r2)

Lembre-se Primeiro pense! Inclua comentários Observe a precedência de operadores O separador decimal é o ponto Teste o seu programa

Teste a Solução Em todo problema de transformação de informação, temos que pensar em testes que verifiquem a correção do que fazemos Nesse caso, o teste é simples: se r é um valor calculado para uma raiz, o valor da expressão a*r^2 + b*r + c deve ser zero UFMG DCC001 2013-1

Teste -->a*r1^2 + b*r1 + c ans = 3.865D-12 -->a*r2^2 + b*r2 + c UFMG DCC001 2013-1

Erros Comuns Escrever delta = b^2 – 4ac, omitindo os operadores de multiplicação Um erro de sintaxe, que é apontado pelo Scilab Escrever r1 = (-b+sqrt(delta))/2*a , o que na verdade calcula Um erro de semântica, que só pode ser descoberto por meio de testes, que o programador deve fazer UFMG DCC001 2013-1

Equações de Segundo Grau: Equação Bhaskara (∆>0, a≠0) Quaisquer valores de coeficiente!

Não estamos preparados... Equação de primeiro grau Divisão por zero no nosso programa! Δ< 0 Raízes complexas Só imprime a parte real no nosso programa!

a = 0

Expressão lógica, cujo valor é verdadeiro (%t) ou falso (%f) Analisando o valor de a Expressão lógica, cujo valor é verdadeiro (%t) ou falso (%f) se a igual a 0 então mensagem de erro; resolver equação de primeiro grau; senão // caso contrário apresentamos as raízes reais;

Expressões com Tipo Lógico -->p = %t p = T -->q = 5+3 < 2 q = F -->a = 0 a = -->a == 0 ans = -->a <> 0 ans = Literal True Expressão lógica, usando o operador relacional < Note que operadores aritméticos têm precedência sobre operadores relacionais igual diferente UFMG DCC001 2013-1

Operadores Relacionais - Scilab Descrição > Maior que. >= Maior ou igual a. < Menor que. <= Menor ou igual a. == Igual a. <> ou ~= Diferente de.

A condição deve ser uma expressão lógica O comando if A condição deve ser uma expressão lógica if <condição> then <bloco “então”> else <bloco “senão”> end UFMG DCC001 2013-1

Desvio de Fluxo: if if a == 0 then printf(“Coeficiente a não pode ser 0”); else // programa como antes end

Desvio de Fluxo de Execução - if

Desvio de Fluxo de Execução - if Exemplo 1 de execução do programa:

Desvio de Fluxo de Execução - if Exemplo 2 de execução do programa:

Δ < 0 se delta for não negativo então apresentamos as raízes reais; senão // caso contrário apresentamos as raízes complexas;

Desvio de Fluxo de Execução - if Exemplo quando delta for maior ou igual a zero, a expressão relacional resultará em %t e, portanto, somente o bloco do então (then) será executado; quando delta for menor que zero, a expressão relacional resultará em %f e, portanto, somente o bloco do senão (else) será executado.

Desvio de Fluxo de Execução - if

Desvio de Fluxo de Execução - if Exemplo 1 de execução do programa:

Desvio de Fluxo de Execução - if Exemplo 2 de execução do programa:

Números reais e números complexos O Scilab possibilita manipular números complexos de forma simples: real(x1)  retorna a parte real. imag(x1)  retorna a parte imaginária. Exemplos de números complexos: z1 = 3 + 4 * %i; z2 = 1 - %i; z3 = z1 + z2; z4 = z1 * z2;

Identação Afastar os “blocos” para esquerda Torna mais claro o que está sendo feito em cada fluxo do programa Será EXIGIDO Existe uma tecla especial no SciNotes

Desvio de Fluxo: if if <condição> then <bloco do então> Forma Alternativa if <condição> then <bloco do então> end OBS.: um bloco é um conjunto de quaisquer comandos Scilab sintaticamente corretos (inclusive outro if).

Um jovem programador Certa vez a mãe disse ao filho estudante de computação: "Querido, por favor vá ao mercado e compre 1 caixa de leite. Se eles tiverem ovos, traga 6. Ele retornou com 6 caixas de leite. A mãe disse: "Porque diabos você comprou 6 caixas de leite?". Ele disse: "PORQUE ELES TINHAM OVOS!".

O raciocínio na ambiguidade se tiverem ovos então traga 6 caixas de leite; senão traga 1 caixa de leite; http://www.hardware.com.br/artigos/computadores-receitas-bolo-aprendendo-comunicar-com-maquina/aprendendo-pensar-como-maquina.html

Exercício 1 Considerando o programa que calcula a equação do segundo grau, observamos que quando as duas raízes são iguais, o programa calcula e imprime x1 e x2 com os mesmos valores. Como poderíamos resolver isso?

Desvio de Fluxo de Execução - if Solução

Desvio de Fluxo de Execução - if Solução

Exercício 2 Faça um programa que: Leia o nome do usuário Leia o total de pontos feitos pelo usuário Imprima, conforme o caso, a frase <usuário>, com <pontos> você passou! Ou <usuário>, com <pontos> você não passou! Ex.: José, com 75 pontos você passou! UFMG DCC001 2013-1

Programa PassouNaoPassou.sce // Leitura do nome do usuário Nome = input("Digite seu nome, por favor") // Leitura da pontuação Pontos = input(Nome + ", qual foi sua pontuação? ") // Impressão do resultado if Pontos >= 60 then printf("%s, com %g pontos você passou!",Nome,Pontos); else printf("%s, com %g pontos você não passou :(",... Nome,Pontos); end Comando continua na próxima linha UFMG DCC001 2013-1

Mais sobre Comandos de Desvio Seja f :ℛxℛ⟶ℛ definida por: Construir um programa para calcular o valor de f(x,y), para valores de x e y dados. Note que o valor de f(x,y) é dado por 4 expressões diferentes, conforme sejam os valores de x e de y

Mais sobre Comandos de Desvio se x>= 0 e y>=0 então r = x + y; senão se x>= 0 e y<0 então r = x + y^2; senão se x< 0 e y>=0 então r = x^2 + y; senão r = x^2 + y^2;

Mais sobre Comandos de Desvio if x>= 0 & y>=0 then r = x + y; elseif x>= 0 & y<0 then r = x + y^2; elseif x< 0 & y>=0 then r = x^2 + y; else r = x^2 + y^2; end Operador lógico &

Operadores Lógicos Sejam e1 e e2 expressões lógicas. Operador lógico Descrição & Conjunção (ê) | Disjunção (ou) ˜ Negação (não) Sejam e1 e e2 expressões lógicas. ~e1 é falsa se e1 é verdadeira; é verdadeira se e1 é falsa e1 & e2 é verdadeira se e1 e e2 são ambas verdadeiras; é falsa nos demais casos e1 | e2 é falsa se e1 e e2 são ambas falsas; é verdadeira nos demais casos

Precedência de Operadores Ordem de precedência maior operadores aritméticos operadores relacionais operadores lógicos menor

Exercício Seja f :ℛ⟶ℛ a função definida por: Escreva um programa que leia o valor de x e imprima o valor de f(x)

Exercício – exemplo de execução .

Exercício - Solução

Exercício Escreva um programa que determina se 3 valores dados constituem lados de um triângulo e, em caso afirmativo, se o triângulo é equilátero, isósceles ou escaleno.

Exercício - Solução