Entradas

Mostrando entradas de 2015

Testing unitario en C++ utilizando la libreria CppUnit

#include <cppunit/TestCase.h> #include <cppunit/TestFixture.h> #include <cppunit/ui/text/TextTestRunner.h> #include <cppunit/extensions/HelperMacros.h> #include <cppunit/extensions/TestFactoryRegistry.h> #include <cppunit/TestResult.h> #include <cppunit/TestResultCollector.h> #include <cppunit/TestRunner.h> #include <cppunit/BriefTestProgressListener.h> #include <cppunit/CompilerOutputter.h> #include <cppunit/XmlOutputter.h> #include <netinet/in.h> using namespace CppUnit; class CBasicMath { public:    int Addition(int x, int y){return (x + y);};    int Multiply(int x, int y){return (x * y);}; }; class TestBasicMath : public CppUnit::TestFixture {     CPPUNIT_TEST_SUITE(TestBasicMath);     CPPUNIT_TEST(testAddition);     CPPUNIT_TEST(testMultiply);     CPPUNIT_TEST_SUITE_END(); public:     void setUp(void){mTestObj = new C...

Dijkstra

Imagen
El  algoritmo de Dijkstra , también llamado  algoritmo de caminos mínimos , es un  algoritmo  para la determinación del  camino más corto , dado un  vértice  origen, hacia el resto de los vértices en un  grafo  que tiene pesos en cada  arista . Su nombre alude a  Edsger Dijkstra ,  científico de la computación de los  Países Bajos  que lo describió por primera vez en  1959 . [ cita requerida ] La idea subyacente en este algoritmo consiste en ir explorando todos los caminos más cortos que parten del vértice origen y que llevan a todos los demás vértices; cuando se obtiene el camino más corto desde el vértice origen hasta el resto de los vértices que componen el grafo, el algoritmo se detiene. Se trata de una especialización de la  búsqueda de costo uniforme  y, como tal, no funciona en grafos con aristas de coste negativo (al elegir siempre el nodo con distancia menor, pueden quedar excluidos de ...
package matrizAdyacencia; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; public class Grafo {     int _vertices;     boolean _matrizAdyacencias[][];         // ctor     public Grafo( int nroVertices )     {         this._vertices = nroVertices;         this._matrizAdyacencias = new boolean[ nroVertices ][ nroVertices ];                 for( int i = 0; i < getVertices(); i++ )             for( int j = 0; j < getVertices(); j++ )                 this._matrizAdyacencias[ i ][ j ] = false;     }         // agrega una arista entre dos vertices     public void setArista( int i, int j )...

Mezcla dos vectores ordendos en un tercero

Imagen
Algoritmo de mezcla de dos vectores ordenados void mezcla( std::vector< int > a, std::vector< int > b, std::vector< int > c ) {     const int MAX = a.size() + b.size();     int i, j = 0;     /// i -> A = { 5, 7, 9  }     /// j -> B = { 4, 6, 11 }     while( c.size() <= MAX )     {         /// agrega al arreglo auxiliar el menor de los dos valores         c.push_back( a[ i ] > b[ j ] ? b[ j ] : a[ i ] );         /// esta parte controla el desplazamiento de los indices         /// para realizar el apareo de forma correcta         if( a[ i ] > b[ j ] )         {             if( j < b.size()...

Dos populares algoritmos de ordenamiento de vectores, de rendimiento cuadratico( son lentos )

#include <iostream> using namespace std; void printArray( int *arr, int len ) {     for( int i = 0; i < len; i++ )         std::cout << arr[ i ] << std::endl; } void interchange( int &a, int &b ) {     int aux = a;     a = b;     b = aux; } // algoritmo de la burbuja mejorado void improvedBubbleSort( int *arr, int len ) {     bool no_intercambio;     int i = 1;     do     {         no_intercambio = true;         for( int j = i; j < len - 1; j++ )             if( arr[ j ] < arr[ j + 1 ] )             {                 interchange( arr[ j ], arr[ j + ...

Una posible implementacion en modo texto de una sopa de letras con python ( 2013 )

#------------------------------------------------------------------------------- # Name:        version estructurada del TP de AED-1 con python # Purpose:     desarrollar un juego estrucutarado que contenga #              las ideas fundamentales del trabajo con matrices # Author:      D'Achary Vladimiro Gaston # # Created:     20/10/2013 # Copyright:   (c) NERV 2013 # Licence:     <licenciatura en sistemas - UNGS> # # Aclaracion:  La version no tien verificacion de indices para el #              ingreso de las coordenadas, si se las ingresa adecuadamente #              el programa no va a tener problema con los indices de la matriz #------------------------...

Un TP de programacion / 0 / en python 2013

#------------------------------------------------------------------------------- # Name:        Trabajo practico numero 16 # Purpose:     funciones y listas # # Author:      Vladimiro Gaston D'Achary # # Created:     12/10/2013 # Copyright:   (c) camilion 2013 # Licence:     <licenciatura en sistemas - UNGS> #------------------------------------------------------------------------------- #!/usr/bin/env python def main():     pass if __name__ == '__main__':     main() from math import sqrt # calcula el diametro def calculaDiametro(rad:float):     diametro=2*rad     return diametro # calcula el perimetro def calculaPerimetro(rad:float):     perimetro=pi*(rad*rad)     return perimetro # calcula la superficie def calculaSuperficie(rad:float):     superfi...