¿Alguien me podría ayudar con pascal?

Tengo un problema con un ejercicio de pascal, no lo entiendo y no se como sacar lo que me pide. Desearía un poco de ayuda por parte de los expertos, en fin el ejercicio dice así:

""Diseñar un algoritmo que lea un arreglo bidimensional de datos numéricos y analizar si tiene por lo menos un punto de silla.
Nota:
Se llama punto de silla de una matriz M, a un elemento del mismo que es mínimo
En su fila y máximo en su columna.""

YO LO HICE ASÍ:

program tarea_02;
uses crt;
var
mt:array[1..5,1..5] of integer;
f,c:integer;
begin
randomize;
{carga datos en array}
writeln('El arreglo generado es: ');
for f:=1 to 5 do
for c:=1 to 5 do
mt[f,c]:=random(10);
{Imprimir array}
for f:=1 to 5 do
begin
for c:=1 to 5 do
write(mt[f,c],' ');
writeln;
end;
readln;
end.

Me falta terminarlo,

es algo así amigo, a modo de ejemplo: tengo una matriz así de 4 filas por 5 columnas.!
1c 2c 3c 4c 5c
1f 3 4 9 6 8
2f 0 3 4 5 1
3f 2 2 7 3 3
4f 1 6 2 3 2

Según el google punto de silla es cuándo, un valor es el mínimo en su silla y máximo en su columna.
Entonces en la posición (1,1) hay un punto de silla, puesto que el numero 3 de la posición (1,1) es el menor de la fila uno y mayor en la columna 1.
Ahora como hago para llegas a eso me es imposible.

1 Respuesta

Respuesta
1

Uses crt;
Const
FILAS = 3;
COLUMNAS = 3;
Type
TipoTabla=Array[1..COLUMNAS,1..FILAS] of Integer;
var
N,I : Integer;
COL,FIL,b:Integer;
TABLA:TIPOTABLA;
Procedure LlenarMatriz(var T:TipoTabla);
Var
I,J :Integer;
Begin
For i:=1 to COLUMNAS do
For j:=1 to FILAS do
t[i,j]:=random(100)+1;
end;
Procedure PresentarMatriz(Var T:TipoTabla);
var
i, j : Integer;
begin
For i:=1 to COLUMNAS do
for j:=1 to FILAS do
begin
GotoXY(i*3,j*3); wRITE(T[I,J]);
end;
end;
function HallarMinimo(var t:tipotabla; var fila : Integer; var columna:integer):Integer;
Var
AUXFIL, auxcol, i,j,col,fil,menor:integer;
begin
menor:=99;
For i:=1 to COLUMNAS do
if t[I,FILA] < menor then
begin
menor:=t[i,FILA];
auxcol:=i;
end;
columna:=auxcol;
hallarminimo:=menor;
end;
function HallarMaximo(var t:tipotabla; var fila : Integer; var columna:integer):Integer;
Var
AUXFIL, auxcol, i,j,col,fil,mayor:integer;
begin
mayor:=0;
For i:=1 to COLUMNAS do
if t[I,FILA] > mayor then
begin
mayor:=t[I,FILA];
auxcol:=i;
end;
columna:=auxcol;
hallarmaximo:=mayor;
end;
{Function Simaximo(var T:TipoTabla; var Valor:Integer; VAR columna:integer) :boolean;
var
mayor:integer;
begin
mayor:=valor;
For i:=1 to filas do
if tabla[columna,i] > mayor then
begin
mayor:=tabla[columna,i];
simaximo:=false;
end
end;}
Begin
clrscr;
randomize;
LlenarMatriz (TABLA);
PresentarMatriz(TABLA);
writeln;
{writeln; WRITELN('iNTRODUZCA LA FILA: '); rEADLN(FIL);}
writeln; writeln;
for fil:=1 to filas do
begin
b:=HallarMinimo(tabla,fil,col);
writeln(HallarMinimo(TABLA,FIL,COL), ' COLUMNA ',COL,' FILA ',FIL);
{if simaximo(tabla,b,coL)=true then
writeln('Punto de silla en ','COLUMNA ',col,'FILA ',fil);}
end;
readln;
end.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas