Proyecto Final – Agencia de Viajes

Este es nuestro proyecto final del curso de Solución de problemas con programación TC1017, proyecto realizado por Carolina López López y Daniel Alberto Amaro Álvarez.

Nuestro proyecto consiste en una agencia de viajes, la cual pregunta al usuario a que destino quiere viajar, le muestra las opciones de hoteles a los cuales puede reservar, los paquetes de comida disponibles en el hotel seleccionado y por último, se muestra al usuario los subtotales y totales de sus reservaciones.

A continuación se muestran 2 videos en los cuales se explica paso por paso el código realizado en el programa ATOM, y su respectiva compilación en el programa Cygwin:

Explicación del código:

Programa compilado:

Tuvimos bastantes problemas mientras realizábamos nuestro programa, este programa no fue nuestra primera opción como proyecto, nuestra  primera opción fue realizar un juego muy famoso llamado “El Ahorcado”. Este programa no fue presentado por el hecho que implicaba muchos códigos no vistos en clase, se trataba de un programa totalmente visual. Sin embargo aprendimos funciones que no habíamos visto, como es la función getch(), sin embargo, algunas funciones venían dentro de librerías que ya son muy ambiguas puesto que no todos los sitemas operativo s lo arrancan.

Mientras intentábamos terminar este juego, surgió la idea de la agencia de viajes, que lo estuvimos realizando al mismo tiempo que el juego para alcanzar a terminarlo en dado caso de no poder presentado “El Ahorcado”.

Para la agencia de viajes si pudimos mostrar lo aprendido en este curso de programación en su totalidad, ya que se abarcó lo visto en este semestre. Este programa también nos enseñó bastantes cosas que fueron utilizadas en el código, como por ejemplo, utilizar colores para las letras.

Se reforzó lo aprendido en clase y se complementó con nuevas cosas que fueron investigadas para realizar este

Continue reading “Proyecto Final – Agencia de Viajes”

WSQ11 – Yo soy 196

depresion-644x362

Con bastante diferencia, el trabajo mas complicado que he hecho durante este curso y el mas largo. Anteriormente fue publicado en el quiz 5 palindromos, la diferencia entre ese quiz y este trabajo, es que en el quiz se usaban palindromos con letras, y en este trabajo se usan puros números.

Se tuvo que descargar una biblioteca nueva : BigInteger.

Ocupé ayuda de bastantes compañeros porque si fue un trabajo sumamente complicado.

WSQ11 - YoSoy196 (1)WSQ11 - YoSoy196 (2)

Link GitHub: WSQ11 – Yo Soy 196

 

Quiz #5

El quiz 5 consiste en 2 programas, el primero se trata de palindromos, y el segundo te permite sumar números divisibles entre 3.

1111

Programa 1 – Palindromos

¿Qué son los palindromos?

  • Los palindromos son palabras o frases que se escriben / leen de igual forma al derecho y al revés; aquí unos ejemplos de palindromos:
  • anita lava la tina
  • reconocer
  • ana
  • la ruta natural

Este programa no acepta los espacios, por lo tanto, si se quiere escribir un palindromo compuesto por varias palabras, se tienen que escribir sin espacio.

El usuario teclea algo, si lo tecleado es un palindromo, el programa te afirmará que si es un palindromo, si lo tecleado no es un palindromo, el programa te dará a conocer que o que estás escribiendo no es un palindromo.

Esta operación es principal del programa, ya que hace que el programa pueda leer al revés:

Quiz 5 ejercicio 1 (función)

Aquí el código completo junto con su compilación:

Quiz 5 ejercicio 1

Link GitHub: Quiz #5 Prog 1

Programa 2 – Suma de números divisibles entre 3

El programa te pregunta por diferentes números los cuales se van agregando a la lista, y como dice el título, únicamente se van a sumar los números que sean divisibles entre 3, los otros números son ignorados.

Para este programa se utilizaron vectores y el loop while

A continuación se muestra el código completo en un screenshot y su respectivo link en GitHub.

Quiz 5 ejercicio 2

