lógica estrutura de seleção

23
Algoritmos e Lógica de Programação Prof. Dr. Antonio Marcos SELMINI Estrutura de Seleção [email protected]

Upload: fernanda-thais-pereira-morgado

Post on 03-Oct-2015

1 views

Category:

Documents


0 download

DESCRIPTION

Aula de logica

TRANSCRIPT

  • Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Estrutura de [email protected]

  • 2Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Introduo

    At esse ponto os nossos algoritmos eram caracterizados apenas por uma estrutura sequencial, ou seja, no havia nenhum desvio condicional;

    O algoritmo comeava com a declarao de variveis, executava um conjunto de instrues e era finalizado;

    Na prtica nem sempre se tem um algoritmo sequencial; A maioria dos problemas do dia-a-dia, e muitas das aplicaes

    comerciais necessitam de testes lgicos para se chegar a soluo do problema;

    Situaes em que usamos estrutura condicional: clculo de juros por dia de atraso, situao de um aluno em uma disciplina, dentre outras...

  • 3Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Operadores Relacionais e Lgicos

    Quando comeamos a trabalhar com estrutura de seleo, muitas vezes precisamos criar condies lgicas;

    A maioria das condies lgicas so criadas so os operadores relacionais e lgicos;

    Os operadores relacionais como o prprio nome indica so utilizados para relacionar o contedo das variveis;

    O contedo de uma varivel igual ou diferente do contedo de outra varivel?

    O contedo de uma varivel maior ou menor do que o contedo de outra varivel?

    Os operadores relacionais so: >, =,

  • 4Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Operadores Relacionais

    Operao Smbolo Exemplo SignificadoIgualdade == A == B O valor de A igual ao valor de B?Maior > A > B O valor de A maior do que o valor de B?Maior ou igual >= A >= B O valor de A maior ou igual ao valor de B?Menor < A < B O valor de A menor do que o valor de B?Menor ou igual

  • 5Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Operadores Lgicos

    Os operadores lgicos so extremamente importantes no desenvolvimento de programas (criao de condies lgicas);

    Normalmente temos vrias expresses aritmticas e relacionais e devemos combinar os seus resultados com o objetivo de obter apenas um;

    Os operadores lgicos so utilizados para esse propsito; O resultado de uma expresso que utiliza operadores

    lgicos booleano (VERDADEIRO ou FALSO); Vamos utilizar trs operadores lgicos: E, OU e NO; O operador E e OU so binrios, enquanto que, o operador

    NO unrio; O operador E em C representado por &&. O operador ou

    representado por || e o no representado por !;

  • 6Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Operadores Lgicos Tabela Verdade

    p q p && q !(p && q) p || q !(p || q)Verdadeiro Verdadeiro Verdadeiro Falso Verdadeiro FalsoVerdadeiro Falso Falso Verdadeiro Verdadeiro Falso

    Falso Verdadeiro Falso Verdadeiro Verdadeiro FalsoFalso Falso Falso Verdadeiro Falso Verdadeiro

    No se esquea que o valor verdadeiro representado por 1, enquantoque o valor falso representado por 0.

  • 7Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Estrutura de Seleo Simples

    Uma estrutura de seleo utilizada quando um algoritmo necessita escolher uma instruo ou um conjunto de instrues quando uma condio (representada por uma expresso relacional ou lgica) satisfeita;

    Em portugus estruturado, a instruo de seleo representada pela instruo se(). Sua sintaxe :

    se (condio)Incio

    ...

    Fim

    O conjunto de instrues ser executadocaso a condio resulte em um valorverdadeiro.

  • 8Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Estrutura de Seleo Simples em C

    Em C a estrutura de seleo simples representada pelo comando if();

    Sua sintaxe :

    if (condio){

    ;;...

    ;}

    O conjunto de instrues ser executadocaso a condio resulte em um valorverdadeiro.

  • 9Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Estrutura de Seleo Simples Exemplo 1

    Algoritmo para verificar se um nmero inteiro fornecido pelo usurio par.

    Inciointeiro n, rimprima("digite um valor inteiro: ")leia("%d", &n)r = n % 2se(r == 0)incio

    imprima("o nmero informado par")fim

    Fim

  • 10

    Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Estrutura de Seleo Simples Exemplo 1

    Algoritmo para verificar se um nmero inteiro fornecido pelo usurio par.

    #include #include int main(){

    int n, r;printf("digite um valor inteiro: ");scanf("%d", &n);r = n % 2;if(r == 0){

    printf("O nmero informado par");}system("pause");

    }

  • 11

    Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Estrutura de Seleo Simples Exemplo 2 em C

    Algoritmo para verificar se um nmero fornecido pelo usurio positivo.

    #include #include int main(){

    int n;printf("digite um valor inteiro: ");scanf("%d", &n);if(n > 0) {

    printf("o nmero informado positivo");}system("pause");

    }

  • 12

    Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Estrutura de Seleo Composta

    Na estrutura de seleo simples, o conjunto de instrues s executado quando a condio lgica resultar em um valor verdadeiro;

    Podemos reestruturar o comando de seleo simples para trabalhar quando a condio lgica resultar em um valor falso tambm;

    Neste caso acrescenta-se apenas um complemento ao comando se(). Sua nova estrutura passa a ser:

    se(condio)Incio

    ...

    Fim

    senoIncio

    ...

    Fim

  • 13

    Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Estrutura de Seleo Composta em C

    A estrutura de seleo composta em C representada pelo comando if()-else;

    Sua sintaxe :

    if(condio){

    ;;...

    ;}

    else{

    ;;...

    ;}

  • 14

    Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Estrutura de Seleo Composta Exemplo 1

    Algoritmo para verificar se um nmero inteiro fornecido pelo usurio par ou mpar.

    Inciointeiro n, rimprima("digite um valor inteiro: ")leia("%d", &n)r = n % 2se(r == 0)

    imprima("o nmero informado par")seno

    imprima("o nmero mpar")Fim

  • 15

    Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Estrutura de Seleo Composta Exemplo 1 em C

    Algoritmo para verificar se um nmero inteiro fornecido pelo usurio par ou mpar.

    #include #include int main(){

    int n, r;printf("digite um valor inteiro: ");scanf("%d", &n);r = n % 2;if(r == 0)

    printf("o nmero informado par");else

    printf("o nmero mpar");system("pause");

    }

  • 16

    Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Estrutura de Seleo Composta Exemplo 2

    Algoritmo para verificar se um nmero fornecido pelo usurio positivo ou negativo.

    Inciointeiro nimprima("digite um valor inteiro: ")leia("%d", &n)se(n >= 0)

    imprima("o nmero positivo")seno

    imprima("o nmero negativo")Fim

  • 17

    Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Estrutura de Seleo Composta Exemplo 2 em C

    Algoritmo para verificar se um nmero fornecido pelo usurio positivo ou negativo.

    #include #include int main(){

    int n;printf("digite um valor inteiro: ");scanf("%d", &n);if(n > 0)

    printf("o nmero positivo");else

    printf("o nmero negativo");system("pause");

    }

  • 18

    Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Estrutura de Seleo Composta Exemplo 3

    Um time de basquete est fazendo uma peneira para selecionar alguns jogadores. Para ser aceito no time o jogador dever ter mais que 15 anos e ter altura acima de 1,80m (180cm). O algoritmo abaixo l a idade e a altura de um jogador e imprime uma mensagem no vdeo informando se o jogador aceito ou no.Incio

    inteiro idadereal alturaimprima("digite a sua idade: ")leia("%d", &idade)imprima("informe a sua altura em centmetros: ")leia("%f", &altura)se(idade > 15 E altura > 180)

    imprima("voc foi aceito no time")seno

    imprima("voc no foi aceito no time")Fim

  • 19

    Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Estrutura de Seleo Composta Exemplo 3 em C

    Um time de basquete est fazendo uma peneira para selecionar alguns jogadores. Para ser aceito no time o jogador dever ter mais que 15 anos e ter altura acima de 1,80m (180cm). O algoritmo abaixo l a idade e a altura de um jogador e imprime uma mensagem no vdeo informando se o jogador aceito ou no.#include #include int main() {

    int idade;float altura;printf("digite a sua idade: ");scanf("%d", &idade);printf("informe a sua altura em centmetros: ");scanf("%f", &altura);if(idade > 15 && altura > 180)

    printf("voc foi aceito no time");else

    printf("voc no foi aceito no time");}

  • 20

    Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Indentao: usar ou no usar?

    ...

    se(x >= y)inciox = 5y = zz = x + yfimsenoincioy = 0z = 0x = 0fim...

    ...

    se(x >= y)incio

    x = 5y = zz = x + y

    fimsenoincio

    y = 0z = 0x = 0

    fim...

  • 21

    Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Estrutura de Seleo Agrupada ou Aninhada

    Dentro de um comando se() ou senao podemos ter qualquer comando, qualquer tipo de operao, at mesmo outra instruo de seleo;

    Quando usamos uma estrutura de seleo dentro de outra, chamamos de estrutura de seleo agrupada ou aninhada;

    Sintaxe:se(condio_lgica1)Incio

    instruo_1instruo_2. . .

    Fimseno

    se(condio_lgica2)Incio

    instruo_1instruo_2. . .

    Fimseno

    se(condio_lgica3)Incio

    instruo_1instruo_2. . .

    Fim

    . . .

    if(condio_lgica1) {instruo_1;instruo_2;. . .

    }else

    if(condio_lgica2) {instruo_1;instruo_2;. . .

    }else

    if(condio_lgica3) {instruo_1;instruo_2;. . .

    }. . .

  • 22

    Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    Fluxograma Estrutura de Seleo

    condioA?

    passoDpassoA

    passoB

    passoC

    no sim

  • 23

    Algoritmos e Lgica de ProgramaoProf. Dr. Antonio Marcos SELMINI

    BibliografiaMANZANO, Jos Augusto Navarro Garcia & OLIVEIRA, Jair Figueiredo de. Algoritmos:

    Lgica para o desenvolvimento de programao. So Paulo: Editora rica, 2004.

    MIZRAHI, Victoriane Viviane. Treinamento em linguagem C mdulo I. So Paulo: Makron Books, 1990.

    FORBELLONE, Andr Luiz Villar & EBERSPACHER, Henri Figueiredo. Lgica de Programao. Editora Pearson Brasil, 2000. A1:D560

    ARRER & BECKER, Cristiano Gonalves & FARIA, Eduardo Chaves. Algoritmos Estruturados. Editora LTC, 1999.

    PREISS, Bruno R. Estruturas de Dados e Algoritmos. Editora Campus, 2001.