domingo, 20 de noviembre de 2016

Ejercicios multiplos

//============================================================================
// Name        : Practicamodulos.cpp
// Author      :
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
using namespace std;

//cabeceras

bool multiplo_2 (int n);
bool multiplo_3 (int n);
bool multiplo_5 (int n);
int comprueba (bool mult2,bool mult3, bool mult5);
void mensaje (int num);
int eleccion();
char verifica_resp();
int cump_positivo(int num);
void intercambio (int & n1,int & n2);

//programa principal
int main() {
    int ale,max,min,veces,opcionuser,oc,acierto,total;
    bool m2,m3,m5;
    char res;
    acierto=0;
    total=0;
    srand (time (NULL));
    res=verifica_resp();
    while (res=='s' || res=='S'){


        cout<<"Introduzca el minimo :"<<endl;
        cin>>min;
        cout<<"Introduzca el maximo :"<<endl;
        cin>>max;
        cout<<"Introduzca la cantidad de numeros que desee :"<<endl;
        cin>>veces;

        for(int i=0;i<veces;i++){

            ale= rand()%((max-min)+ 1) + min;
            cout<<"El numero a adivinar es "<<ale<<endl;
            opcionuser=eleccion();
            m2=multiplo_2(ale);
            m3=multiplo_3(ale);
            m5=multiplo_5(ale);
            oc=comprueba(m2,m3,m5);

            if(opcionuser==oc){
                cout<<"Bien hecho!"<<endl;
                acierto++;
            }
            else{
                cout<<"Has fallado"<<endl;
            }
            total++;
        }

        if (total==acierto){
            cout<<"Muy bien hecho! Has respondido bien a todas!"<<endl;
        }
        if (acierto==0){
            cout<<"No has respondido ninguna bien, tienes que estudiar mucho mas"<<endl;
        }
        if (acierto>0 && acierto<(total/2)){
            cout<<"Deberias de esforzarte mas..."<<endl;
        }

        if (acierto<total && acierto>(total/2)){
            cout<<"Bien hecho!"<<endl; }

        if(acierto==(total/2)){
            cout<<"Aprovado por los pelos..."<<endl;
        }

        res=verifica_resp();

    }




    return 0;
}

//modulos
bool multiplo_2 (int n){
    bool mult2=false;
    if (n%2==0){
        mult2=true;
    }
    return mult2;
}

bool multiplo_3 (int n){
    bool mult3=false;
    if (n%3==0){
        mult3=true;
    }
    return mult3;
}


bool multiplo_5 (int n){
    bool mult5=false;
    if (n%5==0){
        mult5=true;
    }
    return mult5;
}

int comprueba (bool mult2,bool mult3, bool mult5){
    int n;
    if (mult2==true && mult3==false && mult5==false){
        n=1;
    }

    if (mult3==true && mult2==false && mult5==false){
        n=2;
    }

    if (mult5==true && mult3==false && mult2==false){
        n=3;
    }

    if (mult2==true && mult3==true && mult5==false){
        n=4;
    }

    if (mult2==true && mult3==false && mult5==true){
        n=5;
    }

    if (mult2==false && mult3==true && mult5==true    ){
        n=6;
    }

    if (mult2==true && mult3==true && mult5==true){
        n=7;
    }

    if (mult2==false && mult3==false && mult5==false){
            n=8;
        }

    return n;
}

void mensaje(int num){
    if (num==1){
        cout<<"Es multiplo de 2"<<endl;
    }
    if (num==2){
        cout<<"Es multiplo de 3"<<endl;
    }
    if (num==3){
        cout<<"Es multiplo de 5"<<endl;
    }
    if (num==4){
        cout<<"Es multiplo de 2 y de 3"<<endl;
    }
    if (num==5){
        cout<<"Es multiplo de 2 y de 5"<<endl;
    }
    if (num==6){
        cout<<"Es multiplo de 3 y de 5"<<endl;
    }
    if (num==7){
        cout<<"Es multiplo de 2 , 3 y de 5"<<endl;
    }
    if (num==8){
        cout<<"No es multiplo de 2, 3 o 5"<<endl;
    }

}

int eleccion(){
    int elec;
    cout<<"Elige una opcion: "<<endl;
    cout<<"1. Dos "<<endl;
    cout<<"2. Tres "<<endl;
    cout<<"3. Cinco "<<endl;
    cout<<"4. Dos y tres "<<endl;
    cout<<"5. Dos y cinco "<<endl;
    cout<<"6. Tres y cinco "<<endl;
    cout<<"7. Dos, tres y cinco "<<endl;
    cout<<"8. No es multiplo de dos, tres o cinco "<<endl;
    cin>>elec;
    while(elec <1 && elec>8){
        cout<<"Introduzca de nuevo, opción erronea"<<endl;
        cin>>elec;
    }
    return elec;
}

