martes, 24 de septiembre de 2019

Ejercicio 22 Random

Random

#include <iostream>
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
using namespace std;

int main()

{
   int randi,j;
   srand(time(NULL));
   cout<<"IMPRESION DE RANDOM: "<<endl;
   for(j=1;j<=15;j++)
   {
       randi=rand();
    cout<<randi<<endl;
       }
    cout<<"Impresion random entre 100"<<endl;
    for(j=1;j<=15;j++)
    {
        randi=rand()/100;
        cout<<randi<<endl;
    }
    cout<<"Inpresion en random entre 1000"<<endl;
     for(j=1;j<=15;j++)
    {
        randi=rand()/1000;
        cout<<randi<<endl;
    }
    system ("Pause");
    }



Numeros aleatorios y ¿Como se generan en C++?

Numeros aleatorios y ¿Como se generan en C++?


Número aleatorio

Es aquel número obtenido al azar, es decir, que todo número tenga la misma probabilidad de ser elegido y que la elección de uno no dependa de la elección del otro. 
Una característica importante en los lenguajes de programación es la posibilidad de generar números aleatorios.
Los números aleatorios son pieza clave en la programación de juegos de azar, simulaciones, cifrado de datos, en programación de comportamiento pseudo inteligente, en modelos estadísticos, etc. Por esta razón es importante conocer las herramientas que un lenguaje de programación te ofrece en este sentido.

La función rand()

C++ define la función rand() para generar números aleatorios, está definida en la librería cstdlib
rand() devuelve un número entero pseudo-aleatorio en el rango 0 y RAND_MAX. RAND_MAX está definida también en la librería cstdlib.

Sintaxis

int rand (void);
Como puedes observar, para usar rand() solo se invoca la función  y se asigna a cualquier variable entera, no requiere parámetros.
De forma predeterminada rand() genera una valor pseudo aleatorio comprendido entre 0 y el valor de RAND_MAX, RAND_MAX está definido también el cstdlib.
Si queremos conocer el valor de RAND_MAX en nuestro sistema, simplemente hacemos una llamada a dicha constante.
cout << "El valor de RAND_MAX es este sistema es: " << RAND_MAX;

Uso básico de rand()

A continuación se muestra el uso de rand(), además se muestra como obtener el valor de RAND_MAX para tu sistema.
// cpp_72_pseudoaleatorio.cpp
// Se ilustra el uso de la función rand() para generar números pseudoaleatorios
// 2019, Por http://about.me/carlosgbr
// Versión 1
// Revisa todo el código del tutorial en: https://github.com/carlosgbr/
// Compilado en https://www.onlinegdb.com/online_c++_compiler
#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
    int a;
    
    a = rand();             // Genera un valor entre 0 y RAND_MAX
    cout << a << endl;
    cout << "RAND_MAX para este equipo tiene un valor de: " << RAND_MAX;
    return 0;
}

Acotando los valores para rand()

Podemos limitar el rango de números aleatorios que entrega rand(), podemos definir el valor inicial (el predeterminado es 0) y el límite superior.

Definiendo un límite superior para rand()

Para definir un límite superior, se utiliza la notación de módulo (%), a continuación se indica el valor máximo que se desea. por ejemplo.
valor = rand() % 2;  // Obtiene valores entre 0 y 1
Por ejemplo el código anterior permite simular el lanzamiento de una moneda, y en general cualquier cosa que requiera un si o un no.
valor = rand() % 10;     // Obtiene un número entre 0 y 9, nota que no incluye el 10valorrnd = 10 + rand() % 20;
valor = rand() % 1500;    // Obtiene un número entre 0 y 1499
valor = rand() % 65536 ;  // Obtiene un número entre 0 y 65535, por ejemplo,     para elegir un puerto TCP/IP al azar

Definiendo un límite inferior para rand()

Para definir el límite inicial utilizamos la notación de suma, indicando el número desde el cual se deben generar los números, por ejemplo:
valor = 10 + rand();  // Genera números aleatorios a partir del 10
valor = 65 + rand();  // Genera números aleatorios a partir del 65

Consideraciones al usar límites inferiores y superiores con rand()

Al definir un valor inicial ocurre un comportamiento que no se ve a primera vista al usar un rango abierto, que sí es visible en rangos bien definidos, por ejemplo considera la siguiente expresión:
valor = 10 + rand() % 20;
En este caso el rango inicia en 10, pero no termina en 20, termina en 30, de modo que el rango de números generados comprenderá del 10 al 29
Si queremos que el rango de números generados comprenda del  1 al 10 la expresión debe ser:
valor = 1 + rand() % 10;
Puedes observar ahora que cuando definimos un valor inicial y un valor final, el valor final «se recorre» la cantidad del valor inicial, es decir, el valor final real es la suma del valor inicial más el valor final.
Vemos unos ejemplos adicionales,
valor = 1 + rand() % 100;  // Genera un valor entre 1 y 100
valor = 25 + rand() % 100;  // Genera un valor entre 25 y 124
valor = rand() %51 ;   // Genera un valor entre 0 y 50
Si requerimos, por ejemplo definir números aleatorios en el rango 10 al 25, lo debemos expresar de la siguiente forma:
valor = 10 + rand() % (26-10) //Restamos la cantidad que se "recorre" el rango
de modo que podemos expresar todos los casos con una fórmula general que se aplica a cualquier caso:
variable = limite_inferior + rand() % (limite_superior +1 - limite_inferior);
en donde, 
variable, variable entera para almacenar el número generadolimite_inferior, valor inicial del rango de valores generados, el número generado puede incluir éste número
rand(), función para generar números pseudo aleatorios, requiere la librería cstdlib(limite_superior + 1 – limite_inferior), define el valor superior del rango que se utilizará para obtener números aleatorios.
limite_superior + 1, límite superior del rango deseado de números aleatorios, el «+ 1» es necesario debido a que por definición el límite superior es igual a limite_superior – 1, de esta forma se «neutralizan» quedando el límite superior como lo queremos. Haz pruebas cambiando código para que te quede claro este punto.
¿Como se generan en C++?
Es algo muy frecuente, cuando ya dominas todo eso de pedir y almacenar datos, ahora tu profesor te pedirá que tus programas generen números aleatorios para automatizar el proceso de llenar arreglos y todo eso.

