AULA TEÓRICA 03 COMANDO CONDICIONAL

Documentos relacionados
Material Didático Proposto

Programação Estruturada Comandos Condicionais (Decisão) Operadores Relacionais

Aula Teórica 03. Comandos Condicionais (Decisã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

Comandos de desvio de fluxo. Expressões lógicas.

Comandos de desvio de fluxo. Expressões lógicas.

Agenda. Programação estruturada. Sequência. Decisão: Desvio de fluxo INTRODUÇÃO. Expressões lógicas.

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada e Saída básica

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

Material Didático Unificado.

Comandos de Desvio 1

Aula Teórica 09 Funções

Comandos de desvio de fluxo. Expressões lógicas.

Introdução ao Scilab. Comandos de entrada e saída de dados.

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

Aula Teórica 09 Funções

Material Didático Unificado. Variáveis correspondem a nomes para endereços de memória que são gerenciados pelo Scilab.

Aula Teórica 04. Material Didático Prof. Red

Aula 05: Condicionais (if / else)

É um interpretador,, ou seja, um programa que executa programas; ao contrário de um compilador, não traduz um programa para instruções de máquina.

Material Didático Unificado.

Fixação de conteúdo teórico

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

Comandos de Desvio 2

Programação de Computadores I BCC Primeira Avaliação 19/01/2013 Valor (2,0)

Comandos de repetição while

Lógica de Programação

Aula 03 - Introdução ao Scilab (p2)

BCC201 Introdução à Programação ( ) Prof. Reinaldo Silva Fortes. Prática 05 Modularização

Funções. Material Didático Unificado. BCC701 Programação de Computadores I Universidade Federal de Ouro Preto Departamento de Ciência da Computação

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM. Programação de Computadores I - BCC /1.

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

Introdução a Programação de Jogos

Elementos básicos das linguagens de programação

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Prática 10 - Funções

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

Aula 15 - Estruturas de Repetição (p3)

Aula 04: Fluxogramas e condicionais

Introdução à Programação I

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

Universidade Federal de Uberlândia Faculdade de Computação. Expressões aritméticas, relacionais e lógicas Estruturas condicionais

Programação de Computadores I - BCC 701 Lista de Exercícios 1 Módulo 1

Introdução a Programação de Jogos

Aula 02 - Introdução ao Scilab (p1)

Aula Teórica 06. Material Didático Proposto. Conteúdos da Aula. Estruturas de Repetição Exercícios

ACH5531 Introdução à Computação

Introdução à Engenharia ENG1000

Programação Estruturada

Aula 02 -Introdução àlinguagc Programação: Estrutura-Seleção. OPL e IC1 Prof: Anilton Joaquim da Silva

UFOP PC-I Prof. Guilherme / Anderson. Comando For e String

Universidade Federal de Ouro Preto -UFOP Departamento de Computação - DECOM Programação de Computadores I BCC701. Aula Teórica 08.

Programação científica C++

Introdução ao Fortran 90-4

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Lista de Exercícios 2

Introdução à Ciência da Computação

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

SSC Introdução à Programação para Engenharias. Lista 01 Entrega em 06/04/ h10

Aula Teórica 04. Material Didático

Fixação de conteúdo teórico

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

Exercícios Repetição

Fundamentos de Programação Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte 15 de maio de 2018.

Capítulo 3 Estrutura Sequencial

SSC304 Introdução à Programação Para Engenharias

A única diferença entre o difícil e o impossível é que o último demora um pouco mais de tempo para ser alcançado..

Programação de Computadores III

Aula 8 Comandos de Seleção

Comandos de repetição while

Programação de Computadores I BCC Segunda Avaliação 02/03/2013 Valor (3,0)

Algoritmos. Estrutura de decisão simples. if end. Grupos de Slides No 2. Prof. SIMÃO

LISTA DE EXERCÍCIOS: 1ª Unidade

Algoritmos e Programação

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

Estruturas de Decisão. APROG (Civil) Aula 6

Programação de Computadores I BCC701 Aula Teórica 08 Exercícios

Lista de Exercícios Revisão de Lógica. 01. Desenvolva um programa em C que receba três valores numéricos inteiros e mostre a soma desses três números.

Lista de Exercícios 06 Modularização (Procedimentos e Funções)

Notas de Aula de Algoritmos e Programação de Computadores

Introdução ao Fortran 90-3

ESTRUTURA CONDICIONAL E SELEÇÃO

Estruturas de Repetição. for() while() do-while() break; continue;

INSTITUTO FEDERAL CATARINENSE Campus Ibirama

Aula 16 Estruturas de Controle. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Para começar... Para começar... Para começar... Para começar... Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Estruturas condicionais...

Linguagem C (estruturas condicionais)

Noções de Algoritmos

Variáveis, Atribuição, Entrada e Saída

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

Aula prática 4. Comandos de Desvio. Resumo. 1 Comandos de Desvio Condições mutuamente exclusivas... 2

Algoritmos. Estrutura de Repetição. enquanto. while. Grupos de Slides No 5. Prof. SIMÃO

Aula 16: Laços aninhados e desvios

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Transcrição:

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM BCC701 Programação de Computadores I www.decom.ufop.br/red 2017-1 AULA TEÓRICA 03 COMANDO CONDICIONAL 1

Programação Estruturada Programação Estruturada é uma forma de programação de computadores que preconiza que todos os programas possíveis podem ser reduzidos a apenas três estruturas: Sequência Decisão (desvio, condição) iteração 2

Programação Estruturada Sequência Os programas constituem-se de uma sequência de instruções, ou comandos, executados um após o outro, conforme o fluxograma ao lado. 3

Comando Condicional Comando Condicional Os programas possuem um, ou mais, comandos condicionais, que permitem a alteração na ordem de execução do programa, ou seja, do fluxo de execução dos comandos. Você tem que tomar uma decisão! Obter um %t ou %f. 4

Comando Condicional Problema Seu carro tem combustível para rodar 15 Km. Qual caminho escolher? Posto B 25 km Posto A 10 km 5

Comando Condicional Problema Seu carro tem combustível para rodar 15 Km. Qual caminho escolher? Se 15 >= 25 Então Fim Vou para o Posto B; // se 15 >= 25 resultar em #t Se 15 >= 10 Então Vou para o Posto A; // se 15 >= 10 resultar em #t Fim 6

Comando Condicional if then end Estrutura 1 if <condição> then <bloco de comandos> end 1) A condição é avaliada; 2) Se for %t executa-se o bloco de comandos, e a seguir os comandos que estiverem após o end; 3) Se for %f executa-se somente os comandos que estiverem após o end; OBSERVAÇÕES: um bloco é um conjunto de quaisquer comandos Scilab sintaticamente corretos (inclusive outro if). if, then e end: são palavras reservadas do Scilab e não podem ser usadas para nomear variáveis. 7

