viernes, 21 de agosto de 2015

Ciclo While

En este programa entraremos a una fase nueva veremos como funciona un ciclo while (mientras que) en nuestro programa .
Ante todo quiero darle una definición de esta , como todos sabemos un ciclo es algo que se repite infinitas veces, nuestro ciclo while que es español significa mientras que lo utilizamos cuando no sabemos hasta donde vamos a llegar en una condición planteada lees mostrare un ejemplo para que esto quede un poco mas claro.
sintaxis del ciclo while:


a continuación haremos un programa que pida una clave (en letra) y la clave correcta sea la j o J  y nuestro programa termine una vez que se ingrese la clave correcta y si no que muestre un mensaje que  siga intentando hasta que la adivine

lo primero que debemos hacer es lo siguiente 
1) pedir que ingrese una clave que sea una letra y si ingresa la j o J el programa termine y si no que siga intentando
2) utilizaremos una condición si la clave es = j o J que nos muestre que la clave se ha adivinado 
3) si la clave es diferente que nos muestre que siga intentando

nuestro algoritmo quedaría así:


aquí les dejare el código en físico lo prueban y comenten sus dudas :

  #include<iostream>
  using namespace std;
  int main(){
char cla;         /*declaramos nuestra variable tipo caracter*/
cout<<"ingrse una  clave (una letra) : ";  /*pedimo la clave */
cin>>cla;                                   /*guardamos la clave pedida */
if(cla == 'j' || cla =='J'){               /*hacemos nuestro condicional  ||-> es O , */
cout<<"su clave es corecta";      /*si la condicion se cumple mostramos q es correcta y fin del programa*/
}else{                             /*si la condicion no se cumple*/
cout<<"siga intentado ";   
}
cout<<"\n";
while(cla!='j' and cla!='J' ){   /*este es nuestro ciclo damos la condicion si se cumple el entra al ciclo
y repitira esto varias veces hasta que la condicion se cumpla */
cout<<"ingrese una  clave (una letra) : ";
cin>>cla;
if(cla== 'j' or cla=='J' ){
cout<< "su clave es correcta";
}else {
cout<< "siga intentando "<<endl;
}
  }
cout<<"\n";
system("pause");
return 0;


  }

Ciclo for

aquí trabajaremos un nuevo ciclo que seria el ciclo for (para), el ciclo for o para, a diferencia del ciclo mientras en este sabemos hasta donde vamos llegar colocando nuestra condición su sintaxis seria :


procedemos hacer un programa en donde nos piden que imprimamos los números del uno al 50
lo haremos utilizando un ciclo for, nos quedaría de la siguiente manera :



dejare el código en físico para que lo prueben y puedan comentar sus dudas :
solo copien y peguen 


 #include<iostream>
  
  using namespace std;
  
  int main(){
for(int i=1;i<=50;i++){ /*ciclo for declaramo una variable llamada i que vale 1 y decimos que mientras i
                         sea menor o igual a 50 la icrementamos en uno */
cout<<i<<endl;    /*cada vez que entre al ciclo el uno se va incrementando en  uno y lo vamos imprimiendo*/
}
cout<<"\n";
system("pause");
return 0;
  }

listas simples en c++


Ni más ni menos, es hora de empezar:
Comenzaremos con las explicaciones en pseudocodigo pero todo será
llevado a C++.
Una lista no es más que un conjunto de nodos referenciados entre sí.
¿Qué es un nodo?
Sin tantas palabras extrañas, un nodo no es más que una cajita que
almacena datos (en campos) y tiene apuntadores.
Ej:







Definiendo un poco los apuntadores: es como un campo que almacena
una dirección de memoria Ej: la dirección de tu casa, cualquiera que la
conozca puede llegar a ella.


Para crear una estructura (nodo) en
pseudocodigo utilizamos malloc (nombre de
la estructura)


Ej: Malloc (Nodo) //Esto solamente crea el
espacio de memoria


Para acceder a sus campos seria:



