SlideShare una empresa de Scribd logo
Herramientas computacionales de Cómputo Científico   Dra. Elisa Schaeffer.
Antecedentes Actualmente estoy estudiando un trabajo acerca de la política WEEE que es usada en la Unión Europea. El modelo matemático (1)  desarrollado emplea la siguiente restricción: Donde d ij  es la distancia entre el nodo i y el nodo j,  es una variable binaria que vale 1 si tanto el nodo y como el nodo j están pertenecen a la misma compañía k y D funciona como una “big M” (representa una cantidad muy grande) .
Antecedentes. Se puede asignar cualquier valor a D, pero para un mejor desempeño de los métodos de solución, se desea que ese valor sea “realista”. Como se asignarán nodos a diferentes territorios y se desea saber que tan dispersos son, esa D se puede cambiar por la máxima distancia entre dos vértices. El programa que desarrolle calcula la mayor distancia de una instancia. El programa esta codificado en C++ y posteriormente se crea un archivo  ejecutable.
Procedimiento.
Programa en C++ Como se tienen varias instancias, cada una en un archivo en el mismo formato, el archivo de lectura  de las instancias leerá la información en una estructura, de la cual se obtendrá la mayor distancia.  #include  "stdio.h" #include  "stdlib.h“ #include  "string.h" #include  "iostream“  Librerías y declaración de variables  #include  "fstream"  // sirve para abrir flujo de archivos using namespace std; ofstream fp; int f,c;
Programa en C++ struct P_ARCHIVO{ int filas; float matriz1[ 100 ][ 5 ]; int filas2; int alado; float matricilla[ 20 ][ 20 ]; Clases en la estructura float parametros[ 3 ]; float matrizota[ 100 ][ 100 ]; };
Programa en C++ int visualizar(P_ARCHIVO &A){ //Esto sirve para visualizar el archivo leido int oper =  0 ; float max = A.matrizota[ 0 ][ 0 ]; printf (&quot;%d\n&quot;, A.filas); for(f= 0 ;f<A.filas;f++)    Función visualizar   {for(c= 0 ;c< 5 ;c++)  {printf (&quot;%f &quot; ,A.matriz1[f][c]);   }   printf( &quot;\n&quot; ); }
Programa en C++ printf( &quot;%d &quot; ,A.filas2); printf( &quot;%d\n&quot; ,A.alado);  for(f= 0 ;f<A.filas2;f++) {for(c= 0 ;c< 3 ;c++) {printf( &quot;%f &quot; ,A.matricilla[f][c]);    }  printf( &quot;\n&quot; ); } printf( &quot;%f &quot; ,A.parametros[ 0 ]);  printf( &quot;%f &quot; ,A.parametros[ 1 ]); printf( &quot;%f\n&quot; ,A.parametros[ 2 ]);
Programa en C++ printf( &quot;%f &quot; ,A.parametros[0]); printf( &quot;%f &quot; ,A.parametros[1]); printf( &quot;%f\n&quot; ,A.parametros[2]); for(f= 0 ;f<A.filas;f++) {for(c= 0 ;c<A.filas;c++) {printf( &quot;%f &quot; ,A.matrizota[f][c]);    if (max < A.matrizota[f][c])   {max = A.matrizota[f][c]; oper +=  1 ; } } }printf( &quot;La mayor distancia es: %5.2f, y las comparaciones hechas fueron %d&quot; , max, oper); }
Programa en C++ int main(int argc, char ** argv){ P_ARCHIVO A;  // se va a tener acceso a la structura P_ARCHIVO con el caracter A FILE *pArch; pArch = fopen(argv[ 1 ], &quot;r&quot; ); if(!pArch)  { cout <<  &quot;\nNo existe el archivo\n&quot; ; exit( 0 );  }  else{  //Esto lee el primero renglon = al numero de filas  fscanf(pArch, &quot;%d&quot; ,&A.filas); //Esto lee la primer matriz de la estructura for(f= 0 ;f<A.filas;f++){    for(c= 0 ;c< 5 ;c++){  //creo que son 5 columnas siempre fscanf(pArch, &quot;%f&quot; ,&A.matriz1[f][c]); } }
Programa en C++ //Esto lee el valor despues de la primer matriz que son los renglones de la segunda matriz fscanf(pArch, &quot;%d&quot; ,&A.filas2); fscanf(pArch, &quot;%d&quot; ,&A.alado);  //esto lee el valor a lado del valor anterior que son los arcos o algo asi //Esto lee la segunda matriz la matricilla for(f= 0 ;f<A.filas2;f++) {for(c= 0 ;c< 3 ;c++)   //creo que son 3 columnas siempre {fscanf(pArch, &quot;%f&quot; ,&A.matricilla[f][c]); } } //Esto lee las clavecillas esas que son 3  fscanf(pArch, &quot;%f&quot; ,&A.parametros[ 0 ]);   fscanf(pArch, &quot;%f&quot; ,&A.parametros[ 1 ]);   fscanf(pArch, &quot;%f&quot; ,&A.parametros[ 2 ]);
Programa en C++ //Esto lee la matrizota for(f= 0 ;f<A.filas;f++) {for(c= 0 ;c<A.filas;c++) {fscanf(pArch, &quot;%f&quot; ,&A.matrizota[ f ][ c ]); } } fclose(pArch); } visualizar(A); return  0 ; }
Archivo mio_Diana.sh #!/bin/bash echo   &quot;Numero de unidades basicas: &quot; read n=$REPLY for   j   in  2 3 4 ; do for  x   in  0 1 2 3 4 ; do . / prueba3  &quot;data&quot; $n &quot;_&quot; $j &quot;_&quot; $x  >  &quot;resultado&quot; $n &quot;_&quot; $j &quot;_&quot; $x done done
Instrucciones en la pantalla

Más contenido relacionado

PDF
Luis Gamboa
PPT
Tema 4 - Tipos datos avanzados (I)
PPT
Tema 4 - Tipos datos avanzados (II)
PDF
Arreglos multidimensionales y de apuntadores
PPTX
Recuperacin 333333
PPT
Tema 4 - Tipos datos avanzados (III)
PPT
Tema 5 - Metodología programación (I)
PPTX
Metodosbiseccionyfalsaposicion
Luis Gamboa
Tema 4 - Tipos datos avanzados (I)
Tema 4 - Tipos datos avanzados (II)
Arreglos multidimensionales y de apuntadores
Recuperacin 333333
Tema 4 - Tipos datos avanzados (III)
Tema 5 - Metodología programación (I)
Metodosbiseccionyfalsaposicion

La actualidad más candente (19)

PPT
Fpr Tema 2 www.fresymetal.com
PPTX
Tipo de dato DOUBLE
PPT
Estructuras punteros
PPTX
10. subalgoritmos parte i
PPTX
0.2 Conceptos Basicos C++ II
PDF
Programación 1: arreglos en C
PPTX
Usodeoperadores2 120625202023-phpapp02
PDF
Práctica 12
PDF
Contar digitos
PPT
Listas enlazadas
PPTX
0.1 Enbarcadero I
PDF
Elementos basicos c
PPT
Arreglos en C
PDF
Bucles anidados 2012
PDF
Programación 1: funciones en C
PPT
Arreglos
PDF
Programación 1: tipos básicos de datos en C
Fpr Tema 2 www.fresymetal.com
Tipo de dato DOUBLE
Estructuras punteros
10. subalgoritmos parte i
0.2 Conceptos Basicos C++ II
Programación 1: arreglos en C
Usodeoperadores2 120625202023-phpapp02
Práctica 12
Contar digitos
Listas enlazadas
0.1 Enbarcadero I
Elementos basicos c
Arreglos en C
Bucles anidados 2012
Programación 1: funciones en C
Arreglos
Programación 1: tipos básicos de datos en C
Publicidad

Destacado (20)

DOC
tarea 4 ayudantia
DOCX
PPS
2. clases de palabras
PDF
Jornada Empresa UOC - Desarrollo de Aplicaciones para Formación en RRHH
PPTX
tribus urbanas
PPTX
Presentacion 1
PPSX
PPTX
Presentacion 1
PDF
Construyendo la visión de su compañía
PPT
Video clase teed 3008 terminado
PPTX
Unidad 1 r
PPTX
Fddcd b02 documents_planificacio_v1_2015
PPT
Plastico
PPT
Las ventajas del telefono EVO HTC
PDF
CONAVI eco tecnol 2009 paq basico
PPTX
Presentacion Biofisico
PPS
8 regalos para xxx ebu
PDF
Pd maquines electriques_1415
tarea 4 ayudantia
2. clases de palabras
Jornada Empresa UOC - Desarrollo de Aplicaciones para Formación en RRHH
tribus urbanas
Presentacion 1
Presentacion 1
Construyendo la visión de su compañía
Video clase teed 3008 terminado
Unidad 1 r
Fddcd b02 documents_planificacio_v1_2015
Plastico
Las ventajas del telefono EVO HTC
CONAVI eco tecnol 2009 paq basico
Presentacion Biofisico
8 regalos para xxx ebu
Pd maquines electriques_1415
Publicidad

Similar a Tarea 1 bash (20)

PDF
Revista digital
PDF
Escuela
PDF
Escuela
PPTX
7. operadores y estructura secuencial
PDF
Algoritmos y lenjuage de programacion
PPTX
Clase 1 - Repaso de Programacion Orientada a Objetos.pptx
PPTX
Guía de trabajo
DOCX
A1 u1-16230227
PDF
uso de archivos y cadenas en lenguaje de programacion c
PDF
PDF
PPTX
Java básico
PDF
Informe tecnico victor_uex
PPTX
Trabajo tutorial de visual C++
PPT
Clase lenguaje c
PPT
Clase lenguaje c xxxxxx
PPT
Clase lenguaje c xxxxxx
PPT
Modelo Simulado
Revista digital
Escuela
Escuela
7. operadores y estructura secuencial
Algoritmos y lenjuage de programacion
Clase 1 - Repaso de Programacion Orientada a Objetos.pptx
Guía de trabajo
A1 u1-16230227
uso de archivos y cadenas en lenguaje de programacion c
Java básico
Informe tecnico victor_uex
Trabajo tutorial de visual C++
Clase lenguaje c
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxx
Modelo Simulado

Último (20)

PPTX
caso clínico iam clinica y semiología l3.pptx
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
DOCX
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PDF
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
PDF
DI, TEA, TDAH.pdf guía se secuencias didacticas
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PDF
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
PDF
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
PDF
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
PDF
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
PDF
Breve historia de los Incas -- Patricia Temoche [Temoche, Patricia] -- Breve ...
DOCX
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
PDF
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
PDF
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
caso clínico iam clinica y semiología l3.pptx
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
DI, TEA, TDAH.pdf guía se secuencias didacticas
V UNIDAD - SEGUNDO GRADO. del mes de agosto
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
Híper Mega Repaso Histológico Bloque 3.pdf
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
Fundamentos_Educacion_a_Distancia_ABC.pdf
Breve historia de los Incas -- Patricia Temoche [Temoche, Patricia] -- Breve ...
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
Crear o Morir - Andres Oppenheimer Ccesa007.pdf

Tarea 1 bash

  • 1. Herramientas computacionales de Cómputo Científico Dra. Elisa Schaeffer.
  • 2. Antecedentes Actualmente estoy estudiando un trabajo acerca de la política WEEE que es usada en la Unión Europea. El modelo matemático (1) desarrollado emplea la siguiente restricción: Donde d ij es la distancia entre el nodo i y el nodo j, es una variable binaria que vale 1 si tanto el nodo y como el nodo j están pertenecen a la misma compañía k y D funciona como una “big M” (representa una cantidad muy grande) .
  • 3. Antecedentes. Se puede asignar cualquier valor a D, pero para un mejor desempeño de los métodos de solución, se desea que ese valor sea “realista”. Como se asignarán nodos a diferentes territorios y se desea saber que tan dispersos son, esa D se puede cambiar por la máxima distancia entre dos vértices. El programa que desarrolle calcula la mayor distancia de una instancia. El programa esta codificado en C++ y posteriormente se crea un archivo ejecutable.
  • 5. Programa en C++ Como se tienen varias instancias, cada una en un archivo en el mismo formato, el archivo de lectura de las instancias leerá la información en una estructura, de la cual se obtendrá la mayor distancia. #include &quot;stdio.h&quot; #include &quot;stdlib.h“ #include &quot;string.h&quot; #include &quot;iostream“ Librerías y declaración de variables #include &quot;fstream&quot; // sirve para abrir flujo de archivos using namespace std; ofstream fp; int f,c;
  • 6. Programa en C++ struct P_ARCHIVO{ int filas; float matriz1[ 100 ][ 5 ]; int filas2; int alado; float matricilla[ 20 ][ 20 ]; Clases en la estructura float parametros[ 3 ]; float matrizota[ 100 ][ 100 ]; };
  • 7. Programa en C++ int visualizar(P_ARCHIVO &A){ //Esto sirve para visualizar el archivo leido int oper = 0 ; float max = A.matrizota[ 0 ][ 0 ]; printf (&quot;%d\n&quot;, A.filas); for(f= 0 ;f<A.filas;f++) Función visualizar {for(c= 0 ;c< 5 ;c++) {printf (&quot;%f &quot; ,A.matriz1[f][c]); } printf( &quot;\n&quot; ); }
  • 8. Programa en C++ printf( &quot;%d &quot; ,A.filas2); printf( &quot;%d\n&quot; ,A.alado); for(f= 0 ;f<A.filas2;f++) {for(c= 0 ;c< 3 ;c++) {printf( &quot;%f &quot; ,A.matricilla[f][c]); } printf( &quot;\n&quot; ); } printf( &quot;%f &quot; ,A.parametros[ 0 ]); printf( &quot;%f &quot; ,A.parametros[ 1 ]); printf( &quot;%f\n&quot; ,A.parametros[ 2 ]);
  • 9. Programa en C++ printf( &quot;%f &quot; ,A.parametros[0]); printf( &quot;%f &quot; ,A.parametros[1]); printf( &quot;%f\n&quot; ,A.parametros[2]); for(f= 0 ;f<A.filas;f++) {for(c= 0 ;c<A.filas;c++) {printf( &quot;%f &quot; ,A.matrizota[f][c]); if (max < A.matrizota[f][c]) {max = A.matrizota[f][c]; oper += 1 ; } } }printf( &quot;La mayor distancia es: %5.2f, y las comparaciones hechas fueron %d&quot; , max, oper); }
  • 10. Programa en C++ int main(int argc, char ** argv){ P_ARCHIVO A; // se va a tener acceso a la structura P_ARCHIVO con el caracter A FILE *pArch; pArch = fopen(argv[ 1 ], &quot;r&quot; ); if(!pArch) { cout << &quot;\nNo existe el archivo\n&quot; ; exit( 0 ); } else{ //Esto lee el primero renglon = al numero de filas fscanf(pArch, &quot;%d&quot; ,&A.filas); //Esto lee la primer matriz de la estructura for(f= 0 ;f<A.filas;f++){ for(c= 0 ;c< 5 ;c++){ //creo que son 5 columnas siempre fscanf(pArch, &quot;%f&quot; ,&A.matriz1[f][c]); } }
  • 11. Programa en C++ //Esto lee el valor despues de la primer matriz que son los renglones de la segunda matriz fscanf(pArch, &quot;%d&quot; ,&A.filas2); fscanf(pArch, &quot;%d&quot; ,&A.alado); //esto lee el valor a lado del valor anterior que son los arcos o algo asi //Esto lee la segunda matriz la matricilla for(f= 0 ;f<A.filas2;f++) {for(c= 0 ;c< 3 ;c++) //creo que son 3 columnas siempre {fscanf(pArch, &quot;%f&quot; ,&A.matricilla[f][c]); } } //Esto lee las clavecillas esas que son 3 fscanf(pArch, &quot;%f&quot; ,&A.parametros[ 0 ]); fscanf(pArch, &quot;%f&quot; ,&A.parametros[ 1 ]); fscanf(pArch, &quot;%f&quot; ,&A.parametros[ 2 ]);
  • 12. Programa en C++ //Esto lee la matrizota for(f= 0 ;f<A.filas;f++) {for(c= 0 ;c<A.filas;c++) {fscanf(pArch, &quot;%f&quot; ,&A.matrizota[ f ][ c ]); } } fclose(pArch); } visualizar(A); return 0 ; }
  • 13. Archivo mio_Diana.sh #!/bin/bash echo &quot;Numero de unidades basicas: &quot; read n=$REPLY for j in 2 3 4 ; do for x in 0 1 2 3 4 ; do . / prueba3 &quot;data&quot; $n &quot;_&quot; $j &quot;_&quot; $x > &quot;resultado&quot; $n &quot;_&quot; $j &quot;_&quot; $x done done