Professional Documents
Culture Documents
DATOS
• Vector *inicio;
//apuntadores externos
para manejar la lista
doblemente enlazada
• Vector *ultimo;
• Vector *siguiente;
• Vector *anterior;
• Vector resultante; //variable
del tipo Vector
• int numFuerzas=0;
• int i=0;
•
resultante.apAnt=NULL;//inicia
lizacion
• resultante.apSig=NULL;
• resultante.compX=0;
• resultante.compY=0;
• resultante.compZ=0;
• system("cls"); //limpia
pantalla
• printf("Ingrese la cantidad
de fuerzas que se aplicaran al
sistema :");
•
scanf("%d",&numFuerzas);
//se piden las fuerzas al
usuario
• inicio = (Vector
*)malloc(sizeof(Vector)); //reserva
un espacio de tamaño vector para
guardar vectores y se le pasa la
dirección de memoria al puntero
inicio
• printf("\n\ningrese los datos del
primer vector\n");
• *inicio = leeVector(); //se le
asignan datos al primer nodo de la
lista
• ultimo = inicio; //y también al
puntero ultimo
• for(i=1;i<numFuerzas;i++)
• {
• printf("\nIngresa los datos
del vector: %d",i+1);
• siguiente =
(Vector*)malloc(sizeof(Vector)); /
/reserva un espacio de tamaño
vector para guardar vectores y se
le pasa la dirección de memoria al
puntero siguiente
• *siguiente = leeVector(); //se
le asignan datos al primer
nodo de la lista
• siguiente->apAnt =
ultimo; //el nuevo nodo en su
campo apAnt apunta a donde
apunta último
• ultimo->apSig = siguiente; //al
nodo que apunta último, en su
campo apSig apunta a lo que
apunta siguiente
• ultimo = siguiente;
//último apunta a lo que apunta
siguiente
• } //fin de for
• anterior = ultimo; //anterior apunta a lo que
apunta ultimo
• for(i=numFuerzas;i>0;i--)
• {
• resultante.compX += anterior->compX; //al
campo compX de resultante, se le asigna el
valor de la componente x del nodo al que
apunta anterior
• resultante.compY += anterior->compY;
• resultante.compZ += anterior->compZ;
• anterior = anterior->apAnt; //anterior
apunta, a lo que apunta en su campo apAnt,
el nodo al que apunta anterior
• } //fin de for
• //impresión de la resultante
• printf("\n\nla resultante es:(%d)i+(%d)j+(%d)k“
,resultante.compX,resultante.compY,resultante.c
ompZ);
• //free(inicio);
• printf("\n\n");
• system("pause"); //ingresa una pausa
• return 0; //indica terminación exitosa del
programa
• } //fin de main
//Inicio de la función lee vector
• Vector leeVector()
• {
• Vector
fuerza={0,0,0,NULL,NULL}; //crea
una variable del tipo Vector y la
inicializa
• int x=0;
• int y=0;
• int z=0;
• printf("\n\nIngresa el valor de la
componente en x: ");
//ingreso de componentes
• scanf("%d",&x);
//por parte del usuario
• printf("\nIngresa el valor de la
componente en y: ");
• scanf("%d",&y);
• printf("\nIngresa el valor de la
componente en z: ");
• scanf("%d",&z);
• fuerza.compX = x; //asignación
de valores al vector
• fuerza.compY = y;
• fuerza.compZ = z;