algoritmos com seleção. maria aparecida c. livi - alg. c/ seleção - v. 11 dados um par de...

34
Algoritmos com seleção

Upload: internet

Post on 17-Apr-2015

105 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Algoritmos com seleção

Page 2: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Dados um par de valores x e y, que representam as coordenadas de um ponto no plano, determinar a localização do ponto: se em um quadrante, em um dos eixos ou na origem.

Problema1: Localização de um ponto no plano.

Page 3: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Dados um par de valores x e y, que representam as coordenadas de um ponto no plano, determinar a localização do ponto: se em um quadrante, em um dos eixos ou na origem.

Problema1: Localização de um ponto no plano.

Saída: mensagem adequada Entradas: coordenadas x e y de um ponto Processamento:

série de testes, verificando em qual caso o par de valores enquadra-se.

Page 4: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Quadrante 1Quadrante 2

Quadrante 4Quadrante 3

Eixo dos Xs

Eixo dos Ys

Origem

Page 5: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Passos do Algoritmo Leitura dos valores de x e y. Determinação de em que

quadrante, se em um eixo ou se na origem, o ponto encontra-se.

Escrita da mensagem, onde é indicada a localização do ponto.

Page 6: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Escrita do algoritmo em linguagem algorítmica:

Início Localizacao Ler x , y Se x = 0 e y = 0 então escrever “Ponto

na origem” Se x > 0 e y > 0 então escrever “Quadrante 1” etc…Fim Localizacao

Page 7: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Algoritmo com seleção

Algoritmo em que a execução de

determinados passos está

subordinada a uma condição.

Page 8: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Condição

Expressão lógica:

expressão cujo resultado é um

valor lógico (verdadeiro ou falso).

Page 9: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

•Relacionais

•Lógicos

Operadores em expressões lógicas:

Page 10: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

OPERADORES RELACIONAIS:

< (menor)

> (maior)

<= (menor ou igual)

>= (maior ou igual)

== (igual)

!= (diferente)

Page 11: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

OPERADORES LÓGICOS:

E lógico: &&

Ou lógico: ||

Negação: !

Page 12: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

TABELAS VERDADE DOS

OPERADORES LÓGICOS:

Sejam X e Y operandos lógicos e R o resultado de uma particular operação

lógica.

Page 13: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

&&X Y RV V VV F FF V FF F F

E lógico : &&

Page 14: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

| |X Y RV V VV F VF V VF F F

Ou lógico : ||

Page 15: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

X RV FF V

!

Negação : !

Page 16: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

((Código > 0) && (Código < 101))

((Contador > Maximo ) || (Valor == Procurado))

( ! (Concluído))

Exemplos de condições em linguagem C:

Page 17: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Dados um par de valores x e y, que representam as coordenadas de um ponto no plano, determinar a localização do ponto: se em um quadrante, em um dos eixos ou na origem.

Saída: mensagem adequada Entradas: coordenadas x e y de um ponto Processamento:

série de testes, verificando em qual caso o par de valores enquadra-se.

Retomando o Problema1: Localização de um ponto no plano.

Page 18: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Implementação de algoritmos com seleção em linguagem C:

Além das instruções já vistas: Scanf Printf atribuição --> =

Nova instrução:

if

Page 19: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Comando IF: sintaxe

Forma geral:if (condição) comando;else comando;

Page 20: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

A parte do comando IF que inicia no else é opcional.Sempre onde aparecer comando, pode ser escrito: um comando apenas

if (idade > 17) votante = votante + 1;

ou mais de um comando, obrigatoriamente entre chaves ({ }), formando um bloco.

if (valor1 <= 0 || valor2 <= 0) printf(“valores deveriam ser positivos”);

else { soma = valor1 + valor2;

printf(“soma = %d”, soma); }

Comando IF: sintaxe

Page 21: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

