Comandos de Desvio 1

Documentos relacionados
Comandos de Desvio 1

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

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

Comandos de Desvio 2

Fixação de conteúdo teórico

Comandos de repetição while

AULA TEÓRICA 03 COMANDO CONDICIONAL

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

Aula Teórica 03. Comandos Condicionais (Decisão)

Material Didático Proposto

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

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

Comandos de repetição while

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.

Funções: Primeira Parte

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

Aula Teórica 04. Material Didático

Prática 10 - Funções

Comandos de repetição while

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

Estruturas condicionais

Aula 6: Comandos Estruturados Estrutura Condicional

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

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

Exercícios Repetição

PROGRAMAÇÃO A. Estrutura Condicional

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

Aula 05: Condicionais (if / else)

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

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

ESTRUTURA CONDICIONAL E SELEÇÃO

BCC701 Programação de Computadores I Lista de Exercícios 05: Funções Definidas pelo Usuário

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

Universidade Federal de Uberlândia Faculdade de Computação. Estruturas de repetição

Introdução à Programação

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

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

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

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

Estruturas de Seleção Seleção Simples e Composta (parte 1)

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...

Algoritmos e Programação

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

Introdução a Programação de Jogos

Estruturas de seleção. Prof.: Jesus

Oficina de Python Prof. Me. José Carlos Perini

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

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

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

Aula 15: Repetição (Parte 3)

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

Introdução à Ciência da Computação SCC0120 Prof. Zhao Liang. Aula de Laboratório 1: Operadores, comandos básicos e comando IF 27/03/2012

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

, se x = y. , se x > y

Estruturas Condicionais

Oficina de Python Prof. Me. José Carlos Perini

Introdução à Programação I

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

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Estruturas de condição. Prof. Alex Camargo

Introdução à Computação - aulas 01 e 02 -

Introdução a programação Controle de Fluxo

Programação científica C++

Linguagem C/C++ Estrutura Condicional. Prof: Rosemary Melo

Professor Mauricio Lederer Algoritmos. Entrada e saída de dados

BCC701 Programação de Computadores I Lista de Exercícios 04: Funções Definidas pelo Usuário

Linguagem C (estruturas condicionais)

2ª Lista de Exercícios de Programação I

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

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

Material Didático Unificado.

Introdução à Programação. Expressões Booleanas e Comandos Condicionais

Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Exercício... Para começar... Resolução... Para começar... Para começar...

Lista de Exercícios 2

BCC701 Programação de Computadores I Lista de Exercícios 04: Funções Definidas pelo Usuário

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

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

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

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

Parte I - Expressões lógicas e operadores

Aula 7: Estrutura de Decisão

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

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

MC-102 Aula 05 Comandos Condicionais

Introdução a Programação de Jogos

Exercícios: comandos condicionais

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

CAPÍTULO IV. Estruturas Condicionais CAPÍTULO IV ESTRUTURAS CONDICIONAIS ESTRUTURA CONDICIONAL SIMPLES

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

CAPÍTULO IV. Estruturas Condicionais CAPÍTULO IV ESTRUTURAS CONDICIONAIS ESTRUTURA CONDICIONAL SIMPLES

Aquecimento. program math2 integer:: x,num1 write(*,*)"digite dois números read(*,*) x,num1 write(*,*)"a soma é",x+y end program math2

CADERNO DE EXERCÍCIOS ALGORITMOS

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

Exercícios: Comandos de Repetição

Aula 3 Oficina de Programação Algoritmos - Parte 2. Profa. Elaine Faria UFU

Lógica e Linguagem de Programação Aula 03 - Estruturas de controle Estrutura Condicional - Exercícios Resolvidos Professor: Danilo Giacobo

para / for (com teste numérico) enquanto / while (com teste lógico no início) repita até que / do...while (com teste lógico no fim)

Transcrição:

Programação de Computadores I UFOP DECOM 2014 1 Aula prática 3 Comandos de Desvio 1 Sumário Resumo Nesta aula você irá resolver problemas que requerem uma decisão com base em um teste, ou condição. Para implementar a solução de problemas desse tipo, são utlizados comandos de desvio do fluxo de execução do programa (if-then-). 1 Comando de desvio 1 2 Operações relacionais 2 3 Validação de dados 2 4 Problemas 3 1 Comando de desvio Suponha que você quer escrever um programa Scilab para calcular o valor de f (x), onde f é a função definida a seguir, e x é um valor especificado pelo usuário. f (x) = ln 1 1 x Note que essa função não é definida se x = 1. Portanto, seu programa deverá testar se o valor especificado pelo usuário é igual a 1 e, em caso afirmativo, informar ao usuário que esse não é um valor válido. Caso contrário, o programa deve calcular e imprimir o valor de f (x). O programa poderia ser então escrito do seguinte modo: x = input("informe o valor de x (deve ser diferente de 1): ") if x <> 1 then printf("f(%g) = %g\n", x, 1/log(1-x)) printf("valor inválido: deve ser diferente de 1\n") Um comando if-then- tem a seguinte sintaxe: if condição then bloco de comandos 1 bloco de comandos 2 A condição deve ser uma expressão lógica (booleana), isto é, uma expressão cujo valor é verdadeiro (%t) ou é falso (%f). Cada bloco de comandos é uma sequência de comandos, incluindo, possivelmente, outros comandos de desvio. A execução de um comando if-then- é feita do seguinte modo: primeiro, a condição é avaliada; se o valor resultante for %t, o bloco de comandos 1 é executado; caso contrário (se o valor for %f), o bloco de comandos 2 é executado. Observação: a parte do comando pode ser omitida, caso não se deseje executar nenhum comando particular no caso em que a condição seja falsa. 1

2 Operações relacionais Expressões lógicas podem ser construídas usando-se operadores relacionais (tal como < ou <=), e podem ser combinadas por meio de operadores lógicos, tais como & e. Os operadores relacionais e os operadores lógicos disponíveis em Scilab são mostrados nas tabelas a seguir. Operadores Relacionais operação descrição x < y x menor que y x <= y x menor ou igual a y x > y x maior que y x >= y x maior ou igual a y x == y x igual a y x ~= y x diferente de y x <> y Operadores Lógicos operação descrição semântica ~b negação (não) verdadeira se e somente se b é falsa b1 & b2 conjunção (e) verdadeira se e somente se b1 e b2 são ambas verdadeiras b1 b2 disjunção (ou) falsa se e somente se b1 e b2 são ambas falsas 3 Validação de dados Muitas vezes os dados informados pelo usuário em uma aplicação precisam ser validados antes de serem usados. Isto pode ser feito usando um comando condicional, como é ilustrado no exemplo a seguir. Para verificar se um número é inteiro, converta-o para o tipo inteiro usando a função int e verifique se o resultado é igual ao número original. Para verificar se um número é natural, verifique se ele é inteiro e não negativo. Por exemplo, o programa seguinte obtem um número natural e faz a validação do mesmo. num = input("digite um número natural: "); if int(num) <> num num < 0 then printf("número inválido\n"); printf("número válido: %g\n", num); Veja uma outra maneira de fazer a mesma validação: num = input("digite um número natural: "); if int(num) == num & num >= 0 then printf("número válido: %g\n", num); printf("número inválido\n"); digite um número natural: 45 número válido: 45 digite um número natural: 2.34 número inválido 2

digite um número natural: -67 número inválido digite um número natural: -0.25 número inválido 4 Problemas Tarefa 1: Fechamento de notas Escreva um programa que leia quatro notas de um aluno, calcule e mostre a média aritmética das notas e a mensagem de aprovado ou reprovado, considerando que para aprovação é necessária a média mínima de sete. Não é necessário fazer a validação dos dados de entrada. RESULTADO DAS NOTAS ------------------- nota 1: 8.1 nota 2: 9.8 nota 3: 6.9 nota 4: 7.5 a média aritmética das notas é 8.075 aprovado RESULTADO DAS NOTAS ------------------- nota 1: 6.75 nota 2: 5.2 nota 3: 7 nota 4: 4.5 a média aritmética das notas é 5.8625 reprovado 3