Nodo->nombre = “Hernán”
Nodo->edad = “Castilla”
Nodo->apellido = “18”


Por el momento no tocaremos los apuntadores.
Ni más ni menos, es hora de crear nuestra estructura (nodo) en C++:
Los ejemplos están mostrados en Dev-C++ y Code Blocks






Manos a la obra:

Con los comentarios quizás este de sobra la explicación pero bueno:
Como se puede observar para crear nuestra estructura nodo hacemos
uso de


Struct (nombre de la estructura) {
//Código...
};


En este caso creamos el nodo del ejemplo anterior.




Ya tenemos lista la estructura nodo, ahora creemos un espacio de
memoria, un nodo:


Como ya se mencionó en pseudocódigo se utiliza Malloc (nodo)
Aquí es un poco diferente:


Aquí se crea un nodo p el cual tiene los campos ya mencionados y se
les dan valores.
Con esta información ya es hora de entrar con las listas *-*:
Bueno existen varios tipos:
➔ Simples
➔ Dobles
➔ Circulares


Listas Simples:
Ya sabemos que las listas son un conjunto de nodos, estas tienen
un apuntador principal llamado cabeza (PTR).

Ej:

Describamos un poco lo que está pasando:


PTR (la cabeza) está apuntando al primer nodo, este nodo a otro nodo y
el último nodo en las listas simples y dobles apunta a Null.


El problema principal de la listas radica en cómo ligar todos nuestros
nodos de forma correcta, insertar nuevos nodos, recorrerlos y
eliminarlos sin que la lista se dañe.
Entonces las operaciones básicas con las listas simples son:
➔ Insertar por cabeza
➔ Insertar por cola
➔ Recorrer
➔ Buscar
➔ Eliminar


Insertar por cabeza:
Cuando la lista está vacía se vera de esta manera:




Es muy obvio puesto que la lista a un no contiene nodos, lo que
queremos lograr con la inserción por cabeza es que cada vez que
ingresemos un nodo en la lista siempre quede en la primera posición.


Ej:


Llevemos esto al pseudocodigo *-*:
En los ejemplos trabajaremos el campo info, pero puede ser cualquiera
como ya lo explicamos:




Explicando un poco lo que pasa en la imagen:

Creamos el nodo con Malloc (p), le ingresamos cualquier información
con


P->info = información, preguntamos si la lista está vacía, si la lista está
vacía a la cabeza le asignamos el nuevo nodo, y apuntamos el nuevo
nodo a Null (Este proceso es la primera imagen).


Si la lista no está vacía, apuntamos el nuevo nodo hacia la cabeza y
después colamos la cabeza en el nuevo nodo.


En el siguiente vídeo se explica de una manera más clara:
https://www.youtube.com/watch?v=6FEwFsA3shM



Dentro de poco les mostrare un pequeño programa en C++ pero antes
vamos a explicar el procedimiento de recorrido.




Al momento de crear nuestro nodo con Malloc (p) esto igual nos crea un
puntero del tipo nodo (hago referencia a la estructura creada), este
puntero lo podemos colocar en cualquier parte de nuestra lista.


La idea del recorrido es colocar el puntero P en nuestro primer nodo e ir
rodándolo por todos los nodos, por ser del tipo de nuestra estructura,
obtendremos acceso a todos los campos donde se encuentre el puntero.


Entonces colocar el puntero en el primer nodo están sencillo como:
P = PTR
Como podemos acceder a los campos para correrlo solo es entrar en el
apuntador del nodo y ubicarlo en esa dirección de memoria.
P = P -> apuntador


Ahora solo nos queda poner esto en un ciclo while para recorrer el
puntero hasta NULL, recordemos que nuestro último nodo apunta a
NULL entonces al acceder a su apuntador y colar a P, este quedara en
NULL (en la imagen de arriba se puede apreciar mejor).


Ej:


P = PTR
While (P != NULL) {
P = P -> apuntador;
}


Ni más ni menos hagamos un programa en C++, creemos una lista,
insertemos nodos por cabeza, démosle unos nombres y mostrémoslo
por pantalla.


