Skip to main content
 

Proyecto Final - Sudoku

2 min read

A lo largo de este curso aprendí muchas cosas sobre programación, personalmente yo no tenía idea de cómo hacerlo, yo nunca había tenido clases de este tipo y al principio no sabía qué hacer, como empezar, pero con el paso del tiempo me puse a investigar y con la ayuda de Ken y mis compañeros fui aprendiendo.

En este proyecto final, sobre hacer un sudoku, se me hizo un buen proyecto (algo complicado), pero te hace pensar en todo lo que has hecho en el semestre y ponerlo en práctica. También me hizo investigar ciertas cosas utilizando todos los recursos posibles, como preguntarle a Ken con ciertos problemas, buscar información en la web y con mis compañeros de cómo hicieron algunas cosas.

La parte más complicada fue checar los números que no se repitan, batallamos mucho en los cuadrantes para crear la función que verificara si se repetía en ellos. Otra cosa que también se nos complico fue la implementación de colores, cuando queríamos poner los números rojos predeterminados también se ponían los demás rojos, hasta que Ken me dijo que solo había que ponerle un signo negativo y con la función absoluto seria como un tipo de truco y ya nos ponía los números verdes que introducía el usuario.

Como conclusión, fue un buen proyecto porque pone a prueba todas las habilidades para poder realizarlo y las buenas cosas que se crean con la programación. Y como dije anteriormente yo no tenía ni idea de como empezarlo, y si fue de gran ayuda el programa base que nos proporcionó Ken para irnos guiando.

 

Aquí está el link de GitHub para el código del sudoku:

https://github.com/kenwbauer/IvannaJoseEduardo/blob/master/sudoku.cpp

 

WSQ17 - Scilab

1 min read

Scilab es un software matemático, con un lenguaje de programación de alto nivel, para cálculo científico, interactivo de libre uso y disponible en múltiples sistemas operativos Mac, Linux y Windows. Desarrollado por INRIA (Institut National de Recherche en Informatique et en Automatique) y la ENPC (École Nationale des Ponts et Chaussées) desde 1990, por Scilab Consortium dentro de la fundación Digiteo desde 2008, Scilab es ahora desarrollado por Scilab Enterprises desde julio 2012.

Aun no entiendo cómo funciona correctamente este programa, pero a lo que he visto puede ser de una gran ayuda en mi carrera, para hacer diferentes cálculos matemáticos. En tiempos libres tratare de investigar a un más porque se ve que este programa es uno o el más completo para resolver problemas.

 

 

Mastery 26

2 min read

Una matriz es un vector de vectores o un también llamado array bidimensional. La manera de declarar una matriz es C++ es similar a un vector:

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.

 

No olvidar que tanto filas como columnas se enumeran a partir de 0. Bueno y para recorrer una matriz podemos usar igualmente un bucle. En este caso usando 2 for:

for(int i = 0; i < rows; i++) {
  for(int j = 0; j < cols; j++) {
    matrix[i][j] = i % j;
  }
}
 

Mastery 25

1 min read

Strings are objects that represent sequences of characters.

The standard string class provides support for such objects with an interface similar to that of a standard container of bytes, but adding features specifically designed to operate with strings of single-byte characters.

The string class is an instantiation of the basic_string class template that uses char (i.e., bytes) as its character type, with its default char_traits and allocator types (see basic_string for more info on the template).

Note that this class handles bytes independently of the encoding used: If used to handle sequences of multi-byte or variable-length characters (such as UTF-8), all members of this class (such as length or size), as well as its iterators, will still operate in terms of bytes (not actual encoded characters).

Here are an example of a string of a character type.

 

#Mastery22 - #TC1017

2 min read

Two types of repetition structures: pretest and posttest loops

Pretest:

  1. Loop condition appears at beginning of pretest loop
  2. Determines number of times instructions w/in loop body are processed

Types of pretest loop:

  1. while
  2. for

Posttest:

  1. Loop condition appears at end of posttest loop
  2. Determines number of times instructions w/in loop body are processed
  3. HOWEVER, instructions processed at least once--the first time!

Types of posttest loop:

  1. do...while while

Counter-Controlled Repetition Requires

  1. the name of a control variable (or loop counter)
  2. the initial value of the control variable
  3. the loop-continuation condition that tests for the final value of the control variable to determine when to exit
  4. the control variable to be incremented (or decremented) each time through the loop

Using while Loop:

    • Executes from zero to many times, depending on expression
    • while is reserved word
    • Syntax of while statement:
while (expression)
  statement;
  • Expression provides entry condition
  • Expression (parentheses must be included as part of syntax) must evaluate to true to invoke loop statement(s)
  • Statement(s) can be simple or compound (block)
  • Statement(s) is/are body of loop
  • BE SURE to include an exit condition that will eventually evaluate expression to be false
  • Infinite loop: statement(s) continue(s) to execute endlessly
  • Loop invocation:
  1. Statement(s) execute(s) if expression evaluates to true
  2. Loop condition reevaluated
  3. Statement(s) continue(s) to execute until expression false
Example:
int counter=1; //initialize loop control variable

while (counter < 11) //test loop control variable
{
  cout << i << endl; //print value of i
  counter++; //update loop control variable
}

Using for Loop:

    • Executes a set number of times determined by the counter
    • Statement can be a single statement or a compound (block) statement.
    • for is reserved word
    • Simplifies writing of count-controlled while loop
    • Syntax of for statement (for loop control statements):
for (initial statement; test statement (loop condition); update statement)
     statement;
Example:
//printing 1 - 10 using for loop
cout << "for loop prints 1 - 10" << endl;
for(int num = 1; num < 11; num++)
  {
    cout << num << endl;
  }
 

Mastery 27

1 min read

En la siguiente imagen utilice el programa del proyecto final para mostrar algunas fuciones bool.

El tipo bool está especialmente adaptado a para realizar comprobaciones lógicas; de hecho, todo el álgebra de Boole se basa justamente en el uso de este tipo de variables de solo dos valores mutuamente excluyentes.

Por su parte, las palabras clave false y true son literales que tienen valores predefinidos (podemos considerar que son objetos de tipo booleano de valor constante predefinido). false tiene el valor falso (numéricamente es cero), true tiene el valor cierto (numéricamente es uno). 

 

 

Mastery 28

1 min read

Usar streams facilita mucho el acceso a ficheros en disco, veremos que una vez que creemos un stream para un fichero, podremos trabajar con él igual que lo hacemos con cin o cout.

Mediante las clases ofstreamifstream y fstream tendremos acceso a todas las funciones de las clases base de las que se derivan estas: iosistreamostream,fstreambase, y como también contienen un objeto filebuf, podremos acceder a las funciones de filebuf y streambuf.

Acontinuacion hay un ejemplr de la clase ifstream:

Link to GitHub: https://github.com/JoseSanchez12/Quizz11/blob/master/q1.cpp

 

Reporte Sudoku

1 min read

Esta semana le pusimos lineas horizontales y verticales para separar los numeros por cuadrantes, y hemos tratado de poner colores a los numero pero aun no logramos ponerlos, solo a las lineas de los cuadrantes. Lo siguiente que haremos sera checar las columnas y hileras, asi como el usuario pueda escribir los numeros que desea ingresar. 

 

WSQ16 - Cars

1 min read

En este wsq cree un programa que pueda leer un archivo .txt para sacar los promedios como las millas por galon en la ciudad y carretera, asi como el precio medio.

 

GitHub:https://github.com/JoseSanchez12/TC1017-GitHub-Repos/blob/master/wsq16.cpp