Você está na página 1de 9

PROGRAMAO ESTRUTURADA SUBPROGRAMAO DIVIDIR PARA CONQUISTAR, CONQUISTAR PARA SOLUCIONAR.

RODRIGO ANGELO TOMAZI E-mails rodrigotomazi@yahoo.com.br rodrigo@viasoft.com.br

Palavras Chave: Subprogramas Procedure Function Units rea de Conhecimento: Cincias da Computao.

RESUMO

A presente comunicao discute a estrutura de programao, a qual consiste em dividir problemas complexos em subprogramas, facilitando assim a compreenso e a resoluo do problema original.

INTRODUO

A evoluo do processamento de dados automtico tem como ponto de partida o sculo passado, onde ocorreram diversas tentativas para se construir aparelhos mecnicos capazes de efetuar operaes matemticas. Hoje, estes aparelhos no so mais mecnicos e sim eletrnicos. Os computadores ganharam um grande espao de utilizao e no so mais usados apenas para efetuar operaes matemticas. Desta forma, grande o nmero de pessoas interessadas em aprender a utilizar os seus recursos, no s como usurios, mas tambm como profissionais que desenvolvem e buscam solues para problemas especficos de cada profisso existente. Tudo comea atravs dos apontamentos de Niklaus Wirth, professor da Universidade de Zurique (Sua), para ensinar seus alunos a programar nas linguagens ALGOL E PLI na dcada de 60. Foram estes apontamentos que deram origem primeira notao de linguagem Pascal por volta de 1968 a 1970. O Prof. Wirth procurou desenvolver uma forma de linguagem que fosse de fcil assimilao e aceitao dos alunos de programao, o que se concretizou. Esta linguagem foi batizada com o nome de Pascal, em homenagem a Blaise Pascal, filsofo e matemtico francs que viveu entre 1623 e 1662. Em 1970, disponibilizado o primeiro compilador para a linguagem. Com o passar de alguns anos, a linguagem saiu dos muros acadmicos e decolou no mercado mundial como uma poderosa linguagem de programao. Foi em Novembro de 1983, que surgiu a primeira verso do Turbo Pascal, lanado pela Borland Internacional, logo atualizado para a verso 2.0.

MATERIAL E MTODOS

O presente estudo foi realizado tendo como metodologia a pesquisa bibliogrfica. Partiu-se da seleo de autores e textos para a leitura, a anlise e a interpretao.

RESULTADOS E DISCUSSO O Uso de Variveis Varivel , no sentido de programao, uma regio de memria de um computador, previamente identificada e que tem por finalidade armazenar as informaes (dados) de um programa temporariamente. Uma varivel armazena apenas um valor por vez. Sendo considerado como valor o contedo de uma varivel, desta forma, um valor est relacionado ao tipo de dado de uma varivel, podendo ser um valor numrico, lgico ou caractere. Uma varivel considerada global quando declarada no incio de um programa escrito em Pascal, podendo ser utilizada por qualquer sub-rotina subordinada. Assim sendo, este tipo de varivel passa a ser visvel a todas as sub-rotinas. No programa anterior, a varivel passa a ser visvel a todas as sub-rotinas. No programa anterior, a varivel OPCAO uma varivel global, apesar de no estar sendo utilizada nas sub-rotinas de clculo. Uma varivel considerada local quando declarada dentro de uma sub-rotina e ~e somente vlida dentro da rotina qual est declarada. Desta forma, as demais subrotinas e programa principal no podero fazer uso daquelas varveis como Global, pois no visualizam a existncia das mesmas. No programa anterior, as variveis A, B e X so locais por este motivo esto sendo declaradas repetidas vezes dentro de cada sub-rotina. As procedures so rotinas chamadas pelo programa principal para executar alguma funo especfica, e sua sintaxe : PROCEDURE Nome da Procedure; Declarao de variveis locais; BEGIN Comandos; END; Ou PROCEDURE nome da procedure (x,y: tipo dos dados); Declarao de variveis locais; BEGIN Comandos; END; No caso1, a procedure chamada escrevendo apenas seu nome no programa principal, assim a execuo desviada at a procedure para que esta seja executada. No caso2, a procedure chamada escrevendo seu nome e seus parmetros no programa principal, assim a execuo desviada at a procedure para que esta seja executada. Exemplo de procedure sem parmetros:

Program Ex01; Var I, P, Num, Cont : Integer; Procedure Par; Begin Cont := 0; P := 0; While Cont <= Num Do Begin P := P + 1; Cont := Cont + 2; End; End; Procedure Impar; Begin Cont := 1; I := 0; Repeat If Num < > 0 Then Begin I := I + 1; Cont := Cont + 2; End; Until Cont > Num; End; Begin { Programa Principal } Writeln( Digite O Nmero Do Intervalo); Readln(Num); Par; Impar; Writeln(Quantidade De Pare = ,P); Writeln(Quantidade De mpares = ,I); Readln; End.

Exemplo De Procedure Com Parmetros: Program Ex02; Uses Crt; Var I, Col1, Col2, Lin1, Lin2, X: Integer; Procedure Desenha ( C1,C2,L1,L2 : Integer); Begin For I := C1 To C2 Do Begin Gotoxy(I,L1); Write(*);

End; For I := L1 To L2 Do Begin Gotoxy(C1,I); Writeln(*); End; End; Begin X := 0; Repeat Clrscr; X := X + 1; Writeln(Digite Os Valores Das Bordas ); Readln(Col1,Col2,Lin1,Lin2); Clrscr; Desenha(Col1,Col2,Lin1,Lin2); Readln; Until X = 5; End.

Function Uma Funo Tem A Mesma Funo De Uma Procedure, Que Desviar A Execuo Do Programa Principal Para Realizar Uma Tarefa Especfica, Com Uma nica Diferena: Uma Function Sempre Retorna Um Valor. A Sintaxe De Uma Function : Function Nome Da Function: Tipo De Dado Do Valor Retornado; Declarao De Variveis Locais; Begin Comandos; End; Ou

Function Nome Da Function( X, Y : Tipo Dos Dados) : Tipo Do Dado Do Valor Retornado; Declarao De Variveis Locais; Begin Comandos; End; Exemplo De Function Sem Parmetros: Program Ex03; Uses Crt; Var Calc, X : Real;

Funtion Raiz : Real; Begin Raiz := Sqrt(X); End; Begin Clrscr; Writeln(Digite Um Valor Para Calcular A Raiz); Readln(X); If X < 0 Then Writeln(No Existe Raiz Quadrada); Else Begin Calc := Raiz; Writeln(Raiz De , X:6:2, = , Calc:6:2); End; Readln; End. Exemplo De Function Com Parmetros: Program Ex04; Var Calc, X: Real; I, J: Integer; Function Raiz (Num: Real) : Real; Begin Raiz := Sqrt(Num); End; Begin Clrscr; Writeln(Digite Um Valor); Readln(I); If I <= 0 Then Writeln(Valor Invlido); Else Begin For J := 1 To I Do Begin Calc := Raiz(J); Writeln(Raiz De , J, = , Calc:8:3); End; End; Readln; End. Unit Na Linguagem Pascal Existem Vrias Units Prontas Para Serem Utilizadas. Algumas Destas Units So: Crt (Oferece Recursos De I/O), Dos( Oferece Acesso s Funes Do Sistema Operacional), Entre Outras, Mas Podemos Criar Nossas Prprias Units Que Podem Ser Utilizadas Pro Vrios Progrmas. A Sintaxe De Uma Unti : Unit Nome Da Unidade;

Interface Declarao De Outras Unidades Utilizadas; Declarao Das Procedures E Functions; Implementation Desenvolvimento Das Procedures E Funtions; End. Exemplo De Unit: Program Opera; Uses Crt, Soma, Subtrai, Multi, Dividi; Var Opo : Integer; Begin Clrscr; Writeln(Digite A Opo Desejada ); Writeln(1 Somar); Writeln(2 Subtrair); Writeln(3 Multiplicar); Writeln(4 Dividir); Readln (Opo); If Opo = 1 Then Oper1 Else If Opeo = 2 Then Oper2 Else If Opo = 3 Then Oper3 Else If Opco = 4 Then Oper4 Else Writeln(Opo Invlida); Readln; End. Importante: Compilar Um Programa Para Memria Gera Arquivo .Pas; - Compilar Um Programa Para Disco Gera Arquivo .Exe; - Compilar Um Programam, Que Uma Unit, Para Disco Gera Arquivo .Tpu. Unit Soma; Interface Uses Crt; Procedure Oper1; Implementation Procedure Oper1; Var N1,N2, R: Integer; Begin Clrscr; Writeln(Digite N1 E N2); Readln(N1,N2); R := N1 + N2;