Link GitHub: Quiz #5 Prog 2

Quiz #4

EULER!!!!

esimple

Este es el quiz #4 de este curso de programación, este quiz en específico ha sido en el que mas eh tardado en hacer por que de cierta forma me confundía, a tal punto de que busqué ayuda con compañeros que ya llevaron esta materia y con otros compañeros los cuales están llevando junto conmigo este curso.

El programa te pregunta la precisión con la cual quieres el número euler, mientras mas grande sea el número elegido, mas preciso es el número euler gracias a esto:

e = 1 + frac{1}{1} + frac{1}{1cdot 2} + frac{1}{1cdot 2cdot 3} + cdots

 

Quiz 4

Link GitHub: Quiz #4

 

QUIZ #3

Este es el quiz #3 del curso de programación, consiste en realizar 2 programas.

1111

Programa 1 – Distancia entre puntos

La función de este programa es que te permite calcular la distancia entre 2 puntos dentro de un plano cartesiano, el hecho de que sea en un plano cartesiano, significa que un punto tiene 2 componentes, (x , y). Las componentes del primer punto son :(x1 , y1); y las componentes del segundo punto son: (x2 , y2).

Se obtienen las diferencias tanto de las componentes y (y2-y1) y de las components x (x2-x1) y se elevan al cuadrado; posteriormente se suman los 2 resultados y se obtiene la raíz cuadrada de esa suma.

Quiz 3 Ejercicio 1

Link GitHub: Quiz #3 Prog 1

Programa 2 – Sucesión de Fibonacci

En el código de este programa se encuentra una fórmula en la cual obedece a la sucesión de Fibonacci, gracias a esta página (Fibonacci) pude saber bien a que se refiere esta serie de números. Este programa se produce totalmente gracias al loop for.

Quiz 3 Ejercicio 2

Link GitHub: Quiz #3 Prog 2

WSQ10 – Lists

Este es el décimo WSQ del curso de programación. Este trabajo consiste en hacer una lista de números para después realizar diferentes operaciones:

  • Suma
  • Promedio
  • Desviación estándar

Para realizar este trabajo se utilizaron vectores, esto fue lo complicado de la actividad por el hecho de no haber estado familiarizado con los vectores, gracias a internet pude comprender lo que son los vectores visitando esta página:

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

y estos videos:

https://www.youtube.com/watch?v=sMi4cxGQr_s

https://www.youtube.com/watch?v=SGyutdso6_c

Utilicé el loop while para poder seguir agregando números a la lista, cada vez que se agrega un número, el programa pregunta si quiere agregar otro número:

WSQ10 - Lists (while)

A continuación se muestran screenshots del código y del programa compilado:

WSQ10 - Lists (1)WSQ10 - Lists (2)WSQ10 - Lists Cygwin

Link Github: WSQ10 – Lists

 

Reading from file

#TC1017 #WSQ12

This was quite a cool and rather long problem. I feel quite happy about it, only case sensitivity is still an issue. But other than that it is quite comprehensive, I mean, it is user friendly and allows him to correct any input mistakes by checking whether the desired file was found or not.

To accomplish this many special functions were needed, such as .open, ifstream, .is_open, and.eof. But when I understood how these worked, the rest of the code was very intuitive to finsih.

wsq12.PNG