Primero creemos la estructura:





Creo que con los comentarios y con lo explicado al comienzo debe estar
claro, ¿Cómo el agua del lago?


Sigamos con el ciclo principal de nuestro programa:






La única línea a explicar aquí es struct nodo *p = new nodo;


Recuerdan lo que os explique sobre el puntero el procedimiento buscar,
bueno era para esto.


Struct nodo *p // lo que hacemos aquí es crear un apuntador de esta
estructura.


P = new nodo // aquí llamamos al constructor new y le pasamos el
nombre de nuestra estructura. En pocas palabras, lo que decimos es,
crea el nodo en este apuntador de tipo nodo.


El programa terminado quedaría de la siguiente forma:






Lo que hacemos ahora es agregar el proceso de inserción por cabeza y
el proceso de recorrido, la verdad es que la sintaxis en pseudocodigo es
igual que C++ para estos dos.


Al final utilizamos system(“Comando a ejecutar”) // esto nos permite
ejecutar cualquier comando del cmd, en este caso si estas en Windows
cls si estas en Linux clear , nos sirve para limpiar la pantalla.


Aquí les dejo un video explicando todo el proceso de creación:
https://www.youtube.com/watch?v=-_S6XQyB-Jk

ejercicios en devc++

/** Crear un programa en Dev c99, que entregue los resultados de la siguiente encuesta realizada entre los posibles lectores, los cuales pueden dar uno de los siguientes
tipos de respuesta: 0: los desinteresados o abstencionista, 1: los perdidos que no saben por quien votaran, 2: los decididos o sea los de la mermelada, 3: los de las
conversaciones o beliciosos,, 4: los ex ricos o capos, 5: los de ultraderecha o fascistas, 6: los contrarios o de la total izquierda y 7: los que estan en el limbo. cada
respuesta debe ser entrada y no se sabe cuantas hay. El programa debe mostrar el porcentaje que cada tipo de respuestas representa respecto al numero total de encuestados**/

/**
Anàlisis
Salidas: Mostrar porcentaje de cada tipo de respuesta.
Entrada: Opciòn de voto.
**/

#include <iostream>
using namespace std;
float v,i,v0,v1,v2,v3,v4,v5,v6,v7=0;
float por0,por1,por2,por3,por4,por5,por6,por7=0;
int main()
{
    cout << "Digite su opcion de voto: " << endl;
    cin >> v;
    while ((v>=0)and(v<=7))
     {
         if(v==0)
         {
                 v0=v0+1;
                 }
         if(v==1)
         {
                 v1=v1+1;
                 }
         if(v==2)
         {
                 v2=v2+1;
                 }
         if(v==3)
         {
                 v3=v3+1;
                 }
         if(v==4)
         {
                 v4=v4+1;
                 }
         if(v==5)
         {
                 v5=v5+1;
                 }
         if(v==6)
         {
                 v6=v6+1;
                 }
         if(v==7)
         {
                 v7=v7+1;
                 }
         i=i+1;
         cout << "Digite su opcion de voto: " << endl;
         cin >> v;
     }
    por0=(v0/i)*100;
    por1=(v1/i)*100;
    por2=(v2/i)*100;
    por3=(v3/i)*100;
    por4=(v4/i)*100;
    por5=(v5/i)*100;
    por6=(v6/i)*100;
    por7=(v7/i)*100;
    cout << v0 <<endl;
    cout << v1 <<endl;
    cout << v2 <<endl;
    cout << v3 <<endl;
    cout << v4 <<endl;
    cout << v5 <<endl;
    cout << v6 <<endl;
    cout << v7 <<endl;
    cout << i <<endl;
    cout << "El porcentaje de votantes que eligieron la opcion 0 son: " << por0 << "%" << endl;
    cout << "El porcentaje de votantes que eligieron la opcion 1 son: " << por1 << "%" << endl;
    cout << "El porcentaje de votantes que eligieron la opcion 2 son: " << por2 << "%" << endl;
    cout << "El porcentaje de votantes que eligieron la opcion 3 son: " << por3 << "%" << endl;
    cout << "El porcentaje de votantes que eligieron la opcion 4 son: " << por4 << "%" << endl;
    cout << "El porcentaje de votantes que eligieron la opcion 5 son: " << por5 << "%" << endl;
    cout << "El porcentaje de votantes que eligieron la opcion 6 son: " << por6 << "%" << endl;
    cout << "El porcentaje de votantes que eligieron la opcion 7 son: " << por7 << "%" << endl;
    system("PAUSE");
    return 0;
}

