Programação para Games I

Documentos relacionados
PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

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

Estrutura do programa

MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais

Linguagem C Controle de Fluxo

Introdução à Programação I

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

Linguagem C (estruturas condicionais)

Estruturas Condicionais

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

ALGORITMO I ESTRUTURA DE CONTROLE DECISÃO SE / CASO;

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

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

5 Comando de Seleção Simples e Composta

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO. Prof. Esp. Fabiano Taguchi

Aula 6: Comandos Estruturados Estrutura Condicional

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

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

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

3. Linguagem de Programação C

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO. Prof. Esp. Fabiano Taguchi

Introdução Operadores Relacionais Lógicos Comando If Comando If...else Comando swich()...case...break Operador condicional ternário

Algoritmo e Linguagem C++

Então, poderia basicamente dizer que em um algoritmo a sintaxe seria a seguinte:

Linguagens de Programação I

Programação Estruturada

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

Linguagem C estruturas de repetição

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

LP II Estrutura de Dados

Programação científica C++

Aula 4 Introdução ao C

AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa

Algoritmos e Programação

Aula 03 Introdução à Programação com a Linguagem Python

Lógica de Programação I

Questão 1 Analise o trecho do código abaixo, escrito na linguagem C#:

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

ESTRUTURA CONDICIONAL E SELEÇÃO

Aula 01. Programação Condicional Programação repetitiva

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

Programação de Computadores II

Capítulo 4: Condicionais

Aula 6 Instruções de Seleção Cleverton Hentz

Introdução a Computação

Estruturas de Decisão. Adaptado de Deise Saccol

3. Linguagem de Programação C

7 Comandos e Estruturas de Controle

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

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

Unidade 9: Introdução às Estruturas de Decisão

Aula 05: Condicionais (if / else)

Algoritmos e Técnicas de Programação. Professora: Luciana Faria

Parte 1. Programação (linguagem C) Introdução Geral

Lógica Aula 3. Definição. Estrutura de decisão

controle de fluxo - condicionais

Linguagem de Programação C. Comandos de Seleção e Desvio

Linguagem C Controle do Fluxo de Execução. Lógica de Programação

Transcrição:

Programação para Games I Estrutura de Decisão

Estrutura de Decisão Uma estrutura de decisão examina uma ou mais condições e decide quais delas serão executadas Em jogos digitais, considere inicialmente um menu com a possibilidade do jogador escolher o nível como Fácil Médio Dificil SE ele escolher a opção Fácil, ele terá uma determinada experiência de jogabilidade SE ele escolher a opção Dificil, ele terá uma outra experiência de jogabilidade

