Herramientas computacionales de Cómputo Científico   Dra. Elisa Schaeffer.
Antecedentes <ul><li>Actualmente estoy estudiando un trabajo acerca de la política WEEE que es usada en la Unión Europea. ...
Antecedentes. <ul><li>Se puede asignar cualquier valor a D, pero para un mejor desempeño de los métodos de solución, se de...
Procedimiento.
Programa en C++ <ul><li>Como se tienen varias instancias, cada una en un archivo en el mismo formato, el archivo de lectur...
Programa en C++ <ul><li>struct P_ARCHIVO{ </li></ul><ul><li>int filas; </li></ul><ul><li>float matriz1[ 100 ][ 5 ]; </li><...
Programa en C++ <ul><li>int visualizar(P_ARCHIVO &A){ </li></ul><ul><li>//Esto sirve para visualizar el archivo leido </li...
Programa en C++ <ul><li>printf( &quot;%d &quot; ,A.filas2); </li></ul><ul><li>printf( &quot;%dn&quot; ,A.alado);  </li></u...
Programa en C++ <ul><li>printf( &quot;%f &quot; ,A.parametros[0]); </li></ul><ul><li>printf( &quot;%f &quot; ,A.parametros...
Programa en C++ <ul><li>int main(int argc, char ** argv){ </li></ul><ul><li>P_ARCHIVO A;  // se va a tener acceso a la str...
Programa en C++ <ul><li>//Esto lee el valor despues de la primer matriz que son los renglones de la segunda matriz </li></...
Programa en C++ <ul><li>//Esto lee la matrizota </li></ul><ul><li>for(f= 0 ;f<A.filas;f++) </li></ul><ul><li>{for(c= 0 ;c<...
Archivo mio_Diana.sh <ul><li>#!/bin/bash </li></ul><ul><li>echo   &quot;Numero de unidades basicas: &quot; </li></ul><ul><...
Instrucciones en la pantalla
Próxima SlideShare
Cargando en…5
×

Tarea 1 bash

533 visualizaciones

Publicado el

Presentacion sobre tarea 1. BASH

Publicado en: Educación
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
533
En SlideShare
0
De insertados
0
Número de insertados
165
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Tarea 1 bash

  1. 1. Herramientas computacionales de Cómputo Científico Dra. Elisa Schaeffer.
  2. 2. Antecedentes <ul><li>Actualmente estoy estudiando un trabajo acerca de la política WEEE que es usada en la Unión Europea. </li></ul><ul><li>El modelo matemático (1) desarrollado emplea la siguiente restricción: </li></ul>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. 3. Antecedentes. <ul><li>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”. </li></ul><ul><li>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. </li></ul><ul><li>El programa que desarrolle calcula la mayor distancia de una instancia. </li></ul><ul><li>El programa esta codificado en C++ y posteriormente se crea un archivo ejecutable. </li></ul>
  4. 4. Procedimiento.
  5. 5. Programa en C++ <ul><li>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. </li></ul>#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. 6. Programa en C++ <ul><li>struct P_ARCHIVO{ </li></ul><ul><li>int filas; </li></ul><ul><li>float matriz1[ 100 ][ 5 ]; </li></ul><ul><li>int filas2; </li></ul><ul><li>int alado; </li></ul><ul><li>float matricilla[ 20 ][ 20 ]; Clases en la estructura </li></ul><ul><li>float parametros[ 3 ]; </li></ul><ul><li>float matrizota[ 100 ][ 100 ]; </li></ul><ul><li>}; </li></ul>
  7. 7. Programa en C++ <ul><li>int visualizar(P_ARCHIVO &A){ </li></ul><ul><li>//Esto sirve para visualizar el archivo leido </li></ul><ul><li>int oper = 0 ; </li></ul><ul><li>float max = A.matrizota[ 0 ][ 0 ]; </li></ul><ul><li>printf (&quot;%dn&quot;, A.filas); </li></ul><ul><li>for(f= 0 ;f<A.filas;f++) Función visualizar </li></ul><ul><li> {for(c= 0 ;c< 5 ;c++) </li></ul><ul><li>{printf (&quot;%f &quot; ,A.matriz1[f][c]); </li></ul><ul><li> } </li></ul><ul><li> printf( &quot;n&quot; ); </li></ul><ul><li>} </li></ul>
  8. 8. Programa en C++ <ul><li>printf( &quot;%d &quot; ,A.filas2); </li></ul><ul><li>printf( &quot;%dn&quot; ,A.alado); </li></ul><ul><li>for(f= 0 ;f<A.filas2;f++) </li></ul><ul><li>{for(c= 0 ;c< 3 ;c++) </li></ul><ul><li>{printf( &quot;%f &quot; ,A.matricilla[f][c]); </li></ul><ul><li> } </li></ul><ul><li>printf( &quot;n&quot; ); </li></ul><ul><li>} </li></ul><ul><li>printf( &quot;%f &quot; ,A.parametros[ 0 ]); </li></ul><ul><li>printf( &quot;%f &quot; ,A.parametros[ 1 ]); </li></ul><ul><li>printf( &quot;%fn&quot; ,A.parametros[ 2 ]); </li></ul>
  9. 9. Programa en C++ <ul><li>printf( &quot;%f &quot; ,A.parametros[0]); </li></ul><ul><li>printf( &quot;%f &quot; ,A.parametros[1]); </li></ul><ul><li>printf( &quot;%fn&quot; ,A.parametros[2]); </li></ul><ul><li>for(f= 0 ;f<A.filas;f++) </li></ul><ul><li>{for(c= 0 ;c<A.filas;c++) </li></ul><ul><li>{printf( &quot;%f &quot; ,A.matrizota[f][c]); </li></ul><ul><li> if (max < A.matrizota[f][c]) </li></ul><ul><li> {max = A.matrizota[f][c]; </li></ul><ul><li>oper += 1 ; </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>}printf( &quot;La mayor distancia es: %5.2f, y las comparaciones hechas fueron %d&quot; , max, oper); </li></ul><ul><li>} </li></ul>
  10. 10. Programa en C++ <ul><li>int main(int argc, char ** argv){ </li></ul><ul><li>P_ARCHIVO A; // se va a tener acceso a la structura P_ARCHIVO con el caracter A </li></ul><ul><li>FILE *pArch; </li></ul><ul><li>pArch = fopen(argv[ 1 ], &quot;r&quot; ); </li></ul><ul><li>if(!pArch) { </li></ul><ul><li>cout << &quot;nNo existe el archivon&quot; ; </li></ul><ul><li>exit( 0 ); } </li></ul><ul><li>else{ //Esto lee el primero renglon = al numero de filas fscanf(pArch, &quot;%d&quot; ,&A.filas); </li></ul><ul><li>//Esto lee la primer matriz de la estructura </li></ul><ul><li>for(f= 0 ;f<A.filas;f++){ </li></ul><ul><li> for(c= 0 ;c< 5 ;c++){ //creo que son 5 columnas siempre fscanf(pArch, &quot;%f&quot; ,&A.matriz1[f][c]); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  11. 11. Programa en C++ <ul><li>//Esto lee el valor despues de la primer matriz que son los renglones de la segunda matriz </li></ul><ul><li>fscanf(pArch, &quot;%d&quot; ,&A.filas2); </li></ul><ul><li>fscanf(pArch, &quot;%d&quot; ,&A.alado); //esto lee el valor a lado del valor anterior que son los arcos o algo asi </li></ul><ul><li>//Esto lee la segunda matriz la matricilla </li></ul><ul><li>for(f= 0 ;f<A.filas2;f++) </li></ul><ul><li>{for(c= 0 ;c< 3 ;c++) //creo que son 3 columnas siempre {fscanf(pArch, &quot;%f&quot; ,&A.matricilla[f][c]); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>//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 ]); </li></ul>
  12. 12. Programa en C++ <ul><li>//Esto lee la matrizota </li></ul><ul><li>for(f= 0 ;f<A.filas;f++) </li></ul><ul><li>{for(c= 0 ;c<A.filas;c++) </li></ul><ul><li>{fscanf(pArch, &quot;%f&quot; ,&A.matrizota[ f ][ c ]); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>fclose(pArch); </li></ul><ul><li>} </li></ul><ul><li>visualizar(A); </li></ul><ul><li>return 0 ; </li></ul><ul><li>} </li></ul>
  13. 13. Archivo mio_Diana.sh <ul><li>#!/bin/bash </li></ul><ul><li>echo &quot;Numero de unidades basicas: &quot; </li></ul><ul><li>read </li></ul><ul><li>n=$REPLY </li></ul><ul><li>for j in 2 3 4 ; do </li></ul><ul><li>for x in 0 1 2 3 4 ; do </li></ul><ul><li>. / prueba3 &quot;data&quot; $n &quot;_&quot; $j &quot;_&quot; $x > &quot;resultado&quot; $n &quot;_&quot; $j &quot;_&quot; $x </li></ul><ul><li>done </li></ul><ul><li>done </li></ul>
  14. 14. Instrucciones en la pantalla

×