char verifica_resp(){
    char resp;
    cout<<"Desea ejecutar el programa?(S/s N/n) "<<endl;
    cin>>resp;
    return resp;
}

int cump_positivo(int num){
    if (num>0){
        return num;
    }
    else{
        while(num<0){
            cout<<"Numero negativo, introduzca de nuevo "<<endl;
            cin>>num;
        }
    }
    return num;
}

void intercambio (int & n1,int & n2){
    int aux;
    aux=n1;
    n1=n2;
    n2=aux;

}

jueves, 6 de octubre de 2016

Tarea para el 29 de octubre

Ejercicio 1


1.- Un algoritmo es una secuencia de acciones primitivas que resuelven un problema en un procesador.

Sus características son:
• Debe realizar la tarea
 • Debe ser claro e inequívoco para el procesador
• Debe definir la secuencia ordenada de pasos requeridos para llevar a cabo la tarea.
• El número de pasos debe ser finito.

2.-
 • Solucionar un cualquier problema matemático por x método.
 • Realizar una comida gracias a una receta.
 • Seguir una serie de pasos para montar un mueble.

3.- 3 bits
4.-Representamos en base 2 los numeros de mayor a menor por así decirlo:
64  32  16  8  4  2  1         -------> (2^7,2^6...2^n)
A continuación tenemos que sumar entre ellos para que de el numero decimal deseado, ¨eligiendo¨ cada uno de ellos con un uno si está activo y con 0 si no. (En el caso de 7 es...)
64  32  16  8  4  2  1  -------> (2^7,2^6...2^n)
0    0     0   0  1  1  1
Por lo tanto 7 en binario es 111.

Para pasar de binario a decimal es al contrario, deberíamos de sumar todos aquellos valores que representan los 1.

5.-

6.-
La CPU se compone de 3 partes fundamentales:
Unidad de Control: interpreta y ejecuta las instrucciones almacenadas en la memoria principal y genera las señales de control necesarias para ejecutarlas.

Unidad Aritmético-Lógica: circuito digital que calcula operaciones artiméticas y lógicas (acciones primitivas muy simples).

Registros: memoria de alta velocidad para almacenar resultados intermedios e información de control: contador de programa, registro de instrucción.
En la memoria principal se guardan los programas, los datos y los cálculos intermedios. Consiste en varios millones de circuitos elementales, biestables,  capaces cada uno de encontrarse en uno de los dos posibles estados que representan los dígitos binarios 0 o 1.  La unidad mínima de información que se transfiere a o desde la memoria principal recibe el nombre de palabra y está compuesta por un número fijo de bits múltiplo del byte.

Distinguimos dos valores asociados a cada elemento de la memoria:  Su contenido, que será el dato o la instrucción que almacene.  Su dirección, que nos permite acceder a su posición en  memoria  para  leer o escribir su contenido.

7.-Un algoritmo es el conjunto de pasos que debemos de seguir para resolver nuestro problema, ahí la diferencia.

8.-Conozco C,C++, Java, Python, Objetive C.

9.- Un bit es la mínima unidad mínima de información , siendo un byte 8 bits.

10.- Un programa de ordenador.

11.-La entrada es el código fuente mientra que la salida es el lenguaje entendible para el computador generado por el compilador a través de la entrada.

Ejercicio 2

Programación - Un conjunto de reglas, símbolos y palabras especiales empleadas para construir un programa de computadora.

Computadora - Dispositivo programable que puede almacenar, recuperar y procesar datos.

Algoritmo - Procedimiento paso a paso para resolver un problema en una cantidad de tiempo finita.

Programa de computadora - Secuencia de instrucciones que realizará una computadora.

Lenguaje de programación - Un conjunto de reglas, símbolos y palabras especiales empleadas para construir un programa de computadora.

Documentación - Texto escrito y comentarios que hacen un programa más fácil para que otros lo entiendan, usen o modifiquen.

Información - Cualquier conocimiento que pueda ser transmitido.

Datos - Información en forma que una computadora puede usar.

Lenguaje máquina - Lenguaje, hecho de instrucciones en código binario, que la computadora emplea de modo directo.

Lenguaje ensamblador - Lenguaje de programación de bajo nivel en que se emplean ayudas nemotécnicas para representar cada una de las instrucciones para una computadora particular.

Compilador - Programa que traduce un lenguaje de alto nivel en código máquina.

Programa objeto - Versión en lenguaje máquina de un programa fuente .

Programa fuente - Programa escrito en lenguaje de programación de alto nivel.

Ensamblador - Programa que traduce un programa en lenguaje ensamblador en código máquina.


Ejercicio 4


