Factorial calculator WSQ09

Hi everyone! I know that i haven’t blog in a while but I’m back!

What to do?

Create a program that asks the user for a non-negative integer (let’s call that number n) and display for them the value of n! (n factorial). After showing them the answer, ask them if they would like to try another number (with a simple y/n response) and either ask again (for y) or quit the program and wish them a nice day (if they answered n).

Well first of all you need to instal some stuff, the big integer library, at least that was my case, here you have de link for the page BigInteger Library.

Also I recommend you to watch Ken’s video about this, this video is for the last semester, but it might help you.

 

Finally this is my link to my GitHub for my code.

Captura de pantalla 2016-04-07 a las 12.33.01 a.m.

#WSQ12

“Word Count”

En este programa empezamos a trabajar con texto, es el primero en el que comenzamos a analizar un texto por partes y utilizarlo, como primer parte se definió una función, que es la que se encarga de todo el proceso de contar palabras, en seguida se le indica al programa una  constante, esta se encarga de proporcionar al programa el texto que se quiere abrir, luego utilizamos el comando .readlines() este comando es una ventaja que nos ofrece python ya que no es necesario importar alguna librería, simplemente lo escribimos y este se encarga de usar el texto al que accedamos y después leer linea por linea, cada vez que escribes este comando, el programa escribe la linea siguiente del código, esto nos lleva a la parte siguiente del programa que es el ciclo for principal, este hace que el programa lea linea por linea del código y la guarde en una variable que se le dio, en seguida se hace un ciclo anidado que se encarga de la linea dada separarla en palabras gracias a la función .split(‘ ‘)  algo muy interesante sobre esta función es que separa las palabras, sin embargo toma como palabra todo texto que se encuentre junto, por lo tanto si en algún texto se le especificara alguna palabra seguida de un punto, el programa seria incapaz de contar la palabra que tenga el punto o en otro caso una coma, por lo tanto para solucionar este problema al agregar el contador en un if, este if ademas de preguntarse si la palabra es igual, también se preocupa por aquellas que tienen un punto o una coma seguidos de la palabra y también los cuenta, así va separando cada linea en palabras y estas a su vez son contadas por el

CONTADORDEPAL.png

Continue reading “#WSQ12”

#WSQ11

“Yo Soy 196”

En esta ocasión voy a hablar sobre el WSQ11, este programa hacemos alusión a los números de Lychrel que tratan en pocas palabras de que un número de Lychrel es un número natural que no puede formar un palíndromo a través del proceso iterativo repetitivo de invertir sus dígitos y sumar los números resultantes, por lo tanto este programa crea una solución para identificar en un rango de números cuales son Lychrel cuales no y cuales son palíndromos naturales, es decir que sin necesidad de sumarlo con su inverso, ya es un palíndromo.

Como primer paso se le pide al usuario el número inferior del rango en el que quiere encontrar números Lychrel, en seguida se le pide el limite superior, una vez conociendo el limite inferior y superior, hice un ciclo que se encarga se usar esos valores y crear una lista con todos los valores de ese rango.

Después de encargarme de la lista para los valores que se van a utilizar, cree una función que se encarga de primero convertir a string uno de los valores de la lista, en seguida lo invierte y después lo vuelve a transformar en entero para poder trabajar con el. ya que podemos trabajar con el numero invertido y con el normal, hice un ciclo for que es la base de todo el programa, en este primero se compara si los números son palindromos naturales usando la función que los invierte, si no lo son, entra a un ciclo anidado que se encarga de al no ser palindromos naturales los empieza a sumar hasta que los convierte a palindromos, gracias a varios contadores se puede saber cuantos numero de este tipo hay.

En seguida en el programa hay un if que se encarga de verificar que las iteraciones de

LYCHREL.png

Continue reading “#WSQ11”

#WSQ09

“Factorial Calculator”

Este es el primer WSQ del segundo parcial en la materia de fundamentos de programación, que trata básicamente de que el usuario nos da 1 numero, y según el numero que nos de debemos calcular su factorial, una vez calculado, el programa lo muestra en pantalla. Para hacerlo mas interesante, una vez desplegado el numero te pregunta si le quieres dar uno mas para calcular su factorial, en este caso se utilizo un ciclo y un if para realizar esta tarea, el usuario tiene dos opciones a elegir, son un SI o un No, sin embargo  va mas allá que eso, ya que esta pensado para casi cualquier respuesta que pueda dar el usuario, es decir se preocupa por mayúsculas y minúsculas en su respuesta.

En el caso de el primer programa se utilizo un Bucle para llegar a la solución, sin embargo, python nos facilita el trabajo. para esto encontramos una función que veremos más adelante.

Con el primer programa primero se inicializarón algunas de las variables a utilizar para poder iniciar con los ciclos, en este caso se necesitaron 2, el principal, que se encarga de hacer que si el usuario elija la opción “si” se repita el programa y el segundo que se encarga de hacer la operación factorial.

