Author Archives: Bryant Gerardo Gonzalez Vizcarra

#BONUS

https://youtu.be/W4teW749Eqk

En Clase de Solución de problemas con programación aprendemos a usar C++ nosotros mismos llendo a nuestro paso y aprendiendo muy bien, por otro lado el profesor nos explica cuando se lo pedimos no perdiendo el tiempo con horas de clases con cosas que ya sabemos, solo preguntamos lo que no sabemos.

este sistema de estudio no tiene defectos, el unico inconveniente es que como te dan tantas libertades puedes dejar todo al ultimo momento, para “Sobrevivir” la clase de Ken Bauer solo se necesita estar interesado y organizarte bien.

Mastery 29

29 1017

Analisis de datos en c++

Para tener éxito en la creación de un programa o una aplicación informática sólo hace falta que comprendas y apliques lo que te voy a contar en este artículo. Esta actividad que debes de realizar antes de comenzar a escribir código es fundamental para el buen funcionamiento del programa, para que tú mismo sepas que es lo que estas haciendo en cada momento y para que el producto final sea de calidad y resuelva un problema. Te voy a hablar de la parte inicial del proceso de desarrollo, el análisis de una aplicación.
El desarrollo de una aplicación informática completa se debe de realizar por una serie de pasos comunes a todas la metodologías. A estos pasos se le denomina el ciclo de vida de una aplicación. Este ciclo consta de seis pasos fundamentales: análisis, diseño, codificación, ejecución, pruebas y mantenimiento.

El análisis estudia los requisitos que debe de cumplir la aplicación. El resultado del análisis es una hoja de especificaciones en la que aparecen los requerimientos de la aplicación. Esta hoja es redactado por la persona responsable del proceso de creación de la aplicación. Si estás creando algoritmos o programas sencillos, el análisis consistirá en evaluar estos tres pasos fundamentales:

  • Determinar las entradas. Es decir, los datos que posee el programa al comenzar su ejecución. Esos datos permiten obtener el resultado.
  • Determinar las salidas. Es decir, los datos que obtiene el algoritmo como resultado. Lo que el algoritmo devuelve al usuario.
  • Determinar el proceso. Se estudia cuál es el proceso que hay que realizar.

 

Si realizas estos pasos antes de comenzar a escribir código independientemente del lenguaje que uses, vas a realizar programas de calidad y vas a eliminar muchos errores que te pueden surgir si no analizas el programa y los requisitos que te piden del programa.

Mastery 28

28 1017

Como leer o escribir en documentos en c++

para escribir en un documento primeramente necesitamos la realización de un archivo de texto, en el cual la base para hacerlo es la siguiente

// writing on a text file

//Reference: http://www.cplusplus.com/doc/tutorial/files/

 

usingnamespacestd;

 

int main () {

  ofstream myfile (“Write.txt”);

  if(myfile.is_open())  {

    myfile “This is a line.n”;

    myfile “Hello world.n”;

    myfile.close();

  }

  else{

    cout “Unable to open file”;

  }

  return0;

}

 

en lo cual ahi tenemos el documento en el cual ingresaremos los datos usamos la libreria fstream, se abre el archivo y se ingresa lo que se quiere escribir en el documento

 

 

en cambio para la lectura de los documentos contamos con un procedimiento parecido, que es el siguiente:

// reading a text file

//Reference: http://www.cplusplus.com/doc/tutorial/files/

usingnamespacestd;

 

intmain () {

  string line;

  ifstream myfile (“CNC.txt”);

  if(myfile.is_open()){

    while( getline (myfile,line) ){

      cout ‘n’;

    }

    myfile.close();

  }

  else{

    cout “Unable to open file”;

  }

 

  return0;

}

 

en este, tenemos que abre el archivo y este es leido linea por linea y convertida en strings,

para esto tenemos que usar la libreria fstream y string,

 

abril archivo con el comando ifstream y leer cada linea con el get line y este guardara cada linea.

Mastery 27

27 1017

validar input de usuarios en c++

c++ nos da la opcion de poder validad datos alfanumericos o lo que comunmente le podemos llamar strings, esto es util cuando nuestras opciones dependen de una palabra, como por ejemplo, en caso de que se pida al usuario el hacer o no hacer una accion, el mismo puede responder con un si o un no.

Principalmente, estos inputs se comportan como cualquier número, dando como resultado, que el manejo de los mismos no sea dificil.



using namespace std;

int main()
{
int a;

 coutcin>>a;
while(1)
{
if(cin.fail())
{
cin.clear();
cin.ignore(numeric_limits::max(),’n’);
coutcin>>a;
}
if(!cin.fail())
break;
}

coutreturn 0;
}