#include <iostream>
Incluye la librería básica de entrada (teclado) y salida de datos (pantalla) de C++.

using namespace std;
 Se usa para evitar escribir std:: antes de cada comando.

int main (void) {
Función principal de nuestro programa, lo ingresado dentro de las llaves de main, será lo que el programa haga.

cout<<"Hola Mundo"<<endl;
Como vemos el comando para mostrar mensajes en pantalla es "cout" seguido de dos signos de menor. Posteriormente se agrega el mensaje a mostrar entre comillas. Si queremos mostrar alguna otra cosa se vuelven a agregar los signos de menor, tal y como se muestra aquí para agregar "endl" que indica fin de renglón en nuestro programa.

return 0;
Indica que nuestro programa ha terminado de la forma correcta, no retorna nada (eso se explicará más delante con profundidad).

Practica sesión 2

#include <iostream>
#include <conio2.h>
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>

using namespace std;

//¿que hacen las 3 lineas siguientes? Definir las constantes filas, columnas y colores máximos permitidos.
#define maxfil 25
#define maxcol 80
#define maxcolor 16

int main() {  //¿que signfica esta sentencia? Inicia semilla para el aleatorio.
   srand(time(NULL));


 //¿De que tipo son las variables y porque se han puesto esos tipos?  //¿Es correcto?  Char resp-> Correcto ,  cadena de caracteres.
int fila, coluumna-> Correcto, son números enteros.
int color-> Correcto, cada número se le asigna un color (enteros)
char resp;
int fila,columna;
int color;

cout<<"Desea ejecutar el programa s/n:";
cin>>resp;

 //¿que signfica esta sentencia?  limpia la pantalla
clrscr(); 

 //¿Cual sera el valor de la variable color?  aleatorio
color = rand()%maxcolor;
textcolor(color);



 //¿Cual sera el valor de la variable fila, es correcto?  aleatorio
fila=rand()%maxfil;

 //¿Cual sera el valor de la variable columna, es correcto? aleatorio
columna=rand()%maxcol;

 //¿que signfica esta sentencia? Ir a una cordenada específica.
gotoxy(1,25);



 //¿que signfica esta sentencia? ¨Dibujar¨ un color en la pantalla
printf("%c",char(219));

 //¿que signfica esta sentencia? Hacer un sonido de x frecuancia en x tiempo
Beep(1000,200);




color = rand()%maxcolor;
textcolor(color);

gotoxy(80,1);




printf("%c",char(219));

Beep(1000,200);




color = rand()%maxcolor;
textcolor(color);

gotoxy(1,1);




printf("%c",char(219));


Beep(1000,200);




color = rand()%maxcolor;
textcolor(color);

gotoxy(80,25);



printf("%c",char(219));


Beep(1000,200);


Sleep(2000);

fila=12;


columna=40;
textcolor (RED);

gotoxy(columna,fila);

printf("%c",char(219));


Beep(1000,200);

Sleep(500);
textcolor (BLACK);

gotoxy(columna,fila);
printf("%c",char(219));
Sleep(250);
textcolor (RED);

gotoxy(columna+1,fila);


printf("%c",char(219));


Beep(1000,200);


Sleep(500);
textcolor (BLACK);
 //¿que signfica esta sentencia?
gotoxy(columna+1,fila);
printf("%c",char(219));
Sleep(250);
textcolor (RED);

gotoxy(columna+2,fila);


printf("%c",char(219));


Beep(1000,200);


Sleep(500);
textcolor (BLACK);

gotoxy(columna+2,fila);
printf("%c",char(219));
Sleep(250);
textcolor (RED);

gotoxy(columna+3,fila);


printf("%c",char(219));


Beep(1000,200);


Sleep(500);
textcolor (BLACK);

gotoxy(columna+3,fila);
printf("%c",char(219));
Sleep(250);
textcolor (RED);

gotoxy(columna+4,fila);


printf("%c",char(219));


Beep(1000,200);

Sleep(500);
textcolor (BLACK);

gotoxy(columna+4,fila);
printf("%c",char(219));
Sleep(250);
textcolor (RED);

gotoxy(columna+5,fila);


printf("%c",char(219));


Beep(1000,200);

 //¿que signfica esta sentencia? Tiempo de espera de 500 ms
Sleep(500);
textcolor (BLACK);

gotoxy(columna+5,fila);
printf("%c",char(219));
Sleep(250);
textcolor (RED);

gotoxy(columna+6,fila);


printf("%c",char(219));


Beep(1000,200);


Sleep(500);
textcolor (BLACK);

gotoxy(columna+6,fila);
printf("%c",char(219));
Sleep(250);
textcolor (RED);

textcolor(WHITE);//restauramos el color del texto a blanco
return 0; }//fin del programa principal