Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROGRAMAÇÃO ESTRUTURADA 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). UM ALGORITMO NÃO ESTRUTURADO 1 Vá para o DEVIO_2 2 DESVIO_1: 3 Se precisa comprar algo então 4 Vá para o DESVIO_3 5 Senão Vá para o DESVIO_7 6 DESVIO_3: 7 Procure a chave do carro 8 Se não achou então 9 Vá para o DESVIO_5 10 Senão Vá para o DESVIO_6 11 DESVIO_2: 12 Se estiver de dia então 13 Vá para o DESVIO_1 14 Senão 15 Vá para o DESVIO_7 16 DESVIO_6 17 Ligue o carro 18 Dirija até o supermercado 19 Faça compras 20 Vá para o DESVIO_2 21 DESVIO_7 22 Fim do algoritmo 23 DESVIO_5 Vá para o DESVIO_3 ESTRUTURAS BÁSICAS 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. Quando declaramos as variáveis é necessário também informar qual será o tipo de informação a ela associado. Em função do tipo de informação, com o qual a variável, irá “trabalhar”, será reservado a (s) posição (coes) de memória. Se a variável for do tipo inteiro, reserva de 16 bits. Se for do tipo lógica, reserva de 1 bit. Se for do tipo caractere, conjunto de N vezes 8 bits. Supondo que o nosso computador irá usar conjunto de 16 bits para cada número inteiro, 1 bit para cada informação lógica e 8 bits para cada caractere. EXEMPLOS: VAR num: inteiro X, Y: real Chave: lógica Nome, ender: caracter[40] Processamento Seqüencial 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 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 sequência 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 NOTA ( NOTA + 10 Mostre ‘*’ 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 sequências. 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 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 – a Instrução REPITA é a única que não necessitará das palavras INÍCIO e FIM para encapsular a sequencia) 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 seqüência e depois testa. � 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 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 o início dos cursos de 2 em 2 horas, a partir das 12 horas até as 20 horas. VAR HOR: INTEIRO INÍCIO MOSTRE ‘INÍCIO DOS CURSOS’ FAÇA DE HOR ( 12 ATÉ 20 DE 2 MOSTRE HOR, ‘ HORAS’ 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 ENQUANTO (estiver de dia) E (precisar comprar algo)INÍCIO 2 REPITA Procure a chave do carro ATÉ QUE encontre a chave SE estiver de dia ENTÃO INÍCIO 3 Ligue o carro Dirija até o supermercado Faça as compras FIM 3 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 Sequência {V} continua 7 Repita Sequência {F} Até que (oper e/ou cond e/ou var) {V} para continua 8 Faça N vezes sequência continua 9 Faça de VC ( VI até VF de RA sequência continua
Compartilhar