Passagem de parâmetros
- Mostre qual é a saída do programa abaixo:
program verifica_saida;
procedure soma(var a,b: integer; c, d: integer);
begin
a := a + b; c := c + d;
end;
var
x, y, w, z: integer;
begin
x := 0; y := 1; w := 2; z := 3;
soma (x, y, w, z);
writeln('x = ', x); writeln('y = ', y);
writeln('w = ', w); writeln('z = ', z);
end.
Resolução
Vetores
const tam_vet = 100;
type tipo_vetor = array [1..tam_vet] of integer;
- Escreva um procedimento que modifica as posições de um vetor da
seguinte forma:
caso v[i] < 0, v[i] deve receber -v[i].
procedure abs_vet(var v: tipo_vetor);
Resolução
- Escreva um procedimento que preenche todas as posições de um
vetor da seguinte forma: v[i] = 2 * i.
procedure multiplos_dois(var v: tipo_vetor);
Resolução
- Escreva um procedimento que recebe dois vetores a e b como
entrada e coloca em cada posição c[i] a soma a[i] + b[i].
procedure soma(var a, b, c: tipo_vetor);
Resolução
- Escreva uma função que verifica se um valor x se encontra no
vetor v.
Resolução
function busca(var vet: vetor; x: integer) : boolean;
Esta função pode ser escrita de maneira mais eficiente se o vetor
estiver ordenado?
Busca linear em vetor ordenado
Busca binária em vetor ordenado
Matrizes
const n_linhas = 100, n_colunas = 100;
type tipo_matriz = array [1..n_linhas, 1..n_colunas] of integer;
- Escreva um procedimento que preenche uma matriz da seguinte
forma:
m[i, j] = 0, caso i <> j e m[i, j] = 1, caso i = j.
procedure diagonal (var mat: tipo_matriz);
Resolução
- Escreva um procedimento que conta quantos elementos
diferentes de zero existem em uma matriz.
function conta_zeros (var mat: tipo_matriz): integer;
Resolução
- Escreva um procedimento que multiplica os elementos de uma
matriz por um escalar x.
procedure mult_escalar (var mat: tipo_matriz; x: integer);
Resolução
- Escreava um procedimento que verifica se uma matriz é simétrica.
function simetrica(var mat: tipo_matriz): boolean;
Resolução
Arquivos
- Escreva um procedimento que lê inteiros de um arquivo de entrada
dados.txt e escreve os valores pares em um arquivo
pares.txt e os valores ímpares em um arquivo impares.txt.
O arquivo de entrada deve ser percorrido até que a condição fim
de arquivo(eof) seja válida.
procedure pares_impares;
Resolução
- Escreva um procedimento que grava o conteúdo de uma matriz em
um arquivo matriz.txt.
procedure grava(var mat: tipo_matriz);
Resolução