Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - UmbraNoche

#1
Buenas gente aquí les dejo un código de una de las muchas formas de cómo aplicar el ordenamiento burbuja a un arreglo de dos dimensiones.

Código (cpp) [Seleccionar]
    #include <iostream>
    #include <cstdlib>
    #include <ctime>
     
    using namespace std;
     
    void rellenarArreglos(int a[10][10]);
    void desplegarArreglo(int a[10][10]);
    void ordenarArreglo(int a[10][10]);
     
    int main(){
     
        int arreglo1[10][10];
     
        cout << "Arreglo1\n\n";
        rellenarArreglos(arreglo1);
        ordenarArreglo(arreglo1);
        desplegarArreglo(arreglo1);
     
     
        system("pause");
        return 0;
    }
     
    void rellenarArreglos(int a[10][10]){
     
        srand(time(0));
     
        for(int i = 0; i < 10; i++){
            for(int j = 0; j < 10; j++)
                a[i][j] = (1 + rand() % 1000);
        }
     
    }
     
    void desplegarArreglo(int a[10][10]){
     
        for(int c = 0; c < 10; c++){
            for(int b = 0; b < 10; b++)
                cout << c[a][b] << "\t";
                cout << endl;
        }
     
    }
     
    void ordenarArreglo(int a[10][10]){
     
        int k = 0;
        int arreglo[100];
     
        //Convertir el arreglo de dos dimensiones en uno de una sola dimension.
        for(int fila = 0; fila < 10; fila++){
            for(int col = 0; col < 10; col++){
                arreglo[k] = a[fila][col];
                k++;
            }
        }
     
     
        //Aplicación del Ordenamiento Burbuja.
        for(int f = 1; f < 100; f++){
            for(int c = 0; c < 100; c++){
                if(arreglo[c] > arreglo[c+1]){
                    int temp = arreglo[c];
                    arreglo[c] = arreglo[c+1];
                    arreglo[c+1] = temp;
     
                }
            }
        }
     
        k = 0;
     
        //Convertir el arreglo de una dimensión en una de dos dimensiones
        //como anteriormente estaba.
        for(int f = 0; f < 10; f++){
            for(int c = 0; c < 10; c++){
                a[f][c] = arreglo[k];
                k++;
            }
        }
     
    }
     
#2
Buenas gente, les escribo para saber si me pueden dar una mano, en cómo ordenar un arreglo de 15x15 que contiene números aleatorios del 1 al 999 aplicando el ordenamiento burbuja. He estado quebrandome la cabeza pero no he tenido éxito. Aquí les dejo el código.

Gracias de antemano.

Código (cpp) [Seleccionar]
const int Fil = 15;
const int Col = 15;

