Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROGRAMAÇÃO ESTRUTURADA 3.1 HISTÓRICO Na programação estruturada devemos sempre evitar o uso de comandos de desvio, sem depender do resultado de uma condição. O mais utilizado antigamente era o GOTO (vá para). Utilizando apenas a definição de algoritmo e as instruções que serão apresentadas, é possível escrever programas sem a instrução GOTO (vá para). 3.2 UM ALGORITMO NÃO ESTRUTURADO 1 Vá para o DEVIO_9 2 DESVIO_4 3 Se Delta maior que zero então 4 Escreva ‘RAIZES DISTINTAS’ 5 Calcule R = Raiz quadrada de DELTA 6 Calcule X1 = ( -B + R) / (2*A) 7 Calcule X2 = ( -B - R) / (2*A) 8 Vá para o DESVIO_7 9 DESVIO_9: 10 Se tem equação do seg. grau para calcular as raízes 11 Vá para o DESVIO_3 12 Senão 13 Vá para o DESVIO_7 14 DESVIO_3: 15 Leia o coeficiente A 16 Se A for igual a zero 17 Vá para o DESVIO_5 18 Senão 19 Vá para o DESVIO_6 20 DESVIO_2: 21 Se DELTA for menor que zero 22 Escreva ‘RAIZES IMAGINÁRIAS’ 23 Vá para o DESVIO_7 24 Senão 25 Vá para o DESVIO_8 26 DESVIO_6 27 Leia os coeficientes B e C 28 Calcule o valor do DELTA = B*B – 4*A*C 29 Vá para o DESVIO_2 30 DESVIO_7 31 Fim do algoritmo 32 DESVIO_5 33 Vá para o DESVIO_3 34 DESVIO_8 35 Se DELTA for igual a zero então 36 Escreva ‘RAIZ ÚNICA’ 37 Calcule X1 = -B / (2*A) 38 Vá para o Desvio_7 39 Senão 40 Vá para o DESVIO_4 3.3 ESTRUTURAS BÁSICAS 1. Declaração das Variáveis Lembre-se, antes de começar a escrever o algoritmo, temos que saber resolver o problema. Com a solução em mente, o segundo passo é declarar as variáveis necessárias para levar/trazer as informações para/da Memória Principal. Para isso, usaremos a declaração VAR, seguida da lista de variáveis com os respectivos tipos. A declaração das variáveis “cria” um endereço na memória principal (MP) “ligado” a variável. EXEMPLOS: VAR num: inteiro X, Y: real Chave: lógica Nome, ender: caracter[40] 2. Processamento Sequencial Grupo de instruções que são executadas uma após a outra. Pode conter uma ou mais instruções. Quando houver mais de uma instrução, usam-se as palavras INÍCIO e FIM, para delimitar as instruções que fazem parte da seqüência. F.U.P. que leia um número calcule e mostre o seu quadrado. VAR X, B: INTEIRO INÍCIO LEIA X B X *X MOSTRE X, ‘ AO QUADRADO : ‘ , B FIM =============X=================X====================X============ LEIA NOTA 3. Condicional Executa um processamento seqüencial (ver definição de processamento seqüencial) de acordo com o resultado de uma operação relacional, lógica ou uma variável lógica. Primeiro Caso Se uma operação for verdadeira executa uma seqüência e continua, se falsa, pula a seqüência e continua. F.U.P. que leia e mostre uma nota, caso nota menor que 50 adicionar 10 à nota lida. VAR NOTA: INTEIRO INÍCIO LEIA NOTA SE NOTA < 50 ENTÃO NOTA NOTA + 10 MOSTRE NOTA FIM No exemplo acima a sequencia que esta condicionada possui apenas uma instrução. Repetir o exemplo acima mostrando um ‘*’ antes de mostrar as notas acrescidas de 10. VAR NOTA: INTEIRO INÍCIO LEIA NOTA SE NOTA < 50 ENTÃO início MOSTRE ‘*’ NOTA NOTA + 10 fim MOSTRE NOTA FIM Segundo Caso Se uma operação for verdadeira, executa uma seqüência (ver definição de processamento seqüencial) e continua, senão executa outra seqüência (ver definição de processamento seqüencial) e continua. F.U.P. que leia 2 notas. Calcule a média das notas lidas. Se média maior ou igual a 7 mostre que o aluno está aprovado, caso contrario, mostre que o aluno esta reprovado. VAR NOTA1, NOTA2:INTEIRO MEDIA: REAL INÍCIO LEIA NOTA1, NOTA2 MEDIA (NOTA1 + NOTA2) / 2 SE ( MEDIA >= 7 ) ENTÃO MOSTRE ‘ALUNO APROVADO’ SENÃO MOSTRE ‘ALUNO REPROVADO’ FIM Repetindo o exemplo acima com mais de uma instrução nas sequencias. VAR NOTA1, NOTA2:INTEIRO MEDIA: REAL INÍCIO LEIA NOTA1, NOTA2 MEDIA (NOTA1 + NOTA2) / 2 SE ( MEDIA >= 7 ) ENTÃO Início MOSTRE ‘ALUNO APROVADO’ Mostre ‘parabens’ fim SENÃO Início MOSTRE ‘ALUNO REPROVADO’ Mostre ‘danou-se’ Fim Mostre MEDIA FIM 4. Processamento com Repetição Executa uma seqüência (ver definição de processamento seqüencial), nenhuma, uma ou várias vezes, de acordo com uma condição (operação relacional ou lógica). Primeiro caso Se a operação for verdadeira, executa uma seqüência (ver definição de processamento seqüencial) e testa novamente. F.U.P. que leia um número que tem que ser diferente de zero, calcule e mostre a divisão de 100 pelo número lido. (Validar informação de entrada). VAR X: INTEIRO B: REAL INÍCIO LEIA X ENQUANTO ( X = 0 ) LEIA X B 100 / X MOSTRE B FIM Caso fosse pedido para mostrar o número lido, seria necessário utilizar as palavras Início e Fim, para encapsular a seqüência. VAR X: INTEIRO B: REAL INÍCIO LEIA X ENQUANTO ( X = 0 ) INÍCIO MOSTRE X LEIA X FIM B 100 / X MOSTRE B FIM Obs.: a seqüência pode ser executada nenhuma vez, pois primeiro testa, depois executa, caso a condição seja V. Segundo caso Executa uma seqüência (ver definição de processamento seqüencial) e se a operação for falsa, executa novamente. Mesmo enunciado anterior VAR X: INTEIRO, B:REAL INÍCIO REPITA LEIA X ATÉ QUE ( X <> 0 ) B 100 / X MOSTRE B FIM Obs.: sempre será executado pelo menos uma vez, pois primeiro executa a sequencia e depois testa. 5. Repetição de um número determinado de vezes. F.U.P. que leia e mostre 10 números. VAR NUM: INTEIRO INÍCIO FAÇA 10 VEZES INÍCIO LEIA NUM MOSTRE NUM FIM FIM 6. Repetição com o uso de variável de controle Idem ao anterior. VAR NUM, CONT: INTEIRO INÍCIO FAÇA DE CONT 1 ATÉ 10 INÍCIO LEIA NUM MOSTRE NUM FIM FIM F.U.P. que mostre todos os números pares entre 1 e 45. VAR PAR: INTEIRO INÍCIO MOSTRE ‘NUMEROS PARES’ FAÇA DE PAR 2 ATÉ 45 DE 2 MOSTRE PAR, ‘ no intervalo’ FIM Ou seja, FAÇA DE (variável de controle) (valor inicial) ATÉ (valor final) DE (razão) A variável de controle assume valores de uma progressão aritmética, com valor inicial, razão e valor final conhecidos. Para cada valor assumido, a seqüência (ver definição de processamento seqüencial) abaixo da instrução é executada. A repetição termina, quando a variável de controle estiver com um valor igual (executa a seqüência (ver definição de processamento seqüencial) pela última vez) ou maior que o valor final estabelecido (aí então não executa a seqüência). Quando a razão for 1 (um) não precisamos representá-la. 3.4 UM ALGORITMO ESTRUTURADO A partir do exemplo inicial (não estruturado) INÍCIO 1 LEIA A ENQUANTOA<>0 INÍCIO 2 LEIA B,C DELTA B*B – 4*A*C SE DELTA < 0 ENTÃO MOSTRE ‘RAIZES IMAGINÁRIAS’ SENÃO SE DELTA = 0 ENTÃO INICIO 3 MOSTRE ‘RAIZ ÚNICA’ X1 –B/(2*A) MOSTRE ‘X1 = X2 = ‘, X1 FIM3 SENÃO INÍCIO 4 MOSTRE ‘RAIZES DISTINTAS’ RAIZ DELTA ** 0.5 X1 (–B + RAIZ)/(2*A) X2 (–B – RAIZ)/(2*A) MOSTRE X1,X2 FIM 4 LEIA A FIM 2 FIM 1 Resumindo 1 2 Leia 3 Mostre 4 se (oper e/ou cond e/ou var ) então Seq {V} Continua {V} e {F} 5 se (oper e/ou cond e/ou var) então seq 1 {V} senão seq 2 {F} continua {V} e {F} 6 Enquanto (oper e/ou cond e/ou var) {F} para Sequencia {V} continua 7 Repita Sequencia {F} Até que (oper e/ou cond e/ou var) {V} para continua 8 Faça N vezes sequencia continua 9 Faça de VC VI até VF de RA sequencia continua
Compartilhar