Mastery 23 y 26

23 26 1017

Un vector, también llamado array(arreglo) unidimensional, es una estructura de datos que permite agrupar elementos del mismo tipo y almacenarlos en un solo bloque de memoria juntos, uno despues de otro. A este grupo de elementos se les identifica por un mismo nombre y la posición en la que se encuentran. La primera posición del array es la posición 0.

Podríamos agrupar en un array una serie de elementos de tipo enteros, flotantes, caracteres, objetos, etc.

Crear un vector en C++ es sencillo, seguimos la siguiente sintaxix: Tipo nombre[tamanyo];

Ejm:

 
 
 
int a[5]; // Vector de 5 enteros
float b[5]; // vector de 5 flotantes
Producto product[5]; // vector de 5 objetos de tipo Producto

Podríamos también inicializar el vector en la declaración:

 
 
 
int a[] = {5, 15, 20, 25, 30};
float b[] = {10.5, 20.5, 30.5, 12.5, 50.5}
Producto product[] = {celular, calculadora, camara, ipod, usb}

Como hay 5 elementos en cada array, automáticamente se le asignará 5 espacios de memoria a cada vector, pero si trato de crear el vector de la forma int a[] , el compilador mostrará un error, porque no indiqué el tamaño del vector ni tampoco inicializé sus elementos.

https://ronnyml.wordpress.com/2009/07/04/vectores-matrices-y-punteros-en-c/

Tambien estos incluyen las matrices.

las cuales funcionan:

bidimensional. La manera de declarar una matriz es C++ es similar a un vector:

1
int matrix[rows][cols];

int es el tipo de dato, matrix es el nombre del todo el conjunto de datos y debo de especificar el numero de filas y columnas.

Las matrices también pueden ser de distintos tipos de datos como char, float, double, etc. Las matrices en C++ se almacenan al igual que los vectores en posiciones consecutivas de memoria.

Usualmente uno se hace la idea que una matriz es como un tablero, pero internamente el manejo es como su definición lo indica, un vector de vectores, es decir, los vectores están uno detrás del otro juntos.

La forma de acceder a los elementos de la matriz es utilizando su nombre e indicando los 2 subíndices que van en los corchetes.

Si coloco int matriz[2][3] = 10; estoy asignando al cuarto elemento de la tercera fila el valor 10.

Mastery 22

22 1017

En esta mastery esplicare los diferentes tipos de estructura de las funciones de ciclación.

entre estas estan

  • While
  • Do While 
  • For

empezaremos con while

Los while funcionan con el siguiente tipo de estructura, no se mantiene una condicion base y mientras se cumpla la condicion acordada en el while el programa seguira repitiendo su codigo hasta que no cumpla dicha condicion

Do while es muy similar al while pero tiene la diferencia que el codigo se tiene que cumplir una vez. 

en la imagen se muestra que el codigo bloque esta antes que la condicion dada lo que ocaciona que el ciclo se lleve acabo obligatoriamente una vez.

el tercer caso son los For

el For sigue una estructura diferente a las anteriores usando condicionales y un limite al que esta condicional puede llegar, mientras no se cumpla el limite seguira incrementando o decreciendo como el usuario haya estipulado.

Mastery 21

Uso de recursion en algoritmos repetitivos

Se dice que una función es recursiva cuando se define en función de si misma.

No todas la funciones pueden llamarse a si mismas, sino que deben estar diseñadas especialmente para que sean recursivas, de otro modo podrían conducir a bucles infinitos, o a que el programa termine inadecuadamente.

Tampoco todos los lenguajes de programación permiten usar recursividad.

 

C++ permite la recursividad. Cada vez que se llama a una función, se crea un juego de variables locales, de este modo, si la función hace una llamada a si misma, se guardan sus variables y parámetros, usando la pila, y la nueva instancia de la función trabajará con su propia copia de las variables locales. Cuando esta segunda instancia de la función retorna, recupera las variables y los parámetros de la pila y continua la ejecución en el punto en que había sido llamada.

Un ejemplo muy clasico de la recursividad es cuando se quiere crear un programa de gdc (greatest commun divisor), en lo cual se puede llamar a si mismo para volver a hacer el mismo procedimiento una y otra vez hasta que una condición sea rota y pueda salir de la recursividad, así, te puede dar los resultados de manera que corresponda.

21 1017

Mastery 17

En esta mastery explicare como usar un switch

Solo se puede usar como variable de condición una variable entera o variable char ya que el programa capta casos especificos sin decimales