int main ( ){ float x , y; printf("\n Coordenadas: x = "); scanf("%f ", &x); printf(” y = "); scanf(" %f", &y); if ((x>0) && (y >0)) printf("\n Ponto no quadrante 1"); (...) if ((x==0) && (y = =0)) printf("\n Ponto na origem"); if ((x==0) && (y != 0)) printf("\n Ponto no eixo dos y"); if ((x!=0) && (y ==0)) printf("\n Ponto no eixo dos x"); return 0;}

Problema 1 “Localização de ponto no plano”

Page 22: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Características da solução do Problema1:

Usa sucessivos ifs sem else. Em cada condição avaliada é

indicado apenas o que fazer se condição for verdadeira.

Se condição for falsa, o próximo comando será executado.

Page 23: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Recebida uma idade, fornecer uma das seguintes mensagens:Eh criança : <= 13Eh jovem: > 13 e <= 21Eh adulto: > 21 e <= 70Eh idoso: > 70.

Problema2: Retorna mensagem com base em idade fornecida.

Saída: mensagem adequada. Entrada: idade. Processamento:

série de testes, verificando em qual caso a idade fornecida se encaixa.

Page 24: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

int main(){ int idade; printf("\n Digite a idade: "); scanf("%d", &idade); if (idade > 70) printf("\n Idoso"); if ((idade > 21) && (idade <=70)) printf("\n Adulto"); if ((idade > 13)&&(idade <=21)) printf("\n jovem"); if (idade <=13) printf("\n crianca"); return 0; }

Problema 2

“Retorna mensagem

com base em idade

fornecida”

Page 25: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Características da solução do Problema 2:

Usa sucessivos ifs sem else. Em cada condição avaliada é

indicado apenas o que fazer se condição for verdadeira.

Se condição for falsa, o próximo comando será executado.

Page 26: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Problema 3:

Informa se um número inteiro é par ou ímpar

Saída: mensagem.

Entradas: um valor inteiro.

Processamento: determinar se o número é par ou ímpar.

Page 27: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

// Le um valor inteiro e retorna se ele eh par ou imparint main ( ){ int numero; printf("\n Digite um numero inteiro: "); scanf("%d", &numero); if (numero % 2 == 0) printf("\n Numero %d eh par\n", numero); else printf("\n Numero %d eh impar\n", numero); system(”PAUSE"); return 0; }

Problema 3

”Informa se número é par ou ímpar”

Page 28: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Características da solução do Problema 3:

Definição do ramo do else, para o caso da condição do if não se verificar.

Page 29: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Problema 4:

Lidos dois valores, apresenta-os em ordem crescente.

Saída: os dois valores lidos apresentados em ordem crescente.

Entradas: dois valores em ordem qualquer.

Processamento: preparação da apresentação dos dois valores.

Page 30: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

int main( ){ int a , b; printf("\n O primeiro numero: "); scanf("%d", &a); printf("\n O segundo numero: "); scanf("%d", &b); if (a > b) printf("\n Em ordem crescente: %d e %d ", b , a); else if (b > a) printf("\n Em ordem crescente: %d e %d ", a , b); else printf("\n %d e %d são iguais", a , b);

return 0;}

Problema 4

”Apresenta dois números inteiros lidos em ordem crescente com base em testes realizados”

Page 31: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Características da solução do Problema 4:

Uso de ifs aninhados.

Obs.: um else sempre se refere ao if imediatamente anterior.

Page 32: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Problema 5:Soma ou multiplica dois

valores inteiros lidos, dependendo de um caractere fornecido pelo usuário.

Saída: soma ou multiplicação dos dois valores inteiros lidos.

Entradas: uma letra (S ou M) e dois valores inteiros.

Processamento: realização do cálculo solicitado.

Page 33: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

{ char codigo; int valor1, valor2, result; printf("\n Digite o codigo (S - Soma ou M - multiplicacao): "); scanf("%c", &codigo); printf("\n Digite o valor 1: "); scanf("%d", &valor1); printf("\n Digite o valor 2: "); scanf("%d", &valor2); if (codigo = = 'S') { result = valor1 + valor2; printf("\n Resultado da soma: %d\n", result); } if (codigo = = 'M') { result = valor1 * valor2; printf("\n Resultado da multiplicacao: %d\n", result); } system("pause"); return 0; }

Problema 5

”Som ou multiplica

dois valores inteiros

lidos”

Page 34: Algoritmos com seleção. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11 Dados um par de valores x e y, que representam as coordenadas de um ponto no

Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

Lembretes importantes no uso do comando if:

Condições devem estar sempre entre parênteses.

É possível usar colocar mais de um comandono if, após a condição ou após o else, mas então os comandos devem estarentre chaves (constituindo-se em um bloco).

É possível aninhar ifs, e então cada else vai corresponder ao if imediatamente anterior.