Comando Condicional if then end if condição é verdadeira Comando 1; Comando 2; Comando n; end Comando n+1; Comando n+2; then 8

Comando Condicional if then end if condição é falsa Comando 1; Comando 2; Comando n; end Comando n+1; Comando n+2; then 9

Comando Condicional if then end Fluxograma início x = 16 %f x > 0 %t x = sqrt(x)... 10 fim

Equação do Segundo Grau Fórmula de Bhaskara A nome Fórmula de Bhaskara foi dada em homenagem ao matemático Bhaskara Akaria, considerado o mais importante matemático indiano do século XII. ax 2 + bx + c = 0 a 0 11

Equação do Segundo Grau Programa V1 printf("\n Raízes Reais de uma Equação do Segundo Grau"); a = input(" Digite o Coeficiente a: "); b = input(" Digite o Coeficiente b: "); c = input(" Digite o Coeficiente c: "); delta = b^2-4 * a * c; x1 = (-b + sqrt(delta)) / (2*a); x2 = (-b - sqrt(delta)) / (2*a); printf(" x1 = %g\n", x1); printf(" x2 = %g\n", x2); 12

Equação do Segundo Grau Programa V1 Execução 1 Raízes Reais de uma Equação do Segundo Grau Digite o Coeficiente a: -2.25 Digite o Coeficiente b: 1.45 Digite o Coeficiente c: 3.26 x1 = -0.923858 x2 = 1.5683 Verificação: -->-2.25 * (1.5683)^2 + (1.45 * 1.5683)... --> + 3.26 ans = 0.0000140 Está correto? 13