Estrutura de Decisão O comando if é uma estrutura de decisão, e o utilizaremos muito durante todo o nosso curso De forma geral temos a seguinte sintaxe: if(condição) { instrução; Ou seja, se a condição for aceita, será executada a instrução, se não for aceita, não será executada a instrução

Estrutura de Decisão #include <stdio.h> main(){ int a=20, b=5; if(a>b) //se a for maior que b { printf( O valor em a é maior que o valor em b );

Estrutura de Decisão No código anterior, o valor da variável a é 20 e o valor da variável b é 5 Nosso código diz: SE a for menor que b, faça: mostre na tela a mensagem valor em a é maior que o valor em b Como o valor em a realmente é maior que o valor em b, então será apresentado na tela a mensagem Agora, no mesmo código, modifique o valor de a para 5 e o valor de b para 20 O que aconteu? Se não aconteceu nada, ótimo, estamos no caminho certo

Estrutura de Decisão Acontece que testamos apenas se o valor em a é maior que o valor em b, entretanto não fizemos o teste contrário Em português diríamos algo assim SE o valor em a for maior que o valor em b escreva na tela valor em a é maior que o valor em b... SENÃO escreva na tela valor em b é maior que o valor em a Note que agora, além do SE, temos o SENÃO Se uma coisa é verdadeira faça isso, SENÃO (ou seja, se não for), faça essa outra ação Veja no próximo slide como ficaria o código

Estrutura de Decisão #include <stdio.h> main(){ int a=20, b=5; if(a>b) //se a for maior que b { printf( O valor em a é maior que o valor em b ); else { printf( O valor em b é maior que o valor em a );

Estrutura de Decisão Desta forma concluímos que, ao executarmos uma determinada condição, se ela for satisfeita executaremos a instrução entre as chaves O senão simboliza a negação das condições anteriores (dos ifs anteriores)

Estrutura de Decisão Agora, o que acontece quando o valor em a for igual a 20, e o valor em b for igual a 20? Experimente!

Estrutura de Decisão Aninhada Quando uma estrutura de decisão é o falso de uma outra, chamamos o todo desta estrutura como Estrutura de Decisão Aninhada ou encaixada ou encadeada No exemplo anterior, se o valor de a fosse igual ao valor de b, seria apresentado na tela a mensagem O valor em b é maior que o valor em a o que não condiz com a verdade Desta forma, precisamos explorar todas as possibilidades

Estrutura de Decisão Aninhada Em português, é como se falássemos: SE o valor em a for maior que o valor em b escreva na tela valor em a é maior que o valor em b... SENÃO, SE o valor em b for maior que o valor em a escreva na tela valor em b é maior que o valor em a... SENÃO escreva na tela valor em a é igual ao valor em b Agora temos um SENÃO, SE, ele é responsável por explorar todas as possibilidades No próximo slide, temos a estrutura de decisão aninhada no exemplo de comparação das variáveis a e b

Estrutura de Decisão Aninhada #include <stdio.h> main(){ int a=20, b=5; if(a>b) //se a for maior que b { printf( O valor em a é maior que o valor em b ); else if(b>a) { printf( O valor em b é maior que o valor em a ); else printf( O valor em a é igual ao valor em b );

Estrutura de Decisão Aninhada No exemplo anterior, utilizamos o primeiro if e uma sequencia de else-if e else Você pode usar quantos if-else desejar, tudo depende de quantas opções você tem disponível No nosso caso, tínhamos apenas 3: ou o valor de a é maior que o valor de b ou o valor de b é maior que o valor de a ou o valor de a e b são iguais

Estrutura de Decisão Aninhada No próximo slide vamos fazer um programa que verifica se o número é par ou ímpar Aqui nós utilizaremos o operador % Este operador é responsável por pegar o resto de uma divisão, por exemplo, se fizermos resultado = 5%2; a variável resultado receberá o valor 1, pois 1 é o resto da divisão de 5 por 2 Por outro lado, se fizermos resultado = 4%2; a variável resultado receberá o valor 0, pois 0 é o resto da divisão de 4 por 2 Desta forma, um número será dito como par SE a divisão de um número por 2 tiver como resto o valor zero

Estrutura de Decisão Aninhada #include <stdio.h> main(){ int n1; printf( Digite um numero para verificar se eh par ou impar ); scanf( %d,&n1); if(n1%2==0){ printf( O numero %d eh par,n1); else{ printf( O numero %d eh impar,n1);

Operadores Relacionais Nos exemplos anteriores vimos alguns exemplos de como utilizar a estrutura de decisão if e if-else Note que, entre os parênteses do if, sempre fazemos uma comparação de um valor com outro valor Para realizar esta comparação utilizamos o conceito de Operadores Relacionais

Operadores Relacionais Operadores relacionais são utilizado para comparar valores, tendo como resultado um valor booleano (VERDADEIRO ou FALSO) Os operadores relacionais são: == (IGUAL)!= (DIFERENTE) > (MAIOR) < (MENOR) >= (MAIOR IGUAL) <= (MENOR IGUAL)

Operadores Relacionais Os operadores relacionais podem mudar de uma linguagem para outra? SIM, em algumas linguagens o símbolo de diferente é!=, em outras é <> Veja que, em C e algumas outras linguagens, apenas 1 sinal de igual é atribuição, ou seja, uma variável recebendo outro valor, porém, se tivermos 2 sinais de igual, é uma comparação num = 4; //a variável num está recebendo o valor 4 num == 4; //estamos comparando se o conteúdo da variável num é igual a 4 A seguir, veja o teste lógico utilizando os operadores relacionais Se o resultado for 1, significa que é verdadeiro, se for 0, significa que é falso

Operadores Relacionais #include <stdio.h> main(){ int n1=4, n2=2; int resultado; resultado = n1 > n2; printf( N1 é maior que N2? %d,resultado); resultado = n1 < n2; printf( N1 é menor que N2? %d,resultado); resultado = n1 == n2; printf( N1 é igual a N2? %d,resultado); resultado = n1!= n2; printf( N1 é diferente de N2? %d,resultado);

Exemplo utilizando estrutura condicional aninhada e operadores relacionais #include <stdio.h> main(){ float media; scanf( %f,&media); if(media==10){ printf( Parabéns, você tirou uma ótima nota e está aprovado! ); if(media>=7){ printf( Você está aprovado ); if(media>=4){ printf( Você está de exame e quase ficou de DEP ); if(media<3) printf( Reprovado );

Operadores Lógicos No exemplo anterior, o que será impresso na tela se o aluno tirar nota 8? e nota 6? O resultado é conforme o esperado?

Operadores Lógicos Qual o critério para saber se o aluno foi aprovado, reprovado ou está de exame? SE a média for MAIOR IGUAL a 7 aprovado SE a média for MAIOR IGUAL a 4 E MENOR que 7 exame SE a média for MENOR que 4 reprovado Note que agora apareceu um operador novo, a ele damos nome de operador lógico

Operadores Lógicos Qual o critério para saber se o aluno foi aprovado, reprovado ou está de exame? SE a média for MAIOR IGUAL a 7 aprovado SE a média for MAIOR IGUAL a 4 E MENOR que 7 exame SE a média for MENOR que 4 reprovado Note que agora apareceu um operador novo, a ele damos nome de operador lógico Os operadores lógicos são utilizados quando é necessário usar duas ou mais condições dentro da mesma instrução if para que seja tomada uma única decisão cujo resultado será verdadeiro ou falso.

Operadores Lógicos E VERDADEIRO VERDADEIRO VERDADEIRO VERDADEIRO FALSO FALSO FALSO VERDADEIRO FALSO FALSO FALSO FALSO Para o caso do operador E, o resultado será verdadeiro caso todas as comparações sejam verdadeiras.

Operadores Lógicos OU VERDADEIRO VERDADEIRO VERDADEIRO VERDADEIRO FALSO VERDADEIRO FALSO VERDADEIRO VERDADEIRO FALSO FALSO FALSO Para o caso do operador OU, o resultado será verdadeiro em todos os casos, exceto quando as duas comparações forem falsas

Operadores Lógicos Em C, e na maioria das linguagens de programação, o operador E é representado por && e o operador OU é representado por II No próximo slide vamos adaptar o código do exemplo anterior, agora colocando o operador lógico E

Operadores Lógicos #include <stdio.h> main(){ float media; scanf( %f,&media); if(media==10){ printf( Parabéns, você tirou uma ótima nota e está aprovado! ); if(media>=7 && media<10){ printf( Você está aprovado ); if(media>=4 && media<7){ printf( Você está de exame e quase ficou de DEP ); if(media<3) printf( Reprovado );

Operadores Lógicos Agora, experimente substituir o && (E) do exemplo anterior e colocar o OU ( )