En este programa importe unas librerías que son de mucha ayuda para que el programa corra de una mejor manera y sea mas comprensible por el usuario, se trata de “Clear” quien limpia la pantalla al momento de ser llamado. ademas de algunos operadores lógicos booleanos que se encargan de asegurarse que la manera en la que escriba el usuario sea valida para correr el programa.

Para entender bien como funcionaba un número factorial encontré esta información.

Para la librería que Limpia la pantalla encontré esta información.

Aquí esta algo que es

PRIMERAPRIME
SEGUNDA ORIGINAL

Continue reading “#WSQ09”

#WSQ08

“On To Functions”

En este programa  reutilizamos conceptos de código, utilizando “Fun with Numbers” pero a diferencia de este programa ahora teníamos que realizar las operaciones utilizando una función, esta función recibía 2 valores enteros, para comenzar con el programa declare 5 funciones diferentes se llaman suma, resta, multiplicación, división y residuo. cada una utiliza los valores que le de el usuario.

Aquí está el codigo:

print(“On To Functions”)
print(“Este programa te ayuda a hacer la suma resta multiplicación división y residuo de 2 números n”)
def suma (numero1,numero2):
resultsuma=numero1+numero2
print(“La suma de”, numero1,“+”,numero2,“es:”,resultsuma)
return resultsuma
s=suma(4,4)

def resta (numero1,numero2):
resultresta=numero1-numero2
print(“La resta de”, numero1,“-“,numero2,“es:”,resultresta)
return resultresta
r=resta(5,4)

def multiplicacion (numero1,numero2):
resultmultiplicacion=numero1*numero2
print(“La multiplicacion de”, numero1,“X”,numero2,“es:”,resultmultiplicacion)
return resultmultiplicacion
m=multiplicacion(5,4)

def division (numero1,numero2):
resultdivision=numero1//numero2
print(“La division de”, numero1,“/”,numero2,“es:”,resultdivision)
return resultdivision
d=division(20,4)

def residuo (numero1,numero2):
resultresiduo=numero1%numero2
print(“El residuo de”, numero1,“%”,numero2,“es:”,resultresiduo)
return resultresiduo
resi=residuo(20,3)

También está en GitHub

FUNCIONESSABEQU

Necesite un poco de información extra para cultivar mi dominio de funciones por lo que este libro me fue de mucha ayuda.

Arturo Fernández Montoro. (Junio 2012). Python 3 Al Descubierto. Pitágoras 1139, Col del Valle, México DF.: Alfaomega.

Este vídeo es muy bueno también.

#WSQ07

“Sum of Numbers”

En este programa se hace la suma de un rango, para empezar, pide dos valores al usuario en orden del menor al mayor del rango, y en seguida realiza la suma desde el primero hasta el ultimo incluyéndolos, es decir si el usuario elige del 1 al 10 el programa sumara “1+2+3+4+5+6+7+8+9+10” y el resultado será 55.

Como es esperado, hoy aprendí algo muy interesante, que fue a limpiar la pantalla lo que detallaré un poco mas adelante. Después de que el usuario pide los valores el programa se asegura de que estén en orden correcto, ademas de que no sean dos números iguales, de ser así el programa ejecuta ciertas medidas para decirle al usuario que esta introduciendo valores incorrectos y después los vuelve a pedir. El programa limpia pantalla cada vez que da un resultado.

El programa inicia con un ciclo primero declare dos valores, numero1 y numero2 estos valores son muy útiles para comenzar, en el ciclo hay tres condicionales que se encargan de verificar si el primer numero es mayor al primero, al revés o que los dos valores introducidos sean iguales, para cada caso se ejecutara una acción, en caso de ser alguna de las dos opciones incorrectas el programa se repetirá.

En cada cada resultado del programa se utiliza un modulo que fue declarado al inicio del programa este modulo limpia la pantalla, y se importa de la siguiente manera:

import os

Una vez importado se usa en ciertas partes del código para limpiar todo lo que le precede y se utiliza  así:

os.system (“clear”)

Aquí puedes ver el mi código:

import os
print(“Este programa hace la suma de un rango”)
numero1=1
numero2=0
while (numero1>=numero2):