Writeln(Resultado = ,R); End; End. Unit Subtrai; Interface Uses Crt; Procedure Oper2; Implementation Procedure Oper2; Var N1, N2, R : Integer; Begin; Clrscr; Writeln(Digite N1 E N2); Readln(N1,N2); R := N1 - N2; Writeln(Resultado = ,R); End; End. Unit Multi; Interface Uses Crt; Procedure Oper2; Implementation Procedure Oper2; Var N1, N2, R : Integer; Begin; Clrscr; Writeln(Digite N1 E N2); Readln(N1,N2); R := N1 * N2; Writeln(Resultado = ,R); End; End. Unit Dividi; Interface Uses Crt; Procedure Oper2; Implementation Procedure Oper2; Var N1, N2, R : Integer; Begin; Clrscr; Writeln(Digite N1 E N2); Readln(N1,N2); R := N1 / N2; Writeln(Resultado = ,R); End;

End. A complexidade dos algoritmos est intimamente ligada da aplicao a que se destinam. Em geral, problemas complicados exigem algoritmos extensos para sua soluo. Sempre possvel dividir problemas grandes e complicados em problemas menores e de soluo mais simples. Assim, pode-se solucionar cada um destes pequenos problemas separadamente, criando algoritmos para tal(subalgorimos). Posteriormente, pela justaposio destes subalgoritmos elabora-se automaticamente um algoritmo mais complexo e que soluciona o problema original. Esta metodologia de trabalho conhecida como Mtodo de Refinamentos Sucessivos, cujo estudo assunto de cursos avanados sobre tcnicas de programao. Um subalgoritmo um nome dado a um trecho de um algoritmo mais complexo e que , em geral, encerra em si prprio um pedao da soluo de um problema maior o algoritmo a que ele est subordinado. Este conceito essencial numa cincia bastante recente: a Engenharia de Software. Em resumo, os subalgoritmos so importantes na: - subdiviso de algoritimos complexos, facilitando o seu entendimento; estruturao de algoritmos, facilitando principalmente a deteco de erros e a documentao de sistemas; e modularizao de sistemas, que facilita a manuteno de softwares e a reutilizao de subalgoritmos j implementados.

CONCLUSO

No geral, problemas complexos exigem algoritmos complexos, mas sempre possvel dividir um problema grande em problemas menores. Desta forma, cada parte menor tem um algoritmo mais simples, e este trecho menor que chamado de subprograma. Quando um sub-programa chamado por um programa principal, ele executado e ao seu trmino o controle de processamento retorna automaticamente para a primeira linha de instruo aps a linha que efetuou a sua chamada. Ao se trabalhar com esta tcnica, pode-se deparar com a necessidade de se dividir uma sub-rotina em outras tantas quantas forem necessrias, buscando uma soluo mais simples de uma parte do problema maior. O processo de dividir sub-rotinas em outras denominado Mtodo de Refinamento Sucessivo. A estrutura da linguagem Pascal permite a utilizao de dois tipos de rotinas definidos pelo programador, sendo procedure(procedimento) e Function(funo). Uma Procedure ou Function , na verdade, um bloco de programa, contendo incio e fim, identificado por um nome, atravs do qual ser referenciado em qualquer parte do programa principal ou do programa chamador da rotina. A diferena entre os dois tipos de sub-rotina est no fato de uma Procedure poder ou no retornar uma valor aps seu processamento, enquanto uma Function sempre ir retornar um valor aps seu processamento. Mas alm das rotinas definidas pelo programador, existe na linguagem Turbo Pascal um conjunto de rotinas embutidas, ou seja, fornecidas pelo Compilador da Linguagem de Programao. Este tipo de rotina embutida conhecido pelo nome de unidade, em ingls unit. Tendo em vista os parmetros expostos, conclu-se que no existe problema que no possua resoluo, claro, que na maioria da vezes essa resoluo no ser apresentada diretamente, e debatendo-se com esses problemas complexos que ser de grande utilidade a tcnica de programao Dividir para Conquistar, isto , partindo da diviso de um problema complexo em vrios subprogramas, ao conquistar o objetivo em cada um dos

subprogramas, o programador estar caminhando rumo a Soluo Total do problema original. Atravs deste mtodo, desaparece o problema complicado e aparece vrios subprogramas descomplicados, tornando assim a soluo mais simples, direta e objetiva.

REFRENCIAS BIBLIOGRFICAS

ASCENCIO, Ana Fernanda Gomes. Lgica de Programao com Pascal. So Paulo. Makron Books do Brasil Editora Ltda, 1999.

MANZANO, Jos Augusto N. G. e YAMATUMI, Wilson Y. Programando em Turbo Pascal 7.0. So Paulo. Editora rica, 1996.

SALIBA, Walter Luiz Caram. Tcnicas de Programao Uma Abordagem Estruturada. So Paulo. Makron Books do Brasil Editora Ltda, 1992.

Você também pode gostar