Equação do Segundo Grau Programa V1 Execução 2 Raízes Reais de uma Equação do Segundo Grau Digite o Coeficiente a: 0 Digite o Coeficiente b: 2 Digite o Coeficiente c: 8 / (2*a)!--error 27 Divisão por zero... at line 7 of exec file called by : ce', -1 O coeficiente a não pode ser nulo! Uma solução é solicitar ao usuário uma nova entrada. 14

Equação do Segundo Grau Programa V2 clc; clear; printf("\n Raízes Reais de uma Equação do Segundo Grau"); a = input(" Digite o Coeficiente a: "); if (a == 0) then a = input(" Digite o Coeficiente a: "); end b = input(" Digite o Coeficiente b: "); c = input(" Digite o Coeficiente c: "); delta = b^2-4 * a * c; x1 = (-b + sqrt(delta)) / (2*a); x2 = (-b - sqrt(delta)) / (2*a); printf(" x1 = %g\n", x1); printf(" x2 = %g\n", x2); 15

Equação do Segundo Grau Programa V2 Execução 1 Raízes Reais de uma Equação do Segundo Grau Digite o Coeficiente a: 0 Digite o Coeficiente a: 1 Digite o Coeficiente b: 2 Digite o Coeficiente c: -3 x1 = 1 x2 = -3 16

Equação do Segundo Grau Programa V2 Execução 2 Raízes Reais de uma Equação do Segundo Grau Digite o Coeficiente a: 0 Digite o Coeficiente a: 0 Digite o Coeficiente b: 1 Digite o Coeficiente c: -3 ) / (2*a)!--error 27 Divisão por zero... at line 10 of exec file called by : sce', -1 Zero na segunda digitação! Solução: encerrar o programa se o for digitado 0 para o coeficiente a. 17

Comando Condicional Estrutura 2 if then else end if <condição> then <bloco de comandos a> else <bloco de comandos b> end OBSERVAÇÃO: else é palavra reservada do Scilab e não pode ser usada para nomear variáveis. 1) A condição é avaliada; 2) Se for %t executa-se o bloco de comandos a, e a seguir os comandos que estiverem após o end; 3) Se for %f executa-se o bloco de comandos b, e a seguir os comandos que estiverem após o end; 18

Comando Condicional if end condição é verdadeira Comando 1; Comando 2; Comando n; else Comando a;... Comando b; Comando n+1; Comando n+2; if then else end then 19

Comando Condicional if else end condição é falsa Comando a;... Comando b; Comando 1; Comando 2; Comando n; Comando n+1; Comando n+2; if then else end then 20

Comando Condicional Fluxograma if then else end início x = 16 %f x > 0 %t x = sqrt(-x) x = sqrt(x)... 21 fim

Equação do Segundo Grau Programa V3 clc; clear; printf("\n Raízes Reais de uma Equação do Segundo Grau"); a = input(" Digite o Coeficiente a: "); if (a == 0) then printf("\n ERRO: coeficiente a = 0"); printf("\n F I M D O P R O G R A M A!"); else b = input(" Digite o Coeficiente b: "); c = input(" Digite o Coeficiente c: "); delta = b^2-4 * a * c; x1 = (-b + sqrt(delta)) / (2*a); x2 = (-b - sqrt(delta)) / (2*a); printf(" x1 = %g\n", x1); printf(" x2 = %g\n", x2); 22 end

