• Viernes 8 de Noviembre de 2024, 21:52

Autor Tema:  procedimientos y funciones sobre una matriz  (Leído 1406 veces)

super_eman

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
procedimientos y funciones sobre una matriz
« en: Miércoles 15 de Diciembre de 2010, 21:08 »
0
Hola, excelente foro...
Sigo practicando con mis finales, me apareció el siguiente ejercicio:

Escriba un programa en lenguaje Pascal que conste de las siguientes partes:
1.  Un procedimiento que genere una matriz de tama˜no m × n, siendo m y n datos ingresados por el
usuario, de manera que los elementos de dicha matriz sean 0 o 1, elegidos aleatoriamente.
2.  Un función que decida si hay dos columnas en la matriz que son iguales.
3.  Un procedimiento que emita la posición de la columna con mayor cantidad de unos. Si hay más de
una columna con mayor cantidad de unos, emitir la posición de cualquiera de ellas.


Mis intentos de respuestas son:
1) Este procedimiento es sencillo, lo realice de esta manera:
Código: Pascal
  1. procedure matrizmxn(m:integer;n:integer);
  2. begin
  3. (*genera la matriz de 0 y 1*)
  4.  randomize;
  5.  for i:=1 to m do begin
  6.  for j:=1 to n do begin
  7.  a[i,j]:= random(2)
  8.   end
  9.  end
  10. end;
  11.  

Con los otros dos incisos estoy confundido ya que no se como comparar columna a columna no me sale el lazo (me hago nudos  :brickwall: ). Si saben de algún apunte donde hablen de esto o me dan una mano  :beer: , sino seguiré  :comp:  probando.
Gracias y saludos.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: procedimientos y funciones sobre una matriz
« Respuesta #1 en: Viernes 17 de Diciembre de 2010, 11:05 »
0
Para el punto 2, sólo tienes que coger cada columna y comparar cada elemento con los demás de cada columna. Por ejemplo, los elementos de la columna 1 con los de la columna 2, 3, 4... hasta n. Luego los elementos de la columna 2 con los de la 3, 4, 5... hasta n. Y así hasta llegar a la columna n-1.

El punto 3 es mucho más fácil que el 2, y sólo tienes que contar el número de 1s que haya por cada columna y compararlos. Por ejemplo, cuentas los 1s de la columna 1, guardas el valor, cuentas los 1s de la columna 2, si es mayor que los de la columna 1, pues guardas éste, sino dejas el de la columna 1 y así hasta recorrer las n columnas.

Saludos.