[ Foro de Pascal ]

suma rara

01-Apr-2014 16:52
Invitado (yadir)
5 Respuestas

cordial saludo a todos.
queria pedir ayuda en un programa de la facultad que no he podido solucionar, espero cualquier ayuda.

la idea es multiplicar porejemplo123 por 456, producto con las siguientes especificaciones:

se dibuja  una matriz de 3 x 3 y escribimos uno de los números en la parte de arriba de la matriz ( horizontalmente) y el otro en la parte derecha de la matriz ( verticalmente). También dividimos diagonalmente cada una de las celdas.

Se multiplica el número final de cifra superior (3) por cada uno de los números de la cifra que está a la derecha. El resultado se almacena en la celda en donde intersectan. Si el resultado de la multiplicación es mayor de nueve, se coloca el segundo dígito en la parte superior diagonal. Su ya había un número en esa posición, se pueden sumar. Esta operación se repite con los otros dos dígitos (1 y2).

Se suma cada una de las diagonales comenzando con la del triángulo inferior derecho y se anotan los totales a lo largo de la parte inferior de derecha a izquierda y en el lateral izquierdo de abajo hacia arriba. Si la suma de una de las diagonales es mayor de 10, se anota la cifra de las unidades en su lugar correspondiente y la de las decenas en la diagonal siguiente

Escribiendo las cifras nos da como resultado: 056088 = 56,088

1. Desarrolle un programa pascal que acepte dos números de un largo no menor de dos ni mayor de cinco.
2. Tiene que mostrarse en pantalla el proceso de multiplicación tal y como se expuso  paso por paso. No tiene que ser en un formato gráfico.
3. Finalmente tiene que mostrar el resultado obtenido
                   
otro ejemplo seria:

Indique el primer dígito: 584
Indique el segundo dígito: 4173
Resultado = 2437032


02-Apr-2014 15:26
Nacho Cabanes (+31)

En vez de poner todo el enunciado de tu ejercicio, haz preguntas más concretas. Dinos qué sabes hacer y qué no has conseguido hacer. Así será más fácil ayudarte.


07-Apr-2014 13:55
Invitado (yadir)

profesor es que no se como hacer para dividir cada celda de la matriz diagonalmente y poner el resultado de la operacion en cada porcion como se especifica en el + , ademas como puedo hacer la multiplicacion de los numeros si estos estan como cabeceras de la matriz como horizontalmente tanto vertical e ir poniendo los resultados dentro de las celdas de la la matriz en sus porciones divididas por las diagonales de cada celda, si puedes ayudarme con ello me resultaria de ayuda inmensa para intentar resolverlo.gracias


07-Apr-2014 19:17
Nacho Cabanes (+31)

Es que no están "en cabeceras". La primera fila de la matriz la forman los elementos [1,1], [1,2] y [1,3] (suponiendo que tu primer índice se está usando para la fila y el segundo para la columna). La columna de la derecha será [1,3], [2,3] y [3,3]. Ambas intersectan en [1,3].

Pero aun así, no entiendo lo que pretendes, porque si multiplicas el número 3 por 4, 5 y 6, obtienes 3 cifras distintas. ¿Debes sumarlas? Y eso de "si el resultado de la multiplicación es mayor de nueve, se coloca el segundo dígito en la parte superior diagonal"... ¿qué superior diagonal? ¿la casilla[1,3], que ya estás usando? ¿o la [1,1], y destruyes el valor 1 que había almacenado en ella?

Háblalo con tu profesor para que te lo aclare, porque parece un ejercicio en el que debas recorrer casillas de una matriz, pero hay ambigüedades que no dejan claro qué has de hacer con los resultados parciales que obtienes.


08-Apr-2014 12:35
Invitado (yadir)

hola profesor, es que el ejercicio lo entenderias si pudiera plasmarte un ejemplo pero es que no veo en este foro la opcion de enviar un archivo para hacerte una captura del mismo , seguro asi entenderias de que va el ejercicio, hay alguna forma de enviarte la captura? gracias


10-Apr-2014 09:43
Nacho Cabanes (+31)

No, por ahora no hay forma de adjuntar ficheros a los mensajes del foro. Tomo nota para una futura ampliación. Hasta entonces, tendrás que intentar explicarlo.  ;-)






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)