Instituto de Computação - UNICAMP

MC111 - Introdução ao Processamento de Dados

Lista de Exercícios 3

Islene Calciolari Garcia

Primeiro semestre de 2002

    Passagem de parâmetros

  1. 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;
    

  2. 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

  3. 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

  4. 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

  5. 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;
    
  6. 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

  7. Escreva um procedimento que conta quantos elementos diferentes de zero existem em uma matriz.

    function conta_zeros (var mat: tipo_matriz): integer;

    Resolução

  8. 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

  9. Escreava um procedimento que verifica se uma matriz é simétrica.

    function simetrica(var mat: tipo_matriz): boolean;

    Resolução

    Arquivos

  10. 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

  11. Escreva um procedimento que grava o conteúdo de uma matriz em um arquivo matriz.txt.

    procedure grava(var mat: tipo_matriz);

    Resolução


Islene Calciolari Garcia