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

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

Algoritmos com seleção

Apresentações semelhantes


Apresentação em tema: "Algoritmos com seleção"— Transcrição da apresentação:

1 Algoritmos com seleção

2 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11
Problema1: Localização de um ponto no plano. 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. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

3 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11
Problema1: Localização de um ponto no plano. 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. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

4 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11
Eixo dos Ys Quadrante 2 Quadrante 1 Origem Eixo dos Xs Quadrante 3 Quadrante 4 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

5 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. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

6 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 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

7 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. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

8 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). Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

9 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11
Operadores em expressões lógicas: Relacionais Lógicos Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

10 OPERADORES RELACIONAIS:
< (menor) > (maior) <= (menor ou igual) >= (maior ou igual) == (igual) != (diferente) Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

11 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11
OPERADORES LÓGICOS: E lógico: && Ou lógico: || Negação: ! Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

12 TABELAS VERDADE DOS OPERADORES LÓGICOS:
Sejam X e Y operandos lógicos e R o resultado de uma particular operação lógica. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

13 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11
E lógico : && Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

14 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11
Ou lógico : || Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

15 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11
Negação : ! Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

16 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11
Exemplos de condições em linguagem C: ((Código > 0) && (Código < 101)) ((Contador > Maximo ) || (Valor == Procurado)) ( ! (Concluído)) Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

17 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11
Retomando o Problema1: Localização de um ponto no plano. 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. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

18 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 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

19 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11
Comando IF: sintaxe Forma geral: if (condição) comando; else Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

20 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11
Comando IF: sintaxe 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); } Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

21 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11
Problema 1 “Localização de ponto no plano” 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; } Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

22 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. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

23 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11
Problema2: Retorna mensagem com base em idade fornecida. Recebida uma idade, fornecer uma das seguintes mensagens: Eh criança : <= 13 Eh jovem: > 13 e <= 21 Eh adulto: > 21 e <= 70 Eh idoso: > 70. Saída: mensagem adequada. Entrada: idade. Processamento: série de testes, verificando em qual caso a idade fornecida se encaixa. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

24 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11
Problema 2 “Retorna mensagem com base em idade fornecida” 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; } Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

25 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. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

26 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. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

27 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11
// Le um valor inteiro e retorna se ele eh par ou impar int 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” Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

28 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. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

29 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. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

30 Maria Aparecida C. Livi - Alg. c/ seleção - v. 11
Problema 4 ”Apresenta dois números inteiros lidos em ordem crescente com base em testes realizados” Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

31 Características da solução do Problema 4:
Uso de ifs aninhados. Obs.: um else sempre se refere ao if imediatamente anterior. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

32 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. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

33 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” Maria Aparecida C. Livi - Alg. c/ seleção - v. 11

34 Lembretes importantes no uso do comando if:
Condições devem estar sempre entre parênteses. É possível usar colocar mais de um comando no if, após a condição ou após o else, mas então os comandos devem estar entre chaves (constituindo-se em um bloco). É possível aninhar ifs, e então cada else vai corresponder ao if imediatamente anterior. Maria Aparecida C. Livi - Alg. c/ seleção - v. 11


Carregar ppt "Algoritmos com seleção"

Apresentações semelhantes


Anúncios Google