srand(time(NULL));

        cout << setw(50) << "Matriz con numeros del 1 al 999\n\n";

        for(int fila = 0; fila < Fil; fila++){
            for(int columna = 0; columna < Col; columna++)
                matriz[fila][columna] = 1 + rand()% 999;
        }

        for(int f = 0; f < Fil; f++){
            for(int c = 0; c < Col; c++)
                cout << matriz[f][c] << " ";

                cout << endl;
        }

        cout << "Matriz Ordenada\n\n";

        int temp;

        for(int fila = 0; fila < Fil-1; fila ++){
            for(int columna = 0; columna < Col-1; columna++){
                for(int FilaAux = 0; FilaAux < Fil; FilaAux++){
                    for(int ColumnaAux = 0; ColumnaAux < Col; ColumnaAux++){
                            if(matriz[fila][columna] > matriz[FilaAux+1][ColumnaAux+1]){
                                temp = matriz[FilaAux][ColumnaAux];
                                matriz[fila][columna] = matriz[FilaAux+1][ColumnaAux+1];
                                matriz[FilaAux+1][ColumnaAux+1] = temp;
                            }
#3
Buenas gente, aquí les comporto el código de un juego, trate de publicarlo en el foro pero debido a que el código es demasiado grande las etiquetas de C++ no funcionan. Aquí está el enlace para que puedan acceder tanto al código fuente como a su ejecutable. https://mega.co.nz/#F!Pxk10KyY!LpkWTsS0mWd7K7huGbopjw

El código era parte de un proyecto del curso de C++, aclaro que no fui el desarrollador de dicho código fue un colega mío.

El juego se trata de encontrar objetos, el usuario tiene 50 intentos para poder encontrarlos todos. Donde C = candelabro, R = reloj, E = espejo, A = anteojos, N = nave
#4
Buenas gente, soy nuevo en esto de la programación en C++. Les escribo para saber si me pueden ayudar con esta duda, he estado tratando por todos lados pero no lo consigo. Les doy las gracias de antemano

Mi duda es la siguiente cómo puedo hacer para agregar varios arreglos de tipo char a un arreglo char de 10x10. Mi idea es hacer que estos arreglos se agreguen al arreglo 10x10 para luego hacer que el contenido de los mismos aparezcan en posiciones aleatorias tanto en vertical como en horizontal.

Aquí les dejo mi código y les pido disculpas de antemano porque está malísimo lo que hice pero es lo que humildemente pude hacer hasta ahora

Código (cpp) [Seleccionar]
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <string>

using namespace std;

int main(){

    char matriz[10][10];

    char A1[][] = "AAAA";
    char C1[][] = "CC";

    for(int fila = 0; fila < 10; fila++){
        for(int columna = 0; columna < 10; columna++)
            matriz[fila][columna] = C1[];
    }

    for(int f = 0; f < 10; f++){
        for(int c = 0; c < 10; c++)
            cout << matriz[f][c];

        cout << endl;
    }

    for(int i = 0; i < 10; i++){
        for(int j = 0; j < 10; j++)
            matriz[i][j] = A1[];
    }

    for(int x = 0; x < 10; x++){
        for(int y = 0; y < 10; y++)
            cout << matriz[x][y];
    }

    return 0;
}
#5
Buenas gente aquí les dejo un programa que hice traveseando un poco el código para generar números aleatorios sin que se repitan. Si tienen sugerencias de cómo hacerlo más eficiente por favor no duden en comentar, soy nuevo en esto de la programación y cualquier sugerencia será bienvenida.


Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main(){

    int arreglo[10];
    int aux = 0;

    srand(time(0));

    for(int i = 0; i < 10; i++){
        aux = (1 + rand() % 15);

        int aux2 = 0;

        while(aux2 < i){

            if(aux != arreglo[aux2])
                aux2++;

            else{
                    aux = (1 + rand() % 15);
                    aux2 = 0;

                }
        }

        arreglo[i] = aux;

        cout << arreglo[i] << "\n";
    }

    return 0;
}
#6
Damas y caballeros, este es mi primer aporte. Se trata de un programa que me habían dejado en la universidad como tarea. El enunciado de la tarea dice así: Realice un programa que llene dos arreglos unidimensionales de 10 elementos con valores aleatorios enteros de 1 a 15. En cada arreglo no puede existir el mismo número repetido, pero si puede existir en el otro arreglo. Cuando termina de llenar los arreglos debe mostrar su contenido uno a la par del otro, como se muestra a continuación:

Posicion        Arreglo 1            Arreglo 2
     1                 10                     8
     2                 15                     7
     3                  1                      6
     4                  6                      4
     5                 12                     9
     6                  9                    11
     ....

Luego deberá sumar los resultados en un tercer arreglo tomando el primer elemento del arreglo 1 y sumarlo con el último elemento del arreglo 2, valore que irá en la posición 1 del arreglo 3.
Al finalizar la suma de los elementos debe mostrar el resultado del tercer vector como se muestra a continuación:

Posicion      Arreglo 3
      1                     21
      2                     24
      3                      5
      4                     12
      5                     19
      6                     17

A cada les dejo el código fuente del programa. Me gustaría que opinen, den sugerencias. Yo apenas estoy empezando en el mundo de la programación. Así que todas sus sugerencias serán bienvenidas


//Suma de arreglos.

#include <iostream>

using std::cout;
using std::endl;

#include <iomanip>

using std::setw;

#include <cstdlib>

#include <ctime>

// la función main comienza la ejecución del programa

int main()
{
    // se declara los arreglos

    int x[ 11 ] ;
    int y[ 11 ] ;
    int z[ 11 ] ;

    // se declara las variables

    int a1 = 0;
    int a2 = 0;

   srand( time( 0 ) ); // semilla generadora de números aleatorios

   cout << "Posicion" << setw( 17 ) << "Arreglo 1"
    << setw( 17 ) << "Arreglo 2" << "\n" << endl;

    for ( int i = 1; i < 11; i++ )
    {
        a1 = (1 + rand() % 15);

        a2 = (1 + rand() % 15);

    int h = 0;
    int p = 0;

    // se declara estructuras de control para evitar que los números aleatorios se repitan

    while (h < i)
        {
              if (a1 != x[h])
              {
                  h++;
              }
              else
              {
                  a1 =(1 + rand() % 15);
                  h = 0;
              }
        }

        while (p < i)
        {
              if (a2 != y[p])
              {
                  p++;
              }
              else
              {
                  a2 =(1 + rand() % 15);
                  p = 0;
              }
        }

        //los arreglos se les asigna las varables

        x = a1;
        y = a2;


      cout << setw ( 9 ) << i
           << setw ( 16 ) << x[ i ]
           << setw ( 18 ) << y[ i ] << endl;



    }

cout << "\n La suma de los Arreglos es:\n ";

       int haciaAdelante = 1;
       int haciaAtras = 11;

    // se declara una estructura de control para hacer la suma de los arreglos de forma diagonal

    for (haciaAdelante = 0; haciaAdelante < 11; haciaAdelante++)
    {
        z [haciaAdelante] = x[haciaAdelante] + y[haciaAtras];
        haciaAtras--;
    }

cout << "\nPosicion" << setw( 17 ) << "Arreglo 3" << "\n" << endl;

for ( int n = 1; n <= 10; n++ )
      cout << setw ( 9 ) << n  << setw ( 16 ) << z[ n ] << endl;

    system("PAUSE");
    return 0;

} //fin de la función main