clc; clear; printf("resultado DAS NOTAS\n"); printf("-------------------\n") nota1 = input("nota 1: "); nota2 = input("nota 2: "); nota3 = input("nota 3: "); nota4 = input("nota 4: "); // média aritmética das notas media = (nota1 + nota2 + nota3 + nota4)/4; printf("a média aritmética das notas é %g\n", media); // situação do aluno if media >= 7 then printf("aprovado\n"); printf("reprovado\n"); Tarefa 2: Ternos pitagóricos Em Matemática, nomeadamente em Teoria dos Números, um terno pitagórico (ou trio pitagórico, ou ainda tripla pitagórica) é formado por três números naturais a, b e c tais que a 2 +b 2 = c 2. O nome vem do teorema de Pitágoras, que afirma que se as medidas dos lados de um triângulo retângulo são números inteiros, então são um terno pitagórico. Codifique um programa que leia três números naturais e verifique se representam um terno pitagórico. Caso os valores digitados pelo usuário não sejam números naturais, o programa deve apresentar uma mensagem indicando que os valores são inválidos. Verificação de ternos pitagóricos Digite o valor de a: 3 Digite o valor de b: 4 Digite o valor de c: -5.6 Valores inválidos! Verificação de ternos pitagóricos Digite o valor de a: 3 Digite o valor de b: 4 Digite o valor de c: 5 3, 4 e 5 representam um terno pitagórico 4

Verificação de ternos pitagóricos Digite o valor de a: 2 Digite o valor de b: 2 Digite o valor de c: 10 Os valores não representam um terno pitagórico clc; clear; printf("verificação de ternos pitagóricos\n"); printf("\n"); a = input("digite o valor de a: "); b = input("digite o valor de b: "); c = input("digite o valor de c: "); // validação dos dados de entrada if int(a) <> a int(b) <> b int(c) <> c a < 0 b < 0 c < 0 then printf("valores inválidos!\n"); // verificação de terno pitagórico if a^2 + b^2 == c^2 then printf("%g, %g e %g representam um terno pitagórico\n", a, b, c); printf("os valores não representam um terno pitagórico\n"); Tarefa 3: Peso ideal Segundo uma tabela médica, o peso ideal de uma pessoa está relacionado com a altura e o sexo da pessoa, como mostra a tabela a seguir. Fazer um programa que receba como entradas a altura e o sexo; a seguir ele calcula e imprime o peso ideal dessa pessoa, utilizando as seguintes fórmulas: sexo peso ideal masculino 72.7 h 58 feminino 62.1 h 44.7 onde h é a altura da pessoa. O programa deve verificar se os dados são válidos, ou seja, se a altura não é negativa e o sexo é m ou f. Veja a seguir ilustrações de entradas e saídas de execuções do programa. Cálculo do peso ideal Qual é a altura (em metros)? -1.4 Qual é o sexo (m/f)? m Dados inválidos! 5

