Sintaxe: Procedimentos: procedimento < nome do Procedimento> (<lista de parâmetros>) <especificação dos parâmetros>; <declaração de variáveis locais> C1; C2;.. Cn; fim; { nome do procedimento} Funções <tipo de retorno> função <nome da função> (<lista de parâmetros formais>) <especificação dos parâmetros>; <declaração de variáveis locais>; C1; C2;... <nome da função> <expressão>; fim; {<nome da função>} Funções: 1- Faça uma função que receba dois números positivos por parâmetro e retorne a soma dos N números inteiros existentes entre eles (não incluir esses dois números na soma). Obs: verificar se o segundo número é maior que o primeiro. inteiro: num1,num2, s; {variáveis globais} inteiro função soma (numero1, numero2) inteiro: numero1, numero2; {parâmetros} inteiro: i,s; {variáveis locais} s 0; para i de (numero1+1) até (número2-1) faça s s + i; soma s; fim;{soma} imprima ( Entre com dois números inteiros: ) leia (num1,num2); até num2 > num1; s soma (num1,num2); imprima ( Soma dos numeros,num1, e, num2, =, s);
2- Escreva uma função para receber as três notas de um aluno como parâmetros e uma letra. Se a letra for A, a função deverá calcular a média aritmética das notas do aluno; se for P, deverá calcular a média ponderada, com pesos 5,3 e 2. A média calculada deverá ser devolvida ao programa principal para, então, ser mostrada. real: nota1, nota2, nota3, media; caracter: letra; real função calcula_media (nota1,nota2,nota3, letra) real: nota1,nota2,nota3; {parâmetros formais} caracter: letra; {parâmetro formal} inicio se letra='a' então calcula_media (nota1+nota2+nota3)/3.0; senão calcula_media (nota1*5 + nota2*3 + nota3*2)/(10.0); fim; {calcula_media} imprima ( Entre com três notas do aluno: ); leia (nota1, nota2, nota3); imprima ( Entre com a letra A ou P ); leia (letra); até (letra='a') ou (letra='p'); media calcula_media(nota1,nota2,nota3,letra); se (letra = 'A') então imprima ( A média aritmética =, media); senão imprima ( A média ponderada =, media); {chamada à função}
3- Escreva uma função que receba como parâmetro uma matriz (5,5) e retorne a soma de seus elementos. matriz [5,5] inteiro: mat; inteiro: soma, i, j; inteiro funcao somamat (mat) matriz [5,5] inteiro: mat; {parâmetro da função} inteiro:soma,i,j; soma 0; para i de 1 até 5 faça para j de 1 até 5 faça soma soma + mat(i,j); somamat soma; fim; {somamat} para i de 1 até 5 faça para j de 1 até 5 faça imprima ( Entre com um valor para os índices, i, e, j); leia mat(i,j); soma somamat(mat); imprima ( Soma=, soma);
4- Faça uma função que receba três números inteiros a,b e c, sendo a maior que 1. A função deverá somar todos os inteiros entre b e c que sejam divisíveis por a (inclusive b e c) e retornar o resultado para a função principal. inteiro: a,b,c, resultado; inteiro função divisores (a1,b1,c1) inteiro: a1,b1,c1; inteiro: i, s, r; s 0; para i de b1 até c1 faça r (i mod a1); se (r=0) então s s + i; divisores s; fim; {divisores} imprima ( Entre com o valor de a: ); leia(a); até a>1; imprima ( Entre com os valores de b e c: ); leia(b,c); resultado divisores(a,b,c); imprima ( Soma dos inteiros =, resultado);
Procedimentos: 1- Escreva um procedimento que receba como parâmetro um vetor A com cinco números reais e ordene esses números de forma crescente. Mostrar esse vetor ordenado no programa principal. Inicio vetor [1:5] real: A; procedimento ordenacao (A) vetor [1:5] real: A; {declaração das variáveis locais} inteiro: i, j, cont; real: Aux; cont 5; para i de 1 até 4 faça cont cont-1; para j de 1 até cont faça se A[j] > A[j+1] então fim; {ordenação} imprima ( Entre com 5 valores reais ); leia (A); call ordenacao(a); {chamada ao procedimento} imprima( Resultado da ordenação:, A); Aux A[j]; A[j] A[j+1]; A[j+1] Aux;
2- Escreva um procedimento que receba como parâmetro um inteiro no intervalo de 1 a 9 e mostre a seguinte tabela de multiplicação (no exemplo, n=8). 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 inteiro: num; procedimento multiplicacao (n) inteiro: n; inteiro: i,j; para i de 1 até n faça para j de 1 até i faça imprima(i*j); fim; {multiplicacao} imprima( Entre com um número no intervalo de 1 a 9); leia(num); até (num >=1) e (num <= 9) call multiplicacao(num);
3- Crie um procedimento que receba como parâmetro um vetor A de 25 números inteiros e substitua todos os valores negativos de A por zero. O vetor resultante deverá ser mostrado no programa principal. vetor [1:25] inteiro: A; procedimento substituicao (vet) vetor [1:25] inteiro: vet; inteiro: i; i 1; enquanto i <= 25 faça se vet[i] < 0 então vet[i] 0; i i + 1; fim enquanto; fim;{substituicao} imprima( Preencha o vetor com 25 elementos inteiros ); leia (A); call substituição (A); {chamada do procedimento} imprima ( Resultado do vetor: ); imprima (A);