A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Algoritmos e Programação MC102

Apresentações semelhantes


Apresentação em tema: "Algoritmos e Programação MC102"— Transcrição da apresentação:

1 Algoritmos e Programação MC102
Prof. Paulo Miranda IC-UNICAMP Aula 3 Comandos Condicionais

2 Mais Operadores C tem vários operadores que permitem comprimir comandos. variável op= expressão; variável = (variável) op (expressão); Operador Exemplos ++ i++; equivale a i = i +1; - - i--; i = i – 1; += i += 2; i = i + 2; - = d -= 3; d = d – 3; *= x *= y+1; x = x*(y+1); /= t /= 2.5; t = t / 2.5; %= p %= 5; p = p%5;

3 Operadores Relacionais
São usados para fazer comparações. Retornam zero (0) ou um (1) dependendo da expressão ser falsa ou verdadeira respectivamente. Possuem menor precedência que a dos operadores aritméticos. Operador Função > maior >= maior ou igual < menor <= menor ou igual == igualdade != diferente

4 Operadores Relacionais
Exemplo: int main(){ int teste1,teste2; teste1 = (10 < 30); teste2 = (20==25); printf(“Teste1= %d, teste2= %d\n”,teste1,teste2); return 0; } Saída: Teste1= 1, teste2= 0

5 Operadores Lógicos && C possui 3 operadores chamados lógicos: || !
Função && lógico E || lógico OU ! lógico de negação Exemplos exp1 && exp2 É verdadeira se as duas exp1 e exp2 forem verdadeiras. exp1 || exp2 É verdadeira se uma das duas exp1 ou exp2 for verdadeira ou se as duas forem verdadeiras. ! exp1 É verdadeira se exp1 for falsa.

6 Operadores Lógicos Exemplo: int main(){ int teste; float x,y;
scanf(“%f %f”,&x,&y); teste = ((x>y && x<5.0)|| y<2.0) ; printf(“Teste: %d\n”,teste); return 0; }

7 Comando condicional Queremos que o computador execute instruções diferentes, dependendo de alguma condição lógica. Ex: Cálculo das raízes de uma equação de segundo grau, precisa tratar em especial o caso de raízes imaginárias. Estrutura condicional simples Estrutura condicional composta