Equação do Segundo Grau Programa V3 Execução 1 Raízes Reais de uma Equação do Segundo Grau Digite o Coeficiente a: 0 ERRO: coeficiente a = 0 F I M D O P R O G R A M A! OBS.: a = 0 23

Equação do Segundo Grau Programa V3 Execução 2 Raízes Reais de uma Equação do Segundo Grau Digite o Coeficiente a: -4 Digite o Coeficiente b: 2 Digite o Coeficiente c: 1 x1 = -0.309017 x2 = 0.809017 OBS.: a 0 24

Equação do Segundo Grau Programa V4 Raízes Reais clc; clear; printf("\n Raízes Reais de uma Equação do Segundo Grau"); a = input(" Digite o Coeficiente a: "); if (a == 0) then printf("\n ERRO: coeficiente a = 0"); printf("\n F I M D O P R O G R A M A!"); else b = input(" Digite o Coeficiente b: "); c = input(" Digite o Coeficiente c: "); delta = b^2-4 * a * c; if delta < 0 then printf("\n ERRO: Delta < 0 - FIM DO PROGRAMA!"); else x1 = (-b + sqrt(delta)) / (2*a); x2 = (-b - sqrt(delta)) / (2*a); printf(" x1 = %g\n", x1); printf(" x2 = %g\n", x2); end end 25

Equação do Segundo Grau Programa V4 Raízes reais Execução 1 Raízes Reais de uma Equação do Segundo Grau Digite o Coeficiente a: 2 Digite o Coeficiente b: 1 Digite o Coeficiente c: 4 ERRO: Delta < 0 - FIM DO PROGRAMA! Execução 2 Raízes Reais de uma Equação do Segundo Grau Digite o Coeficiente a: 1 Digite o Coeficiente b: 4 Digite o Coeficiente c: -6 x1 = 1.16228 x2 = -5.16228 26

Equação do Segundo Grau Programa V4 Raízes reais Execução 3 Raízes Reais de uma Equação do Segundo Grau Digite o Coeficiente a: -1 Digite o Coeficiente b: 4 Digite o Coeficiente c: -4 x1 = 2 x2 = 2 OBS.: as raízes são iguais; Seria suficiente somente imprimir x1 = x2 = 2. Caso das raízes iguais. Basta alterar o quadrado azul do slide 23. 27

Equação do Segundo Grau Programa V5 Raízes Reais clc; clear; printf("\n Raízes Reais de uma Equação do Segundo Grau"); a = input(" Digite o Coeficiente a: "); if (a == 0) then printf("\n ERRO: coeficiente a = 0"); printf("\n F I M D O P R O G R A M A!"); else b = input(" Digite o Coeficiente b: "); c = input(" Digite o Coeficiente c: "); delta = b^2-4 * a * c; if delta < 0 then printf("\n ERRO: Delta < 0 - FIM DO PROGRAMA!"); else if (delta == 0) then x = -b / (2*a); printf(" x1 = x2 = %g\n", x); else // delta > 0 x1 = (-b + sqrt(delta)) / (2*a); x2 = (-b - sqrt(delta)) / (2*a); printf(" x1 = %g\n", x1); printf(" x2 = %g\n", x2); end end end 28

Equação do Segundo Grau Programa V5 Raízes reais Execução 1 Raízes Reais de uma Equação do Segundo Grau Digite o Coeficiente a: -1 Digite o Coeficiente b: 4 Digite o Coeficiente c: -4 x1 = x2 = 2 Execução 2 Raízes Reais de uma Equação do Segundo Grau Digite o Coeficiente a: 1 Digite o Coeficiente b: 4 Digite o Coeficiente c: -6 x1 = 1.16228 x2 = -5.16228 29