print(“Dame el menor numero de tu rango”

uno sum
dos sum
tres sum
cuatro sum
cinco sum
seis sum

Continue reading “#WSQ07”

#WSQ09-Factorial calculator

Create a program that asks the user for a non-negative integer (let’s call that number n) and display for them the value of n! (n factorial).

After showing them the answer, ask them if they would like to try another number (with a simple y/n response) and either ask again (for y) or quit the program and wish them a nice day (if they answered n).

This where my instructions. And this is how I what I did.

This program accepts a “n” positive number and multiplies it in a sequence for example: 5!=102, this is also 1 x 2 x 3 x 4 x 5=120.

Also this program has a loop that ends with the sequence of the multiplications.

//CODE:

#include <iostream>
using namespace std;

int main(int argc, char const *argv[]) {
int n, n2, conta;
char ans;
std::cout << “This program prints the factorial of <n> number.” << std::endl;
do {
std::cout << “Please enter a non-negative number to calculate the factorial.” << std::endl;
std::cin >> n;
if (n==0) {
std::cout << “The factorial is… 1” << std::endl; //cuando corro el programa sale factorial is… 1 y después factorial is… 0 y despues vulve a preguntar….
}
conta=n;
do {
conta=conta-1;
n=n*conta;
} while(conta !=1);
std::cout << “The factorial is… “<<n << std::endl;
std::cout << “Do you like to add another factorial? Write <y> for yes and <n< for no” << std::endl;
std::cin >> ans;

} while(ans==’y’);

return 0;
}

Captura de pantalla 2016-02-17 a las 18.58.58

#WSQ08-On to functions

Hey world…

In this WSQ I had to go back to the WSQ03 and yes is the same but the difference with this one, is that now the code has functions out of the “main” and I learnt how to create th synthesis of a function in C++.

You will go back and do WSQ03 – Fun with Numbers again.

But this time, write a function for each calculation. Each function should define two parameters (in this example of type int) and return the correct value as an integer as well.

You main program needs to ask the user for the input and then call each function to calculate.

//CODE:

#include <iostream>
using namespace std;

int difference(int a, int b) {
return(a-b);
}
int product(int a, int b) {
return(a*b);
}
int integerdiv(int a, int b) {
return((int)(a/b));
}
int residue(int a, int b) {
return(a%b);
}

int main(int argc, char const *argv[]) {
int x, y, d, p, i, r;

std::cout << “This program is similar to WSQ03, but now with functions.” << std::endl;
std::cout << “Please enter number 1.” << std::endl;
std::cin >> x;
std::cout << “Please enter number 2.” << std::endl;
std::cin >> y;
d=difference(x, y);
p=product(x, y);
i=integerdiv(x, y);
r=residue(x, y);
std::cout << “The difference is… “<<d << std::endl;
std::cout << “The product is… “<<p << std::endl;
std::cout << “The integer division is… “<<i << std::endl;
std::cout << “The residue is… “<<r << std::endl;
return 0;
}

This are all the functions I created.

And this is how they are called into the “main”.

Captura de pantalla 2016-02-17 a las 18.49.12

#WSQ7-Sum of numbers

This code was easy as I remember!! Also just a little of research in formulas to be able to complete it.

I wrote a program that asks for a range of integers and then prints the sum of the numbers in that range (inclusive).

I did use a formula to calculate this of course but what we want you to do here is practice using a loop to do repetitive work.

x=(n*(n+1))/2;

For example, the sum from 6 to 10 would be 0 + 6 + 7 + 8 + 9 + 10.

//CODE:

#include <iostream>

using namespace std;

void sumofnumbers(int n) {
int R=0;
R=(n*(n+1))/2;
std::cout << “The sum of the range is… “<<R << std::endl;
}

int main(int argc, char const *argv[]) {
int n, R;
std::cout << “This program sum the rage of numbers from the enter one.” << std::endl;
std::cout << “Please enter a number to sum its range.” << std::endl;
std::cin >> n;
sumofnumbers(n);

return 0;
}

Captura de pantalla 2016-02-17 a las 18.46.37

#WSQ06-Pick a number

This one was a little tricky, because I had to do some research of certain commands for it to properly run…

I made a program that picks a random integer in the range of 1 to 100.

It then prompts the user for a guess of the value, with hints of ’too high’ or ’too low’ from the program.

The program continues to run until the user guesses the integer. You could do something extra here including telling there user how many guesses they had to make to get the right answer.

You will see that I did use some “if ” conditionals just for simple logical problems and also I did use another helpful tool in C++ called “do-while”, what this command does is that repeats in loops the command inside the “do instructions” until the “while condition” (which is also a logical statement) is true or false depending on your code.

//CODE:

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main(int argc, char const *argv[]) {
int n1, n2, count=0;

std::cout << “This program can help you guess the number is picked.” << std::endl;
srand(time(NULL));
n1=rand()%100+1;
do {
count++;
std::cout << “Enter a number from 1 to 100.” << std::endl;
std::cin >> n2;
if (n2<n1) {
std::cout << “The number you just wrote is too low. Try again.” << std::endl;
}
else{
if (n2>n1) {
std::cout << “The number you just wrote is too high. Try again.” << std::endl;
}
else{
std::cout << “Congratulations you just hit the big one!!” << std::endl;
}
}
} while(n2!=n1);
std::cout << “You tried “<<count<<” time(s)” << std::endl;

return 0;
}

Captura de pantalla 2016-02-17 a las 18.35.17