8 Estrutura condicional simples
Permite a escolha de um grupo de instruções (bloco de comandos) quando uma determinada condição lógica é satisfeita. comando1; comando2; comando3; comandoN; expressão 1 comando1; if (expressão){ // bloco de comandos. comando2; comando3; : } comandoN;

9 Estrutura condicional composta
Permite a escolha de um bloco de comandos, quando uma condição é satisfeita, e de um outro bloco quando a condição não é satisfeita. comandoX; if (expressão){ // bloco de comandos. comando1; : } else{ comandoA; comandoB; } comandoY; comandoX; 1 expressão comando1; comandoA; comando2; comandoB; comandoY;

10 Comando condicional Exemplos: int a,b; scanf(“%d %d”,&a,&b);
if(a%2==0) printf(“Número par!\n”); else printf(“Número ímpar!\n”); if(a%b==0) printf(“a é divisível por b!\n”);

11 Comandos if-else ANINHADOS
Comando condicional Exemplo: Maior entre três valores. int a,b,c; scanf(“%d %d %d”,&a,&b,&c); if(a>b && a>c) printf(“a é o maior\n”); else{ if(b>a && b>c) printf(“b é o maior\n”); else printf(“c é o maior\n”); } Comandos if-else ANINHADOS

12 Comando condicional Exemplo: Maior entre três valores. int a,b,c;
scanf(“%d %d %d”,&a,&b,&c); if(a>b && a>c) printf(“a é o maior\n”); else if(b>a && b>c) printf(“b é o maior\n”); else printf(“c é o maior\n”);

13 Comando condicional Equivalências: if (exp1){ comando1; }
else if (exp2){ if (exp1 || exp2){ comando1; }

14 Comando condicional Equivalências: if (exp1){ if (exp2){
} if (exp1 && exp2){ comando1; }

15 Comando condicional Problema: Comparação entre datas
Escreva um programa que determina a data cronologicamente maior de duas datas fornecidas pelo usuário. Cada data deve ser fornecida por três valores inteiros onde o primeiro representa um dia, o segundo um mês e o terceiro um ano.

16 Comando condicional Problema: Comparação entre datas
int d1,m1,a1; //Primeira data. int d2,m2,a2; //Segunda data. scanf("%d/%d/%d",&d1,&m1,&a1); scanf("%d/%d/%d",&d2,&m2,&a2); if(a1>a2 || (a1==a2 && m1>m2) || (a1==a2 && m1==m2 && d1>d2)) printf("Data1 é maior!\n"); else if(a1==a2 && m1==m2 && d1==d2) printf("Datas são iguais!\n"); else printf("Data2 é maior!\n");

17 Comando condicional Problema: Comparação entre datas
int d1,m1,a1; //Primeira data. int d2,m2,a2; //Segunda data. scanf("%d/%d/%d",&d1,&m1,&a1); scanf("%d/%d/%d",&d2,&m2,&a2); if(a1>a2 || (a1==a2 && (m1>m2 || (m1==m2 && d1>d2)))) printf("Data1 é maior!\n"); else if(a1==a2 && m1==m2 && d1==d2) printf("Datas são iguais!\n"); else printf("Data2 é maior!\n");

18 Funções matemáticas Várias funções matemáticas estão disponíveis em C.
Função Descrição sqrt raiz quadrada pow potência log10 logarítmo na base 10 sin seno cos cosseno tan tangente asin arco-seno round arredonda o valor Para utilizar essas funções precisamos incluir suas definições, usando #include <math.h>. Para compilar o programa temos que linkar com a biblioteca matemática acrescentando o parâmetro –lm: Ex: gcc teste.c –o teste –lm

19 Funções matemáticas Exemplo: #include <math.h>
#define PI int main(){ double a,b; a = 1.0; b = exp(a); // atribui para b. a = 4.0; a = pow(a, 3.0); // atribui 64.0 para a. b = log10(100); // atribui 2.0 para b. a = sin(PI/4.0); // atribui para a. return 0; }

20 Funções matemáticas a.x² + b.x + c = 0 Δ = b² - 4.a.c (discriminante)
Problema: Raízes da equação do segundo grau a.x² + b.x + c = 0 Escreva um programa que, dados os coeficientes a, b e c da equação acima, calcula suas raízes e exiba o resultado na tela. O programa deve tratar raízes reais e imaginárias. Δ = b² - 4.a.c (discriminante) -b ± (Δ) 2.a x =

21 Problema: Raízes da equação do segundo grau
#include <math.h> int main(){ float a,b,c,Delta,x1,x2,real,img; scanf("%f %f %f",&a,&b,&c); Delta = b*b - 4*a*c; if(Delta>=0.0){ // raízes reais. x1 = (-b + sqrt(Delta))/(2*a); x2 = (-b - sqrt(Delta))/(2*a); printf("raizes x1= %f, x2= %f\n",x1,x2); } else{ // raízes imaginárias. real = -b/(2*a); img = sqrt(-Delta)/(2*a); printf("raizes x= %f +- %fi\n",real,img); return 0;

22 Comando condicional Problema: Diferença entre horas
Leia dois conjuntos de hora, minuto e segundo e calcule a diferença entre os dois. Por exemplo: Entre com o primeiro horário: 02h 10m 01s Entre com o segundo horário: 01h 20m 03s A diferença é: h 49m 58s

23 Operadores Lógicos Problema: Região e expressões lógicas
Determine qual a expressão lógica que produz verdadeiro para qualquer ponto x e y na regiao hachurada e falso caso contrário. 10 5 10


Carregar ppt "Algoritmos e Programação MC102"

Apresentações semelhantes


Anúncios Google