Baixe o app para aproveitar ainda mais
Prévia do material em texto
Unidade II PROGRAMAÇÃO DE COMPUTADORESCOMPUTADORES Profa. Fabíola Ribeiro Operadores lógicos Operadores algébricos: operações matemáticas. Ex.: “+” para soma. Operadores lógicos: execução de tarefas. Operador Símbolo Prioridade negação NÃO (NOT) 1 conjunção E (AND) 2 disjunção OU (OR) 3 Operadores lógicos Exemplos: A > 5 A 5 A 5 F V F V A >= 5 A > 5 OU A < 2 A > 5 E NÃO A > 7 A 5 A 2 V F V F V F 5 A > 5 E NÃO A >= 7 (A > 5 E A < 7) A 5 7 Operadores lógicos Tabela: conjunção (E) e disjunção (OU). V E V V V E F F F E V F F E F F V OU V V V OU F V F OU V V F OU F F Exemplo 1 Considere o trecho de um programa escrito em português estruturado abaixo. Simule esse trecho para A=2 e B=1 e para A=1 e B=2. Se (A*B>0) E (A>B) então C:=A/B;C: A/B; Senão C:=A+B; Fim_Se; A B A*B>0 A>B C E A B A B>0 A>B C 2 1 1 2 Exemplo 1 Se (A*B>0) E (A>B) então C:=A/B; Senão C:=A+B; Fim_Se; A B A*B>0 A>B C 2 1 V V 2/1=2 1 2 V F 1+2=3 E Exemplo 2 Considere o trecho de um programa escrito em português estruturado abaixo. Simule esse trecho para A=0 e B=1 e para A=5 e B=1. Se (A*B>0) OU NÃO(A>B) então C:=A/B;C: A/B; Senão C:=A+B; Fim_Se; A B A*B 0 A B NÃO (A B) C ou A B A*B>0 A>B NÃO (A>B) C 0 1 5 1 Exemplo 2 Se (A*B>0) OU (A>B) então C:=A/B; Senão C:=A+B; Fim_Se; A B A*B>0 A>B NÃO (A>B) C 0 1 F F V 0/1=0 ou 5 1 V V F 5/1=5 Interatividade C id t h d iConsidere o trecho de programa a seguir. Qual simulação é correta? Se (A+B>8) E (A>2*B) então C:=A-B; Senão: C:=B A;C:=B-A; Fim_Se; A B A+B>8 A>2*B C a) 5 4 V V 1 b) 5 4 V F -1b) 5 4 V F -1 c) 5 4 F V -1 d) 5 4 F F 1 e) 5 4 V F 1 Estruturas de repetição Para repetir várias vezes um trecho de um programa, usam-se laços ou loops. Classificação: repetição com teste no início; repetição com teste no final; repetição com teste no final; repetição com variável de controle. Contador Conta o número de vezes que executamos o trecho do programa: cont := cont + 1; Precisamos zerar o contador no início do programa:do programa: cont := 0; Acumulador Armazena o resultado de somatórios: AC1 := AC1 + AC2; Precisamos zerar o acumulador no início do programa: AC1 := 0; AC1 := 0; Looping: “Enquanto... faça” As instruções do looping são executadas enquanto a condição for verdadeira. O teste é feito no início. Em português estruturado: Enquanto (condição) façaEnquanto (condição) faça <instruções>; Fim_Enquanto; Looping: “Enquanto... faça” Fluxograma: condição VF instruções atualização contador Exemplo Faça um programa em português estruturado que dê a tabuada de um número inteiro dado. Entrada: N Saída: N.i, com i variando de 1 a 10.Saída: N.i, com i variando de 1 a 10. Exemplo Programa tabuada VAR N, i: inteiro; Início Escreva (“Dê um número”); Leia (N); i=1; Enquanto (i <= 10) faça E (i*N)Escreva (i*N); i := i+1; Fim_Enquanto; Fim. Exemplo i := 1 início Leia (N) i <= 10 Escreva (i*N)fim VF i := i + 1 Exemplo Simulação para N=7: Programa tabuada VAR N, i: inteiro; Início i<=10 ? i*N i V 7 2 V 14 3 V 21 4Início Escreva (“Dê um número”); Leia (N); i=1; Enquanto (i <= 10) faça V 21 4 V 28 5 V 35 6 V 42 7 V 49 8 Escreva (i*N); i := i+1; Fim_Enquanto; Fim. 9 8 V 56 9 V 72 10 V 80 11 F Interatividade No programa a seguir, em qual linha é feito o incremento do contador? Programa tabuada VAR N, i: inteiro; a) Leia (N) b) Escreva (i*N)N, i: inteiro; Início Leia (N); i=1; Enquanto (i <= 10) faça E (i*N) b) Escreva (i N) c) i=1 d) N, i: inteiro e) i := i+1 Escreva (i*N); i := i+1; Fim_Enquanto; Fim. Looping: “Repita... Até” As instruções do looping são executadas enquanto a condição for verdadeira. O teste é feito no final. O bloco é executado pelo menos uma vez. Em português estruturado: Repita <instruções>; Até (condição); Não se usa Fim_Repita Looping: “Repita... Até” Fluxograma: instruções atualização contador condição atualização contador VF Exemplo 1 Faça um fluxograma e um programa em português estruturado que dê os N primeiros números ímpares. Entrada: N (quantidade de números ímpares a gerar) Saída: 2*i+1, com i variando de 0 até N (exclusive) Exemplo 1 Programa números_ímpares VAR N, i: inteiro; Início Escreva (“Quantos números ímpares?”); Leia (N); i := 0; Repita E (2*i 1)Escreva (2*i+1); i := i+1; Até (i<N); Fim. Exemplo 1 i := 0 início Leia (N) i := i + 1 Escreva (2*i+1) i < N fim VF Exemplo 1 i := 0 início Leia (N) Simulação para N=3: i=0 2*i+1 i i<N? i := i + 1 Escreva (2*i+1) 1 1 V 3 2 V 5 3 F i < N fim VF Exemplo 2 Faça um fluxograma e um programa em português estruturado que dê os N primeiros múltiplos de 121. Entrada: N (quantidade de números ímpares a gerar) Saída: 121.i, com i variando de 1 até N (inclusive) Exemplo 2 Programa múltiplos_121 VAR N, i: inteiro; Início Escreva (“Quantos múltiplos?”); Leia (N); i := 1; Repita E (121*i)Escreva (121*i); i := i+1; Até (i<=N); Fim. Exemplo 2 i := 1 início Leia (N) i := i + 1 Escreva (121*i) i <= N fim VF Interatividade Qual a saída do fluxograma abaixo para N = 4? a) 2*i+i b) 6 c) 6 9 início Leia (N) d) 6 9 12 e) 6 9 12 15 i := 2 Escreva (2*i+i) i := i + 1 i <= N fim F V Looping: “Para...” As instruções do looping são executadas enquanto a condição for verdadeira. O teste é feito no início. Em português estruturado: Para (variável de x até y passo z) façaPara (variável de x até y passo z) faça <instruções>; Fim_Para; x - valor inicial y - valor finaly z - passo Looping: “Para...” No fluxograma: Início, final, passo VF Início, final, passo instrução Exemplo Calcular o somatório para N dado pelo usuário usando estruturas de repetição. Entrada: N Entrada: N Saída: resultado do cálculo 1+1/2+1/3+... com N termos na soma. Exemplo P tó iPrograma somatório VAR N: inteiro; resp: real; InícioInício resp := 0; Escreva (“Entre com N”); Leia (N); Para (i de 1 até N passo 1) faça( p ) ç resp := resp + 1/i; Fim_Para; Escreva (resp); Fim. Exemplo resp := 0 início Leia (N) resp := resp + 1/i i=1, N, 1 Escreva (resp) VF fim Usando “Enquanto... faça” P tó iPrograma somatório VAR N: inteiro; resp: real; Início resp := 0; Escreva (“Entre com N”); Leia (N); i := 1; Enquanto (i <= N) faça resp := resp + 1/i; i := i+1; Fim_Enquanto; Escreva (resp); Fim. Usando “Repita... Até” P tó iPrograma somatório VAR N: inteiro; resp: real; Início resp := 0; Escreva (“Entre com N”); Leia (N); i := 1; Repita resp := resp + 2/i; i := i+1; Até (i <= N); Escreva (resp); Fim. Interatividade Qual das estruturas de repetição abaixo é executada uma vez para i=0 e N=0? I. Repita R := R + 2/i; i := i+1; Até (i N) a) I. b) IIAté (i < N); II. Enquanto (i < N) faça R := R + 2/i; i := i+1; Fim_Enquanto; b) II. c) III. d) I e II. e) II e III. III. Para (i de 1 até N passo 1) faça R := R + 2/i; Fim_Para; ATÉ A PRÓXIMA!
Compartilhar