Operador Relacional Condição A condição de um if é uma expressão relacional, que utiliza operadores relacionais: <expr 1> <operador Relacional> <expr 2> Onde: <expr n> é uma expressão, que pode ser um valor numérico, ou uma expressão matemática que resulta em um valor numérico. a avaliação de uma expressão relacional pode resultar em verdadeiro (%t ou %T) ou falso (%f ou %F). 30

Operador Relacional Scilab Operador Descrição > Maior que. >= Maior ou igual a. < Menor que. <= Menor ou igual a. == Igual a. <> ou ~= Diferente de. 31

Operador Relacional Scilab Exemplos -->p = %t p = T -->q = 5 + 3 < 2 q = F -->a = 0 a = 0. -->a == 0 ans = T -->a <> 0 ans = F Os operadores aritméticos têm precedência sobre operadores relacionais Expressão relacional: 5 + 3 < 2 32

Operador Relacional Scilab Exemplos Prioridade de Execução Quando temos uma combinação entre expressões matemáticas e expressões lógicas, primeiramente o Scilab calcula as expressões matemáticas; a seguir, o Scilab calcula as expressões lógicas. os operadores matemáticos tem maior prioridade de execução, com relação aos operadores relacionais. 33

Armazenando nomes em variáveis Exemplo ler o nome de um aluno ler a nota desse aluno se a nota for maior ou igual a 6, imprimir que o aluno passou caso contrário, imprimir que o aluno está reprovado. 34

Armazenando nomes em variáveis // Leitura do nome do usuário Nome = input("digite seu nome, por favor, s ) // 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 35

Armazenando nomes em variáveis Execução 1 Digite seu nome, por favor: Bart Simpson Bart Simpson, qual foi sua pontuação? 5.9 Bart Simpson, com 5.9 pontos você não passou :( Execução 2 Digite seu nome, por favor: Sheldon Cooper Sheldon Cooper, qual foi sua pontuação? 10 Sheldon Cooper, com 10 pontos você passou! 36

Um certo nerd... Certa vez a mãe disse ao filho estudante de computação: Filho, 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!". 37

Um certo nerd... compre uma caixa de leite; if eles tem ovos? then traga 6 caixas de leite; end 6 leite caixas trazer! 38

39 EXERCÍCIOS

Exercício 1 Codifique um programa que calcule o volume de uma pirâmide, em cm 3, através da fórmula: onde Volume = 1/3 * ÁreaBase * altura ÁreaBase = comprimento * largura O usuário deve fornecer os valores do comprimento, da largura e da altura. Ao entrar um valor, ele também será solicitado a indicar se o valor digitado foi em polegadas ( p ) ou em centímetros ( c ). Quando a entrada for em polegadas, o programa a converte automaticamente para centímetros. Ao final, o programa imprime o volume calculado. Observação: 2.54 cm = 1 polegada. 40

Exercício 1 Solução 41

Exercício 1 Solução 42

Exercício 1 Solução 43

Exercício 2 Na química, o ph de uma solução aquosa é medido por sua acidez. A escala do ph varia entre 0 e 14, inclusive. Uma solução como ph igual a 7 é dita neutra; uma solução com o ph maior que 7 é dita básica; e uma solução com o ph menor que 7 é dita ácida. Codifique um programa que tenha como entrada o ph de uma solução. O programa imprime se o ph é neutro, básico ou ácido. 44

Exercício 3 Codifique um programa que converta uma temperatura em graus celsius para graus kelvin, ou para graus fahrenheit. Após o usuário fornecer a temperatura em celsius, o usuário deve responder f para conversão em fahrenheit, ou k para conversão em kelvin. Fórmulas: 45

Exercício 4 Codifique um programa que gere um valor inteiro aleatório. A seguir o programa imprime a mensagem O NÚMERO GERADO É PAR caso o número gerado seja par; caso contrário imprime a mensagem: O NÚMERO GERADO É ÍMPAR Dica: floor(rand() * 1000) 46

Perguntas? 47