Source Code below: [GitHub Link: https://github.com/diegodamy/WSQ12 %5D

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int CheckFile(string textname3){
ifstream InList;
InList.open(textname3.c_str());

if (InList.is_open()) {
cout << “File was opened succesfully!” << endl;
return 1;
} else {
return 0;
}
}

int ReadFile(string word2, string textname2){
int counter;
string textword;
ifstream InList;
InList.open(textname2.c_str());

while (!InList.eof()) { // keep counting until you rach the last string
InList >> textword; // create a string out of all words in the text file
if (textword == word2) {
counter++;
}
}

InList.close();
return counter;
}
int KeepRunning(char decision){
if (decision == ‘Y’ || decision == ‘y’){
return 1;
} else {
return 0;
}
}

int main(){
string word;
string textname;
char decision;

do {
cout <<“Please enter the name of the text:” << endl;
cin >> textname;

if (CheckFile(textname)==0) {
cout << “Unable to open file.” << endl;
cout <<“Please enter the name of the text:” << endl;
cin >> textname;
}

cout <<“Please enter the word you wish to find in the text:” << endl;
cin >> word;

cout << endl << word << ” was found ” << ReadFile(word, textname) << ” time(s) in the text.” << endl;
cout <<

Continue reading “Reading from file”

GCD: What were you?

#TC1017 #QUIZ6

Soooo I had no idea what a GDC was, well I had forgotten what it was. Lucky for me Euclide’s formula was quite easy to understand anfd implement, so I chose to do it with arrays, just cause.

It was simple and effective, but I did struggle with a compiling error that was due to a bad implementation of some logic. (When either number is 0). I just had to rearrange some lines of code and it ran like a charm.

quiz6

Source Code below: [GitHub Link:  https://github.com/diegodamy/Quiz6]

#include <iostream>
using namespace std;

int GetGDC(int numbers[], int size){
int quotient;
int modulus;

do {

if (numbers[0] == 0){
return 1; //cout << “GDC is ” << numbers [1] << endl;
} else if (numbers[1] == 0){
return 0; //cout << “GDC is ” << numbers [0] << endl;
}

quotient = numbers[0]/numbers[1];
modulus = numbers[0]%numbers[1];

numbers [0] = (numbers [1]*quotient)+modulus;

numbers [0] = numbers [1];
numbers [1] = modulus;

} while ((numbers[0] == 0)||(numbers[1] == 0));

}

int main(){
int array [2];

cout << “In order to find the GCD of two numbers, please input two positive integers:” << endl;
for (int i=0; i<2; i++) {
cin >> array[i];
}

if (GetGDC(array,2)==1) {
cout << “The GDC of given numbers is ” << array[1] << endl;
} else if (GetGDC(array,2)==0) {
cout << “The GDC of given numbers is ” << array[0] << endl;
} else {
cout << “The GDC of the given numbers is ” << GetGDC(array,2) << endl;
}
}

———————————————-

Palindroming all day long

#TC1017 #QUIZ5

So this was hard. This, I must say, is one of my least effective codes written so far, it´s too long, buuuuuuut it works, so I´ll take it. Basically the user inputs the word, letter by letter (ineffective!) and then my code displays it the normal way and then reversed, just so the user sees it. Then it compares index by index to check if its the same.

The function .pushback was helpful for creating vectors of unknown size.

The real hard part was making it case unsensitive, oh man that took a while. Ken helped me out with a magical function and everything ran just fine. Also, mek sure to #include all necessary modules.

QUIZ5.PNG

Source Code below:[GitHub Link: https://github.com/diegodamy/Quiz5%5D

#include <iostream>
#include <vector>
#include <stdio.h>
#include <ctype.h>
using namespace std;

char DisplayWord (vector<char> word){ //Outputs word in order
int size = word.size();
vector<char>word1;

cout << “Your word: “;
for (int i = 0; i<word.size(); i++){
cout << word[i];
}
}

vector<char> DisplayWordReversed (vector<char> word){ //Outputs word in inverse order
int size = word.size();
vector<char>word2;
cout << endl << “Reversed: “;

for (int i = word.size()-1; i >=0; i–){
cout << word[i];
word2.push_back(word[i]);
}
return word2; //Returns value od reversed word (vector)
}

char FindPalindrome (vector<char> word, vector<char> word2){ //Compares indices of tow vectors: normal word and inversed word
int size = word.size();
cout << endl;
for (int i = 0; i<word.size(); i++){
if (word[i] == word2[i]){
return 1; //If elements of indices match, return true for palindrome
} else{
return 0;
}
}
}

int ConvertLowerUpper (){
int i=0;
char str[]=”Test String.n”;
char c;
while (str[i])
{
c=str[i];
putchar (tolower(c));
i++;
}
return 0;
}
int main(){
char letter;

cout << “Please enter letter by

Continue reading “Palindroming all day long”