miércoles, 19 de agosto de 2015

ejercicio sacar un promedio de devc++

Aqui aprenderemos hacer una programa que que dado un estudiante pedirle 3 notas y sacar su media (promedio) .
Bueno amigo aquí comenzaremos con nuestro programa lo primero que debemos hacer siempre es nuestra estructura, una vez ya estando en el compilador dev c++

pasos : archivo , nuevo , codigo fuente ;
incluimos las librerías, int main  ,etc





Primero que todo debemos saber que es lo que nos pide el programa , hay que analizar bien el enunciado para crear un buen algoritmo:
nos dice que debemos pedir 3 notas de un estudiante y sacar su media(promedio)
comenzaremos nuestro algoritmo sera así :

1) pedir la primera nota del estudiante (se guarda en una variable)
2) pedir la segunda nota del estudiante (se guarda en una variable)
3) pedir la tercera nota del estudiante (se guarda en una variable)

una vez ya pedida las 3 notas del estudiante procedemos hacer la operación (promedio)
quiero que tenga bien claro que el promedio va ser igual ala suma de las notas y dividirlo entre la cantidad de nota  : promedio = nota1+nota2+nota3/3
Aquí les mostrare como quedara nuestro algoritmo en DevC++:



Aqui les dejare el código en físico para  que lo prueben en su compilador :

#include<iostream>

using namespace std;

float nota1,nota2,nota3; /*demos ante todo declarar las vaiables a utlizar */
float promedio,suma;   /*float nos quiere decir que no solamente es un numero entero tambien nos puede arrojar 
                  decimales y como es promedio podemos esperar un numero con decimal*/
int main()
{
    cout<<"ingrese la primera nota del estudiante : "; /*lo que mostraremos en pantalla*/
    cin>>nota1;                                              /*guardamos la nota en esta variable*/
    cout<<"ingrese la segunda nota del estudiante : ";
    cin>>nota2;                                                
    cout<<"ingrese la tercera nota del estudiante : ";
    cin>>nota3;
    suma=nota1+nota2+nota3;              /*sumamos las notas y la guardamos en nuestra vaiable suma*/                   
    promedio=suma/3;                     /*para sacar el promedio dividimos lasuma entre 3*/
    
    cout<<"el promedio  es : "<<promedio;            /*aqui imprimimos el resultado*/
cout<<"\n";                           /*esto es un salto de linea */
system("pause");
return 0;
}

primer programa en devc++

Que Es Dev C++

Dev-C++ es un compilador y entorno de desarrollo para C/C++, Consiste en un editor de múltiples ventanas integrado con un compilador que nos permitirá una compilación, un enlace y una ejecución de aplicaciones rápida y de fácil uso.

C/C++ son lenguajes de programación, donde c++ fue creado para extender el lenguaje de programación c y así dar la posibilidad de usar manipulación de objetos.
 Dev-C++,  no usa símbolos  por eso es importante saber hacer un diagrama de flujo / algoritmo, para poder realizar bien un programa en c, c++, o cualquier programa que use lenguaje de programación con código, porque la idea sigue siendo la mismo solo cambian los símbolos por palabras restringidas en dicho lenguaje.

una vez ya dada la definicion de este compilador le daremos paso al primer programa de este, su esquema primordial es :

seleccionaremos la opción New Source file del menú File, o bien pulsaremos sobre el icono correspondiente en la barra de botones.
o bien sea archivo,nuevo,código fuente

