



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Este documento contiene una serie de ejercicios relacionados con el tema de programación, específicamente sobre el cálculo del centro de masas de sistemas de partículas en c++. El documento incluye la definición de clases y métodos necesarios para resolver los ejercicios, además de código para leer datos de un archivo y calcular el centro de masas. Se incluyen versiones recursivas y iterativas para resolver un problema de física relacionado con la altura que alcanza una pelota en cada rebote.
Tipo: Exámenes
1 / 5
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




Programación
an =
L si n = 0 0.79∗ an − 1 en otro caso r ⃗ cm =
i = 1 n mi ⃗ ri
i = 1 n mi
//Examen de Febrero de 2016 #include
//Ejercicio 4: definir clases cParticula y cSistema class cParticula { public: double masa; double pos[3]; }; class cSistema { public: int num_particulas; cParticula particula[MAX]; double masaCM; double posCM[3]; void CalcularMasaCM(void); void CalcularPosCM(void); void EliminarParticula (int i); }; void cSistema::CalcularMasaCM(void) { int i; masaCM = 0.0; for(i=0; i<num_particulas; i++) masaCM+=particula[i].masa; return; } void cSistema::CalcularPosCM(void) { int i, j; //Podemos suponer que el método CalcularMasaCM() se ha invocado o no //Dependiendo de si se ha hecho antes o no, habrá que invocarlo desde //aquí para calcular la masa total del sistema (masaCM) CalcularMasaCM(); for(j=0; j<3; j++) { posCM[j] = 0.0; for(i=0; i<num_particulas; i++) posCM[j] += particula[i].masa*particula[i].pos[j]; posCM[j] = posCM[j]/masaCM; } return; } void cSistema::EliminarParticula(int k) { int i; cParticula paux; for(i=k; i<num_particulas; i++) particula[i]=particula[i+1]; //Atributos que cambian de valor num_particulas--; CalcularMasaCM(); CalcularPosCM(); return; Programación
//Ejercicio 5: ordenar partículas del sistema según la masa void OrdenarParticulas(cSistema sistema) { int i, j; cParticula paux; //Uso algoritmo de la burbuja for(i=1; i<sistema.num_particulas; i++) for(j=sistema.num_particulas-1; j>=i; j--) if(sistema.particula[j].masa<sistema.particula[j-1].masa) { paux = sistema.particula[j]; sistema.particula[j] = sistema.particula[j-1]; sistema.particula[j-1] = paux; } return; Programación