Así que lo primero que tenemos que hacer es incluir la librería:
#include<stdlib.h>

Necesitamos esta libreria para usar la función time()
#include<time.h>

Luego inicializar los números aleatorios incluyendo esto:
srand(time(NULL));

Luego guardar el número aleatorio en alguna parte:
num = rand();

Para ajustar el rango de número aleatorios podemos hacer varias cosas.

- Número aleatorios entre 0 y 50:
  num=rand()%51;

- Número aleatorios entre 1 y 100:
  num=1+rand()%(101-1);

- Número aleatorios entre 250 y 420:
  num=250+rand()%(421-250);

De forma general es:
variable = limite_inferior + rand() % (limite_superior +1 - limite_inferior) ;

Así que un programa que muestre 10 números aleatorios entre 1 y 10 quedaría así:

#include <stdlib.h>
#include <time.h>
#include<iostream>
using namespace std;
int main()
{
int num, c;
srand(time(NULL));
for(c = 1; c <= 10; c++)
{
num = 1 + rand() % (11 - 1);
cout << num<< " ";
}
return 0;
}

viernes, 20 de septiembre de 2019

Ejercicio 3 Modificado

Programa 3 Modificado
El programa cumpira con:

Hacer el ciclo para imprimir los números múltiplos del 3, iniciando del 3 al 66.

#include <iostream>
#include<stdio.h>

using namespace std;
void captura();
void imprimir();
int h;
int main()
{
     captura();
    imprimir();
     return 0;

}
void captura()
{
    cout<<"Multiplo de 3"<<endl;
    }

void imprimir(){
   for(h=3;h<=66;h=h+3)
{
cout<<h<<endl;
}

}

jueves, 19 de septiembre de 2019

Strihn.g

<String.h>

En computación las strings de C son secuencia de caracteres guardados como una matriz de caracteres terminados con un carácter nulo ('\0' o ASCII 0). El nombre se refiere al lenguaje de programación C y se usa para distinguir esta forma de representar una cadena a cualquier otra.
La característica de la terminación en nulo fue creada históricamente por problemas de seguridad relacionados con la longitud de la cadena. Si no se añade el carácter nulo al final por alguna razón el área de memoria que sucede a la cadena será tratada también como parte de la secuencia. Esto puede llevar a fallos o fugas de información interna del programa a atacantes o usuarios noveles. Estos errores pueden, y deben, ser prevenidos mediante comprobaciones adecuadas de errores.
En el lenguaje de programación C++ las cadenas de C se usan conjuntamente con otra representación de secuencias de caracteres. La Standard Template Library (STL) de C++ dispone de un contenedor denominado std::string. Hay que tener en cuenta la diferencia que existe entre las cadenas tradicionales de C y las cadenas de C++, mucho más avanzadas























































































































































































Ejercicio 12 Modificado

Ejercicio 12 Modificado

#include <iostream>
#include <stdio.h>
using namespace std;
void captura();
void impresion();
int vec[20],i,j,num;

int main()

{
    cout << "CAPTURA 20 DATOS" << endl;
    captura();
    impresion();
    cout << "FIN DEL PROGRAMA" << endl;

}


void captura()

{
     for (i=0; i<=19; i++)
    {
        cout << "INGRESA EL DATO" << endl;
        cin >> num;

       if (num>35)

            vec[i]=num;
    }


}


void impresion()

{
     for (j=0; j<=19; j++)
    {
        cout << vec[j] <<endl;
    }
}



Ejercicico 11 Modificado

Programa 11 Modificado
El programa cumpira con:

Programa para capturar datos de un vector de 15 posiciones. La captura empezara a partir de la ultima posicion.


#include <iostream>

#include <stdio.h>

using namespace std;
void captura();
void imprimir();
int vec[15],h,j;

int main()
{
   captura();
  imprimir();
   return 0;
}

void captura(){
cout << "CAPTURA 15 DATOS EN UN VECTOR" << endl;
    for (h=14; h>=0; h--)

    {
       cout << "INGRESA EL DATO" << endl;
      cin >> vec[h];
    }
}
void imprimir(){
    for (j=14; j>=0; j--)

    {
     cout << vec[j] <<endl;
    }
}