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)Faça um programa com uma sub-rotina (função) que calcule X elevado à Y = XY. Leia 2 valores de X e Y e exiba o resultado da chamada da sub-rotina na tela. Exemplo: 2 elevado à 3 é igual à 2*2*2 = 8. 2)Elabore um programa em Pascal que utilize um procedimento ou função que retorne ao programa principal um vetor com os três primeiros números perfeitos. Sabe-se que um número é perfeito quando é igual à soma dos seus divisores (exceto ele mesmo). Exemplo: os divisores de 6 são: 1,2 e 3 e 1 + 2 + 3 = 6. Logo, 6 é perfeito. 3) Faça um programa que implemente uma sub-rotina que receba um vetor A de 10 elementos inteiros como parâmetro e retorne ao programa principal um vetor B contendo o fatorial de cada elemento de A. O vetor B deverá ser mostrado no programa principal. Exercícios PROGRAM EX1; USES CRT; VAR x,y: INTEGER; FUNCTION potencia(a,b: integer):integer; VAR i, res: INTEGER; BEGIN res:=1; for i:=1 to b DO res := res*a; potencia:=res; END; BEGIN writeln('Informe o valor de x: '); readln(x); writeln('Informe o valor de y: '); readln(y); writeln(x, 'elevado a ',y,' é: ', potencia(x,y)); READKEY; END. Exercícios PROGRAM EX2; USES CRT; TYPE vetor = ARRAY[1..3] OF INTEGER; VAR vet: vetor; i: INTEGER; PROCEDURE perfeitos(VAR v: vetor); VAR a, r, num, soma, cont: INTEGER; BEGIN cont := 1; num := 1; WHILE (cont <= 3) DO BEGIN soma := 0; FOR a:=1 TO num-1 DO IF num MOD a = 0 THEN soma := soma + a; IF soma = num THEN BEGIN v[cont] := num; cont := cont + 1; END; num := num + 1; END; END; BEGIN CLRSCR; perfeitos(vet); FOR i:=1 TO 3 DO WRITELN('O ', i, '§ n£mero perfeito ‚ ', vet[i]); READLN; END. Exercícios PROGRAM EX3; USES CRT; TYPE vetor = ARRAY[1..10] OF INTEGER; VAR vet1, vet2: vetor; X: INTEGER; PROCEDURE fatoriais(VAR a, b: vetor); VAR i, j: INTEGER; f: REAL; BEGIN FOR i:=1 TO 10 DO BEGIN IF (a[i] = 0) OR (a[i] = 1) THEN b[i] := 1 ELSE BEGIN b[i] := 1; FOR j := 1 TO a[i] DO b[i] := b[i] * j; END; END; END; BEGIN CLRSCR; FOR x:=1 TO 10 DO BEGIN WRITE('Digite o ', x, '§ elemento de A '); READLN(vet1[x]); END; fatoriais(vet1,vet2); FOR x:=1 TO 10 DO WRITELN('O fatorial de ', vet1[x], ' ‚ ', vet2[x]); READLN; END. UNITS As units foram criadas para facilitar a construção de programas, pois eliminam a necessidade de duplicação de código, uma vez que blocos de comandos usados repetidamente podem ser transformados em sub-rotinas. As UNITS são rotinas compiladas separadamente do programa principal. Algumas UNITS disponíveis: System: rotinas básicas do Pascal Crt: rotinas associadas a aspectos de vídeo e som Dos: rotinas que envolvem o Sistema Operacional Dos Graph: rotinas responsáveis pelo suporte gráfico do Pascal Printer: rotinas responsáveis por configurações para impressora. UNITS Sintaxe: UNIT <Nome da Unit>; INTERFACE USES <lista de UNITs importadas> < definição de variáveis, constantes e tipos exportados> <cabeçalho das sub-Rotinas exportadas> IMPLEMENTATION USES <lista de UNITs importadas privativas ao módulo> <definição de variáveis, constantes e tipos internos a UNIT> <sub-Rotinas internas a UNITs> <corpo das sub-Rotinas exportadas> BEGIN <Comandos a serem executados na ativação da Unit> END. INTERFACE define todas as sub-rotinas, variáveis, constantes e tipos de dados que são exportados, ou sejam, são visíveis em outros programas. IMPLEMENTATION define os tipos de dados, variáveis e constantes que serão visíveis somente dentro da UNIT. As sub-rotinas definidas na seção IMPLEMENTATION e que não tenham o seu cabeçalho definido na seção INTERFACE serão internas a UNIT, não sendo desta forma exportadas. Para usar as sub-rotinas, variáveis, constantes e tipos de dados definidos em outras UNITs basta utilizar a palavra reservada USES seguido da relação de nomes das UNITs desejadas. UNITS - exemplo Exemplo: Construir uma UNIT que contenha uma sub-rotina para escrever uma STRING qualquer em uma determinada linha e coluna na tela do computador. UNIT tela; INTERFACE PROCEDURE Escreve_Str( linha, coluna : BYTE; Texto : STRING); IMPLEMENTATION USES CRT; PROCEDURE Escreve_Str( linha, coluna : BYTE; texto : STRING); BEGIN GOTOXY(coluna, linha); WRITE(texto); END; END. UNITS - exemplo Como complementação do exemplo anterior, vamos construir um pequeno programa que use a sub-rotina definida anteriormente: Program Testa_Unit; uses Tela, Crt; begin Escreve_Str(10, 10, ‘Teste de Unit’); readkey; end; UNITS - Exercício Construa uma unit que implemente um procedimento para troca de dois valores e uma função que retorne o maior valor dentre os dois passados como parâmetro. Após construir sua unit, faça um programa em Pascal que a utilize.
Compartilhar