Lista de Exercicios
11. Considerando uma matriz que possua M linhas e N colunas. Escreva
um programa que elimine uma linha e/ou uma coluna desta matriz, guardando
esta nova matriz em outra variável. O número da linha e/ou
da coluna a ser retirada dever ser lido. Ao final do programa a nova matriz
dever ser impressa.
- program P11;
- uses crt;
- type matriz = array [1..30,1..30] of real;
- var
- a, b, c : matriz;
- m, n, i ,j, lin, col : byte;
- procedure tela;
- begin
- clrscr;
- gotoxy (19,2);
- highvideo;
- write ('PROGRAMA FEITO POR KARINE E MARIA DA GLORIA ');
- gotoxy (17,4);
- write ('Elimina uma linha e/ou uma coluna de uma matriz');
- lowvideo;
- end;
- procedure ler_dimensoes;
- begin
- repeat
- gotoxy(5,7);
- write('Entre com o número de linhas da matriz: ');
- readln(m);
- gotoxy(5,9);
- write('Entre com o número de colunas da matriz: ');
- readln(n);
- until (m<30) and (n<30);
- end;
- procedure ler_matriz;
- begin
- clrscr;
- gotoxy(5,3);
- write('Entre com os elementos da matriz:');
- for i:=1 to m do
- for j:=1 to n do
- begin
- gotoxy (2+(j-1)*5,4+(i-1)*2);
- read (a[i,j]);
- end;
- end;
- procedure ler_col_e_lin;
- begin
- repeat
- clrscr;
- gotoxy(5,3);
- write('Entre com o n£mero da linha a ser eliminada (0 para
nenhuma): ');
- readln (lin);
- gotoxy(5,5);
- write('Entre com o n£mero da coluna a ser eliminada (0 para
nenhuma): ');
- readln (col);
- until (lin <= m) and (col <= n);
- end;
- procedure elimina_linha; var i2 : byte;
- begin
- i2 := 1;
- for i:=1 to m do
- if i<>lin then
- begin
- for j:=1 to n do
- b[i2,j] := a[i,j]; i2 := i2 + 1;
- end;
- end;
- procedure elimina_coluna;
- var
- begin
- j2 := 1;
- for j:=1 to n do
- if j<>col then
- begin
- for i:=1 to m do
- c[i,j2] := b[i,j]; j2 := j2 + 1;
- end;
- end;
- procedure imp_matriz;
- begin
- clrscr;
- gotoxy(25,1);
- highvideo;
- write ('RESULTADO DA ELIMINAÇÃO');
- lowvideo;
- for i:=1 to m do
- for j:=1 to n do
- if c[i,j]<>0 then
- begin
- gotoxy (2+(j-1)*5,4+(i-1)*2);
- write (c[i,j]:4:2);
- end;
- end;
- {Programa Principal}
- begin
- tela;
- ler_dimensoes;
- ler_matriz;
- ler_col_e_lin;
- if lin<>0 then
- else
- if col<>0 then
- else
- imp_matriz;
- repeat until keypressed;
- end.
Para retornar a tela principal clique aqui.