Aparecerá la ventana del editor con el siguiente contenido:

    #include <iostream.h>
    #include <stdlib.h>


     using namespace std ;

    int main()
    {

        system("PAUSE");
        return 0;
    }


este seria nuestro esquema para comenzar a programar en DEV C++ las letras en verdes serian librerias el cual trae por defecto el programa, main lo que pertenece al programa ,system pause para que aya pausa en nuestro programa, return 0, retorna a nada.

obteniendo este les indicare a como hacer mostrar un mensaje en pantalla al ser compilado solo hacemos lo siguiente:

    #include <iostream.h>  /* librerias */
    #include <stdlib.h>


    using namespace std ;

    int main()
    {                       /* abrir llave */


 cout<<"bienvenidos al mundo de programador " ; /*escribir */
       
 system("PAUSE");                                /*darle pause a tu progrma*/
 return 0;
    }                                              /*serramos llaves*/




cout: nos quiere decir mostrar en pantalla , debemos escribir entre dos signos menores que (<<) y seguidos de dos comillas dobles el texto que deseamos mostrar finalizando ya sea con un punto y como o un endl que quiere decir los mismo un salto de linea (aclaro si desea teminar con un endl seria de la siguiente manera : cout<<"bienvenidos al mundo de programador "<<endl;) 



sumar dos numero en devc++

Aqui aprenderemos a como hacer un algoritmo que haga la  suma de  dos números  y nos arroje el resultado. en DevC++:

como habíamos dicho antes en nuestra entrada anterior primero que todo debemos formar nuestro esquema(lineas de código )fundamental ya que lo vamos a necesitar cuantas veces vallamos a hacer un programa
recordemos los pasos una vez ya dentro de nuestro compilador devc++ 
archivo,nuevo,código fuente.
ahí comenzaras hacer nuestro esquema :


antes de hacer cualquier programa debemos tener en cuneta que nos piden para poder organizar nuestro algoritmo y aplicar bien la lógica :
comenzaremos, debemos hacer todo dentro del int main () los pasos son los siguiente :
nota: variable que se vayan a utilizar se declaran antes del int main (todas las usadas deben ser declaradas )

1) una vez tengamos el esquema planteado procedemos a pedir nuestro primer numero que deseamos sumar  y eso lo hacemos con el cout (mostrar en pantalla) (aprender los signos que debe tener el código)

2) importante conoceremos un nuevo comando llamado cin (leer)  una vez pedido nuestro primer numero los guardaremos en una variable llamada a, y este comando cin (que seria asicin>>) nos leerá esa variable ej:  si escribimos  el numero dos lo que estamos haciendo es asignarle 2 a nuestra variable a  2 = a  ahora a = 2;

3) pediremos nuestro segundo numero al igual que en el anterior lo guardaremos en otra variable llamada ; ej: si escribimos  el dos ahora b = 2 ;

4) una vez tengamos nuestras dos variables ya asignadas haremos la operación se la suma tal cual como lo hacemos normalmente, aquí creamos una variable llamada suma el cual va obtener el valor de la suma de los dos números
suma = a+b ; ej: si nos basáramos en numero seria así suma = 2+2 entonces suma = 4  ese resultado queda guardado en nuestra variable suma.

5) aquí procedemos a mostrar nuestro resultado de la operación, entonces debemos usar un cout<<; para esto el cual imprimiremos la variable suma que es la que tiene nuestros resultado.

Aqui le mostrare como quedara nuestro programa planteado

Aqui obtendrán el código para que lo prueben compilandolo :


#include<iostream>

using namespace std;

int a,b,suma;

int main()
{
    cout<<"ingrese el primer numero que desea sumar : ";
    cin>>a;                                        
    cout<<"ingrese el segundo numero que desea sumar : ";
    cin>>b;                                          
    suma=a+b;                            
    cout<<"la suma es : "<<suma;      
cout<<"\n";                      
system("pause");
return 0;
}