Cálculo do peso ideal Qual é a altura (em metros)? 1.72 Qual é o sexo (m/f)? h Dados inválidos! Cálculo do peso ideal Qual é a altura (em metros)? 1.65 Qual é o sexo (m/f)? f O peso ideal é 57.765 kg Cálculo do peso ideal Qual é a altura (em metros)? 1.8 Qual é o sexo (m/f)? m O peso ideal é 72.86 kg clc; clear; printf("cálculo do peso ideal\n"); printf("\n"); altura = input("qual é a altura (em metros)? "); sexo = input("qual é o sexo (m/f)? ", "string"); // validação dos dados de entrada if altura < 0 ~(sexo == "m" sexo == "f") then printf("dados inválidos!\n"); // cálculo do peso ideal if sexo == "m" then peso_ideal = 72.7 * altura - 58; peso_ideal = 62.1 * altura - 44.7; // exibição do resultado printf("o peso ideal é %g kg\n", peso_ideal); Tarefa 4: Quantidade de ladrilhos Um pedreiro precisa calcular quantos ladrilhos de cerâmica ele deve comprar para cobrir a área de uma sala. Faça um programa que leia a área da sala (em cm 2 ), e o tipo de ladrilho a ser adquirido, e calcule e imprima o número de ladrilhos necessários. As áreas de cada um dos tipos de ladrilhos disponíveis são dadas na tabela abaixo: 6

tipo do ladrilho área de uma peça (cm 2 ) 1 80 2 60 3 40 Cálculo da quantidade de peças de ladrilho Área da sala (em cm^2): 820 Tipo do ladrilho (1/2/3): 1 Quantidade de ladrilhos necessários: 11 Cálculo da quantidade de peças de ladrilho Área da sala (em cm^2): 820 Tipo do ladrilho (1/2/3): 2 Quantidade de ladrilhos necessários: 14 Cálculo da quantidade de peças de ladrilho Área da sala (em cm^2): 820 Tipo do ladrilho (1/2/3): 3 Quantidade de ladrilhos necessários: 21 Cálculo da quantidade de peças de ladrilho Área da sala (em cm^2): -500 Tipo do ladrilho (1/2/3): 8 Dados inválidos! Dica Os dados seráo inválidos quando: o área for negativa, OU NÃO for verdade que o tipo é 1 OU o tipo é 2 OU o tipo é 3 Codifique esta condição usando os operadores lógicos e ~. 7

clc; clear; printf("cálculo da quantidade de peças de ladrilho\n"); printf("\n"); area = input("área da sala (em cm^2): "); tipo = input("tipo do ladrilho (1/2/3): "); // validação dos dados if area < 0 ~ (tipo == 1 tipo == 2 tipo == 3) then printf("\ndados inválidos!\n"); // cálculo if tipo == 1 then quantidade = ceil(area/80); if tipo == 2 then quantidade = ceil(area/60); quantidade = ceil(area/40); // exibição da quantidade de ladrilhos printf("\nquantidade de ladrilhos necessários: %g\n", quantidade); Tarefa 5: Locação de veículos Uma empresa de locação de veículos utiliza os seguintes valores para locação de um veículo: R$ 1,20 para os primeiros 100 km rodados, R$ 0,80 para os próximos 200 km rodados, e R$ 0,70 para a quilometragem acima de 300 km. Escreva um programa Scilab que tenha como entrada a quilometragem percorrida por um veículo e que calcule e exiba o custo total da locação e o custo médio por quilômetro percorrido por esse veículo. Veja a seguir exemplos de execução do programa. distância percorrida (km): -348 dados inválidos! distância percorrida (km): 80 custo total da locação: R$96 custo médio: R$1.2/km 8

distância percorrida (km): 150 custo total da locação: R$160 custo médio: R$1.06667/km distância percorrida (km): 220 custo total da locação: R$216 custo médio: R$0.981818/km distância percorrida (km): 431.6 custo total da locação: R$372.12 custo médio: R$0.862187/km clc; clear; printf("\n"); printf("\n"); distancia = input("distância percorrida (km): "); // validação dos dados if distancia <= 0 then printf("dados inválidos!\n"); // cálculos if distancia <= 100 then custo = 1.20*distancia; if distancia <= 300 then custo = 1.20*100 + 0.80*(distancia - 100); custo = 1.20*100 + 0.80*200 + 0.70*(distancia - 300); customedio = custo/distancia; // exibição dos resultados printf("custo total da locação: R$%g\n", custo); printf("custo médio: R$%g/km\n", customedio); 9