Las constantes que estamos buscando y comparando son de tipo char, por eso se deben encerrar entre apóstrofes ( ‘).

Si se quiere resolver el problema de mayúsculas o minúsculas en el teclado, observar que se usan dos case, pero con un solo break;

 

las instrucciones para creas un switch es

 

switch ( test ) {

  case 1 : 
    // Process for test = 1
    ...
    break;

  case 5 : 
    // Process for test = 5
    ...
    break;

  default : 
    // Process for all other cases.

Mastery 25

25 1017

Creación de String C++

Una de las características recientes que se ha añadido al estándar de C++ es la existencia de “strings” (cadenas de texto) como parte del lenguaje, con un manejo tan sencillo como lo es en otros lenguajes como Pascal o Basic. 

En general, los compiladores del año 2000 o posteriores deberían permitir el manejo de cadenas, y la mayoría de los anteriores no lo harán. Eso sí, es posible que algún otro incluya alguna clase “string” no totalmente estándar, como las “AnsiString” de Borland C++ Builder. 

 La primera diferencia es la existencia de “named spaces” (espacios con nombre) dentro del nuevo estándar de C++. Se trata de una nueva forma de organizar los fichero de cabecera (ficheros “.h”), con la intención de que no sea un auténtico caos cuando tenemos muchos. Así, los ficheros de cabecera estándar están en el espacio llamado “std”.


Se sigue pudiendo utilizar los fichero de cabecera de la forma clásica: podríamos escribir

 

aunque la forma recomendada (y que quiere decir lo mismo) es

  
using namespace std; 

El manejo básico de las cadenas no reviste mayor dificultad: 

 

  • Se declaran como cualquier otra variable en C y C++,: string cadena;
  • Se les asigna valor con el signo = , como se hace con los números enteros o reales (o como las cadenas en otros lenguajes).
  • Su valor se muestra en pantalla con “cout”, igual que para las demás variables.
  • Se puede crear una cadena sin valor inicial haciendo string texto1;
  • Se le puede dar una valor inicial a la vez que se declara, haciendo string texto2 = “Hola “; o bien string texto3(“Que tal”);
  • Se puede crear una cadena formada por varias, concateándolas (sumándolas), usando el signo +, así: texto1 = texto2 + texto3 + ” estas? “;
  • Se puede crear una subcadena a partir de un trozo de otra, la vez que se declara, así: string subcadena (texto1, 2, 6);
  • O bien se puede extraer un fragmento posteriormente: texto1.substr(0, 5);
  • Se puede insertar texto en el interior de una cadena: texto1.insert(5, “Juan “);
  • O reemplazar ciertas letras por otras: texto2.replace(1, 2, “ad”);
  • Se puede saber el tamaño (cantidad de letras) de la cadena: texto1.size()
  • Se puede acceder a una posición siguiendo el estándar de C: texto1[2]
  • O bien usando la función “at”: texto1.at(2)
  • Se puede comprobar el valor de una cadena (el texto almacenado) con ==

Mastery 30

La siguiente mastery se trata de explicar lo que es un sistema de visualización de datos por herramientas.

el sistema de datos por herramientas es un software libre, libremente disponible para la realización de gráficos 3D por computadora, procesamiento de imagen y visualización. VTK consiste en una biblioteca de clases de C++ y varias capas de interfaz interpretadas como Tcl/Tk, Java, y Python.

 

Kitware, cuyo equipo creó y sigue ampliando el Kit de herramientas, ofrece apoyo profesional y servicios de consultoría para VTK. VTK soporta una amplia variedad de algoritmos de visualización como: escalar vector Euclides, tensor, textura y métodos volumétricos; y avanzadas técnicas de modelado como: modelado implícito, reducción de polígonos, suavizado de malla (mesh smoothing), corte, contorneado y triangulación de Delaunay. VTK tiene un amplio marco de visualización de la información, cuenta con un conjunto de widgets de interacción 3D, soporta el procesamiento en paralelo y se integra con diversas bases de datos de herramientas GUI como Qt y Tk. VTK es multiplataforma y se ejecuta en plataformas Linux, Windows, Mac y Unix. VTK también incluye soporte auxiliar de widgets de interacción 3D, anotación bi y tridimensional y computación paralela. En su núcleo VTK es implementado como un conjunto de herramientas de C++, exigiedo a los usuarios crear aplicaciones combinado varios objetos en una aplicación. El sistema también soporta ajuste automatizado del núcleo de C++ en Python, Java y Tcl, para que también se puedan escribir aplicaciones VTK utilizando estos lenguajes de programación interpretados.

30 1017