• Domingo 5 de Mayo de 2024, 00:54

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - pegui

Páginas: [1]
1
Pascal / Circuito de Euler
« en: Martes 8 de Julio de 2008, 13:44 »
Bien me piden que diga si un grafo es circuito de euler (grafo debe ser conexo y todos los nodos deben tener grado(nº aristas) par ya que el camino entra y sale de los nodos)
me dan la funcion que multiplica 2 matrices para usarla. Pero la verdad nose como usarla para decir si es circuito de euler.
me hice la declaracion de tipos:
CONST
     MaxVertices=...;
TYPE
     tInfo=...;
     tGrafo=RECORD
                    n:Integer;
                    Info=ARRAY [1..MaxVertices]of tInfo;
                    Aristas=ARRAY [1..MaxVertices,1..MaxVertices]of Integer
                END;
VAR
     Grafo:tGrafo

Por favor, alguien puede ayudarme a resolver el problema???
Muchas gracias de antemano.

2
Pascal / Arbol perfectamente ponderado
« en: Martes 8 de Julio de 2008, 13:32 »
Bien me piden que diga si un arbol es perfectamente ponderado, y perfectamente ponderado es cuando para todo nodo el número de nodos del subarbol derecho e izquierdo difieren como mucho en una undidad.
Me dan esta cabecera:
FUNCTION (Num:integer):tArbol;
es decir num es el número de nodos que recibe y me tiene devolver el arbol.
Nose ni como empezar a construir el arbol, necesito ayuda por favor.

3
Pascal / Buscar en un array
« en: Miércoles 2 de Julio de 2008, 20:31 »
Me dan un fichero binario (.dat) con los datos correspondientes a unas imagenes.
 tImagenV=RECORD
                Cod_Ima:Integer;
                Precio:Real;
                Cod_Autor:1..30;
                Autor:String[20];
                Cliente:String[20];
             END;

tFich=File of tImagenV;

el fichero contiene 50 registros y solo hay 30 autores diferentes.
primero los paso a un array como me dicen.
pero luego me piden que le recorra y pase a otro array solo los 30 autores distintos que hay, y aqui empiezan mis problemas.

yo me he hecho esta declaración de tipos:
PROGRAM Pintores;
CONST
     Max=30;
     N=50;
TYPE
    tImagenV=RECORD
                Cod_Ima:Integer;
                Precio:Real;
                Cod_Autor:1..30;
                Autor:String[20];
                Cliente:String[20];
             END;
    tNuevo=RECORD
              Cod_Autor:1..30;
              Autor:String[20];
              Pinturas:Integer;
              Total:Real;
           END;

    tFich=File of tImagenV;
    tArray=ARRAY[1..Max]OF tNuevo;
    tVector=ARRAY[1..N]OF tImagenV;

VAR
   F1:tFich;
   F2:Text;
   Nuevo:tNeuvo;
   Vector:tVector;
   ImagenV:tImagenV;
   salida:tArray;
   I:Integer;

Mi idea es recorrer el array con un for FOR I:=1 TO N DO. Pero como hago para que solo me pase los no repetidos???
Tambien me pide que pase a un fichero de texto el nombre del autor, el número de imagenes que vendio y el precio total.
recorrer el array y pasarlo a un fichero de texto tb lo tengo hecho, pero como hago para almacenar esos datos en el array??
Por favor necesito ayuda!!!
Muchas gracias

4
Pascal / Mas matrices
« en: Miércoles 25 de Junio de 2008, 20:13 »
Dado un vector construir la matriz.
1 2 3 4 5 6 7 8 9 10

1 2 4 7       donde de la diagonal para abajo son los
2 3 5 8       números del array, quedando una matriz simetrica
4 5 6 9
7 8 9 10

PROGRAM Matriz;
Type
tMatriz=ARRAY [1..N,1..M]OF Integer;
tVector=ARRAY [1..K]OF Integer;
Var
Matriz:tMatriz;
Vector:tVector;
PROCEDURE Diagonal (Vector:tVector;VAR Matriz:tMatriz)
VAR
I,J,Z:Integer;
BEGIN
FOR I:=1 TO K DO {recorro vector}
FOR J:=1 TO N DO {Filas}
FOR Z:=1 TO M DO {Columnas}
Vector:= Matriz[N,M]
END;

pero asi no me la escribe como yo quiero. Como hago??

5
Pascal / Matriz
« en: Miércoles 25 de Junio de 2008, 19:51 »
Dada una matriz correr una posición todos los números.

    1  2  3  4            16 1  2  3
    5  6  7  8             4  5  6  7
    9  10 11 12        8  9  10 11
   13 14 15 16         12 13 14 15
la matriz tendria que quedar asi.
He hecho esto:

TYPE
   tMatriz:Array [1..4,1..4]OF Integer;
VAR
   Matriz:tMatriz;

PROCEDURE Mover (Matriz:tMatriz);
VAR
   I,J,Aux:Integer;
BEGIN
   FOR I:=4 DOWNTO 1 TO
     FOR J:=4 DOWNTO 1 TO
       IF (I=4) AND (J=4) THEN
      Aux:=Matriz[I,J];
       IF (J=4) THEN
      Matriz[I,J]:=Matriz[I+1,1];
       ELSE
      Matriz[I,J]:=Matriz[I,J+1];
   Matriz[1,1]:=Aux;
END;

pero no me funciona.Que hago mal??Como lo soluciono??

6
Pascal / Piramide Pascal
« en: Miércoles 25 de Junio de 2008, 11:10 »
Hola a todos, Necesito ayuda porque tengo que hacer un programilla en pascal que por medio de bucles anidados, “mientras” me construya una pirámide de dígitos como la imagen de abajo, de tal manera que el número de líneas de la pirámide está dado por un número introducido por teclado.

                              1
                            010
                          10101
                        0101010
                      101010101
                    01010101010

Necisito que alguien me ayude sobre cual es la condiccion a poner en el while, porque no consigo dar con ello.
Gracias.

PROCEDURE piramide ()
VAR
     Numero:Integer;
BEGIN
     Write('Introduce un Número por teclado:');
     Read(Numero);
     WHILE ( ) DO

END;

Páginas: [1]