Baixe o app para aproveitar ainda mais
Prévia do material em texto
Fundamentos da Computação Priscilla Fonseca de Abreu Braz turmas_uerj@yahoo.com.br Universidade do Estado do Rio de Janeiro Instituto de Matemática e Estatística Exercícios 1) Elabore um programa para calcular o produto de dois valores. Usar procedures/functions diferentes para a leitura, cálculo dos valores e exibição do resultado. 2) Construa um programa que leia três valores e imprima o maior deles. Utilize function. Exercícios program ex1_3005; uses crt; var n1,n2:integer; procedure leitura(); begin writeln('Informe o primeiro número'); readln(n1); writeln('Informe o segundo número'); readln(n2); end; function prod():integer; begin prod:=n1*n2; end; begin leitura(); writeln(„Produto de ',n1,' e ',n2,': „,prod()); readkey; end. Exercícios program ex2_3005; uses crt; var n1,n2,n3:integer; procedure leitura(); begin writeln('Informe o primeiro número'); readln(n1); writeln('Informe o segundo número'); readln(n2); writeln('Informe o terceiro número'); readln(n3); end; function maior():integer; begin if (n1>n2) and (n1>n3) then maior:=n1 else begin if(n2>n3)and(n2>n1) then maior:=n2 else maior:=n3; end; end; begin leitura(); writeln('Maior número lido: ',maior()); readkey; end. Parâmetros Os parâmetros ou argumentos são usados para comunicação entre o programa principal e os subprogramas. Na realidade, nós já usamos essa comunicação com os procedimentos pré- definidos da linguagem, como por exemplo o readln e o writeln. Quando temos um trecho de programa como a seguir: readln(x); writeln(x); Os procedimentos readln e writeln precisam de parâmetros para executar sua tarefa. No caso de procedimentos definidos pelo usuário, a declaração da procedure fica da seguinte forma: Programação Modular: Parâmetros procedure <identificador> (lista de argumentos); declaracao dos identificadores locais begin comandos; end; Na definição da Procedure coloca-se entre parêntesis as variáveis que serão passadas. Por exemplo: PROCEDURE LE(A,B:REAL); A e B são ditos parâmetros formais O que significa “passe de ou para o programa principal duas variáveis reais”. No programa principal “chama-se” a procedure invocando seu nome e informando as variáveis ou valores que serão passadas. Por exemplo: LE(X,Y); X e Y são ditos parâmetros reais Isto significa que X e Y terão respectivamente os valores dados para as variáveis A e B. Programação Modular: Parâmetros A passagem de parâmetros entre o programa principal e o procedimento se dá de duas formas: 1. passagem por valor: nesse caso, o programa principal passa um valor para o procedimento. Esse valor pode ser passado explicitamente, ou então passa-se o valor de uma variável. Por exemplo, no programa seguinte a segunda chamada do procedimento writeln passa o valor de x como argumento. writeln(‟A‟); x:=‟A‟; writeln(x); Programação Modular: Parâmetros PROGRAM EXEMPLO; VAR n: integer; PROCEDURE NumPar (a:Integer); begin a := a DIV 2; writeln (a); end; BEGIN n := 4; NumPar(n); writeln(n); END; Quais seriam as saídas do programa principal? Saída: 2 Saída: 4 Programação Modular: Parâmetros A passagem de parâmetro por referência caracteriza-se pela ocorrência da alteração do valor do parâmetro real quando o parâmetro formal é manipulado dentro da rotina chamada. Desta forma, qualquer modificação feita no parâmetro formal, implica em alteração no parâmetro real correspondente. A alteração efetuada é devolvida para a rotina a chamou. Quando a passagem de parâmetros se dá por variável, o grupo de identificadores possui a palavra var na sua frente. Caso contrário, a passagem de parâmetros é por valor. Programação Modular: Parâmetros Exemplo: No procedimento P1 os identificadores x e y são parâmetros cuja passagem se dá por referência, ao passo que z é um parâmetro com a passagem por valor. No caso do procedimento P2, no argumento w1 a passagem é por valor e w2 é por referência. procedure P1(z:integer ; var x,y : integer); procedure P2(w1:char; var w2: char); Programação Modular: Parâmetros PROGRAM EXEMPLO; VAR n: integer; PROCEDURE NumPar ( Var a:Integer); begin a := a DIV 2; writeln (a); end; BEGIN n := 4; NumPar(n); writeln(n); END; Quais seriam as saídas do programa principal? Saída: 2 Saída: 2 Programação Modular: Parâmetros O tipo dos identificadores na declaração dos subprogramas deve ser básico: (a) inteiro, booleano, caracter ou real; (b) definido pelo programador. Os seguintes cabeçalhos de procedimentos são inválidos: procedure proc(i:1..10); procedure proc2(a:array[1..10] of integer); Podemos apresentar as seguintes declarações para passarmos “ arrays” como parâmetros: type indice = 1..10; tipoa = array[1..10] of integer; procedure proc(i:indice); procedure proc2(a:tipoa); Programação Modular: units Algumas units embutidas na linguagem Pascal: CRT, DOS, GRAPH, OVERLAY, PRINTER, SYSTEM. Programação Modular: units program CALCULADORA; Uses Crt; var OPCAO := „0‟; begin while (OPCAO <> 3) do begin clrscr; gotoxy(33,1); write(‘Menu Principal’); gotoxy(28,6); write(‘1. Soma....................’); gotoxy(28,8); write(‘2. Multiplicacao.......’); gotoxy(28,10); write(‘3. Fim do Programa.’); gotoxy(28,12); write(‘Escolha uma opcao:’); readln(OPCAO); if (OPCAO = ‘1’) then Adicao; if (OPCAO = ‘2’) then Multiplica; end; readkey; end. Programação Modular: units Funções pré-definidas O Pascal possui diversas funções pré-definidas. Funções pré-definidas Funções para tratamento de strings: Concat Function Combina qualquer quantidade de cadeias e as retorna como uma única cadeia. Declaração: Function Concat (S1, S2,..., Sn): string; Length Function Retorna o tamanho da cadeia S. Declaração: Function Length (S: string): integer; UpCase Function Retorna os caracteres em maiúsculo. Exemplo: UpCase („mala‟) = „MALA‟ TEXTBACKGROUND - Altera a cor de fundo da tela. Exemplo: TextBackGround(Blue) TEXTCOLOR - Altera a cor do texto (cor dos caracteres). Exemplo: TextColor(Red); Write(„Hello‟); Funções pré-definidas Exemplo: program teste; Uses Crt; var texto:string; begin write('Digite seu nome: '); readln(texto); texto:=upcase(texto); writeln('Texto em maiúsculo: ',texto); writeln('Qtde de caracteres: ',length(texto)); readkey; end. Exercícios 1) Elabore um programa pascal para determinar o fatorial de um valor lido. Utilize uma função. 2) Construa um programa que leia dois números inteiros positivos e utilize uma função para encontrar o MMC (Mínimo Múltiplo Comum) entre eles. 3) Faça um programa que leia 2 valores e chame uma sub-rotina (procedure) que receba estas 2 variáveis e troque o seu conteúdo, ou seja, esta rotina é chamada passando duas variáveis A e B por exemplo, e após a execução da rotina A conterá o valor de B e B terá o valor de A. Obs.: Utilize passagem por referência. Exercícios Program EX3; uses crt; var i,num:integer; Function fat(n:integer) : integer ; var aux:integer; Begin aux:=1; for i:= 1 to n do aux:=aux*i; fat:=aux; end; Begin write('Digite um número: '); readln(num); write('O fatorial é ',fat(num)); readkey; End.
Compartilhar