lunes, 12 de marzo de 2018

Practicas con ciclos

1.Tablas de multiplicar del 1 al 10:
/*"el programa da las tablas de multiplicar del 1 al 10*/

#include<stdio.h>

main()

{
int multiplicando=1;
int multiplicador=1;
int resultado;

printf("\n **********Tablas de multiplicar**********");

while (multiplicando<=10)

{

while (multiplicador<=10)

{

resultado = multiplicando * multiplicador;

printf("\n %d",multiplicando);
printf(" * %d",multiplicador);
printf(" = %d",resultado);
multiplicador = multiplicador + 1 ;
}

multiplicando = multiplicando + 1 ;
}

return 0;

}


2. Programa que imprime los números pares entre el 1 y el 100:
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
            int x;
           
            for (x=1;x<=100;x++)
            {
        if (x%2==0)
        {
           printf("%d\n",x);
        }
    }
           
    system("PAUSE");     
    return 0;

}

3. Programa que imprime los números impares dentro del 1 y el 100:


#include <stdio.h>
#include <stdlib.h>

int main(void)
{
            int x;
           
            for (x=1;x<=100;x++)
            {
        if (x%2!=0)
        {
           printf("%d\n",x);
        }
    }
           
    system("PAUSE");     
    return 0;

}
4.Programa que imprime la tabla de multiplicar solicitada por el usuario:
5.Programa que solicite 2 números; el primero menor que el segundo e imprima la suma de los cuadrados de todos los números desde el primero hasta el segundo


viernes, 9 de marzo de 2018

Ciclos en c++

Ciclos en c++


Ciclo While en C++:

La sintaxis de un ciclo while es incluso más simple y "legible" que la del ciclo for en C++, pues simplemente requerimos tener clara una condición de parada. En realidad, en la mayoría de los lenguajes de alto nivel la manera de escribir un ciclo while (la sintáxis) es incluso muy similar, así que con tan solo tener bien clara una condición de finalización para el ciclo tendremos prácticamente todo hecho.
while(condición de finalización) //por ejemplo numero == 100
{
....
....
Bloque de Instrucciones....
.... .... }
Vamos entonces a ver línea por línea el anterior código para comprender todo y quedar claros. Posteriormente veremos el ejemplo planteado anteriormente y su solución.

Línea 1:

En esta línea está prácticamente todo lo esencial de un ciclo while. La sintaxis es bastante simple. Tenemos al interior de los paréntesis una condición cualquiera, es decir por ejemplo "==. >, <, >=, <=, !=" o algunas mas que se nos puedan ocurrir, esta condición que especifiquemos allí, es la que permitirá que el ciclo se siga ejecutando hasta que en algún momento esta misma condición deje de cumplirse, de esta forma si por ejemplo estamos verificando que un numero_cualquiera == 50, el ciclo se ejecutara solo cuando numero_cualquiera sea igual a 50, en cuanto su valor cambie a cualquier otro el ciclo while finalizara y continuara con el resto de la ejecución del programa. De esta forma, es evidente que la condición que allí ingresemos siempre deberá tomar un valor booleano (true o false).

Línea 2:

En la línea 2 tenemos una llave abriendo "{" lo cual como sabemos indica que allí comienza un bloque de instrucciones que se ejecutaran cada vez que el ciclo de un "giro". Esta llave no es del todo obligatoria, sin embargo si no la ponemos solo se ejecutara dentro de nuestro ciclo while la primera línea inmediatamente posterior a la declaración del ciclo, de modo que si deseamos que se ejecuten varias líneas dentro de nuestro ciclo, debemos usar las llaves

Línea 3 a 7:

En estas líneas es donde estarán todas las operaciones que queramos llevar a cabo de manera iterativa durante la ejecución del ciclo, este bloque podrá tener la cantidad de líneas necesarias incluso, como veremos más adelante dentro de estas podría haber uno o más ciclos, así que podrías tener todo un programa dentro de un ciclo.

Línea 8:

En esta última línea hacemos uso de la llave cerrando "}", una vez más como seguramente ya debemos saber esta nos indica que allí termina el bloque del ciclo while y se dará por terminada la ejecución de este para continuar ejecutando el resto del algoritmo.

//Con la sentencia WHILE:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
            int x;
           
            for (x=1;x<=100;x++)
            {
        if (x%2!=0)
        {
           printf("%d\n",x);
        }
    }
           
    system("PAUSE");     
    return 0;
}


Ciclo Do-While

un ciclo do-while, es una estructura de control cíclica que permite ejecutar de manera repetitiva un bloque de instrucciones sin evaluar de forma inmediata una condición especifica, sino evaluándola justo después de ejecutar por primera vez el bloque de instrucciones.
La sintaxis de un ciclo do-while es un tanto más larga que la del ciclo while en C++, sin embargo no se hace más complicado, de hecho con tan solo tener bien clara una condición de finalización para el ciclo tendremos prácticamente todo terminado.
do
{
....
....
Bloque de Instrucciones....
.... .... }
while(condición de finalización); //por ejemplo numero != 23
Vamos entonces a ver línea por línea el anterior código para comprender todo y quedar claros. Posteriormente veremos el ejemplo planteado anteriormente y su solución.

Línea 1:

Esta línea es por decirlo así, la parte novedosa del ciclo do-while, esta expresión no evalúa ninguna condición ni nada, simplemente da paso directo al bloque de instrucción y luego permite la evaluación de la condición.

Línea 2:

En la línea 2 tenemos una llave abriendo "{" lo cual como sabemos indica que allí comienza un bloque de instrucciones que se ejecutaran cada vez que el ciclo de un "giro". Esta llave no es del todo obligatoria, sin embargo si no la ponemos solo se ejecutará dentro de nuestro ciclo la primera línea inmediatamente posterior a la instrucción do, de modo que si deseamos que se ejecuten varias líneas dentro de nuestro ciclo, debemos usar las llaves. En lo personal, es preferible poner siempre las llaves sin importar cuantas líneas se vayan a ejecutar, es una buena práctica de programación y te puede evitar dolores de cabeza

Línea 3 a 7:

En estas líneas es donde estarán todas las operaciones que queramos llevar a cabo de manera iterativa durante la ejecución del ciclo, este bloque podrá tener la cantidad de líneas necesarias incluso, como veremos más adelante dentro de estas podría haber uno o más ciclos, así que podrías tener todo un programa dentro de un ciclo.

Línea 8:

En esta última línea hacemos uso de la llave cerrando "}", una vez más como seguramente ya debemos saber esta nos indica que allí termina el bloque de instrucciones que se ejecutarán de manera cíclica y se dará por terminada la ejecución de este para continuar ejecutando el resto del algoritmo.

Línea 9:

La línea 9 en el ciclo do-while, tiene la misma importancia y función que l alinea 1 en la sección del ciclo while, cabe resaltar que simplemente evalúa la condición y define si se cumple o no para seguir con la ejecución del ciclo o con la del resto del algoritmo, de este modo podemos ver que el ciclo while y el do-while son muy similares, con la pequeña diferencia en que en uno se evalúa la condición desde el principio y en la otra al final de cada ciclo.

//Con la sentencia DO-WHILE:
/*"el programa da las tablas de multiplicar del 1 al 10*/

#include<stdio.h>

main()

{
int multiplicando=1;
int multiplicador=1;
int resultado;

printf("\n **********Tablas de multiplicar**********");

while (multiplicando<=10)

{

while (multiplicador<=10)

{

resultado = multiplicando * multiplicador;

printf("\n %d",multiplicando);
printf(" * %d",multiplicador);
printf(" = %d",resultado);
multiplicador = multiplicador + 1 ;
}

multiplicando = multiplicando + 1 ;
}

return 0;

}

Ciclo For:

 Un ciclo for es una estructura de control iterativa, que nos permite ejecutar de manera repetitiva un bloque de instrucciones, conociendo previamente un valor de inicio, un tamaño de paso y un valor final para el ciclo.

La sintaxis de un ciclo for es simple en C++, en realidad en la mayoría de los lenguajes de alto nivel es incluso muy similar, de hecho, con tan solo tener bien claros los 3 componentes del ciclo for (inicio, final y tamaño de paso) tenemos prácticamente todo hecho
for(int i = valor inicial; i <= valor final; i = i + paso)
{ .... ....
Bloque de Instrucciones....
.... .... }
Vamos ahora a ver línea por línea el anterior código para comprender todo y quedar claros. Posteriormente veremos un ejemplo con valores reales.

Línea 1:

En esta línea está prácticamente todo lo esencial de un ciclo for. La sintaxis es simple, tenemos una variable de control llamada i que es tipo entero (int), cabe notar que la variable se puede llamar como nosotros lo deseemos y puede ser del tipo de queramos también, sin embargo en la mayoría de los casos se usa la "i" como nombre y el entero como tipo, pero somos libres de modificar esto a nuestro gusto. Esta variable "i" se le asigna un valor inicial que puede ser cualquier número correspondiente al tipo de dato asignado. Posteriormente lo que haremos será especificar hasta donde irá nuestro ciclo por medio del valor final, ten en cuenta que cada uno de estos componentes es separado por un punto y coma ";", también es importante saber que la condición final puede ser cualquier cosa, mayor, menor, mayor o igual, menor o igual, sin embargo no tiene sentido que la condición sea por ejemplo un igual, pues nuestra variable de control siempre va a cambiar entre valores, menores o mayores que el valor final deseado, si fuera un igual no tendríamos un error de sintaxis, pero nuestro for básicamente no haría nada de nada. Finalmente el ultimo componente de esta primer línea es el tamaño del paso, este componente se especifica aumentando en la cantidad deseada la variable de control.

Línea 2:

En la línea 2 tenemos una llave abriendo "{" lo cual como seguramente ya sabrás indica que allí comienza el bloque de instrucciones que se ejecutaran cada vez que el ciclo de un "giro". Esta llave no es del todo obligatoria, sin embargo si no la ponemos solo se ejecutara dentro de nuestro ciclo la primera línea inmediatamente posterior a la declaración del ciclo, de modo que si deseamos que se ejecuten varias líneas dentro de nuestro ciclo, debemos usar las llaves

Línea 3 a 7:

En estas líneas es donde estarán todas las operaciones que queramos llevar a cabo de manera iterativa durante la ejecución del ciclo, este bloque podrá tener la cantidad de líneas necesarias incluso, como veremos más adelante dentro de estas podría haber uno o más ciclos, así que podrías tener todo un programa dentro de un ciclo.

Línea 8:

En esta última línea hacemos uso de la llave cerrando "}", una vez más como seguramente ya sabrás esta nos indica que allí termina el bloque del ciclo for y se dará por terminada la ejecución de este para continuar ejecutando el resto del algoritmo.
//Con la sentencia FOR:



lunes, 5 de marzo de 2018

Estructura de un programa C++

Programa C++

¿Qué es C++?

Es un lenguaje de programación multiparadigma, puesto que permite programar de manera imperativa, orientada a objetos o genérica.

Es un lenguaje nacido a principios de los años 80, pero que ha ido adquiriendo popularidad a finales de esa década y a principios de la década de los 90, puesto que ha sido el lenguaje favorito para la creación de aplicaciones de escritorio, ofimática y de juegos, tipos de aplicaciones muy populares en esa época.

¿Cuál es la estructura de un programa en C++?

Estructura básica #include <iostream.h> Instrucciones declarativas #include <stdlib.h> [declaración de variables globales] int main() Función Principal { Aquí inicia el programa Cuerpo del programa(Instrucciones ) } Aquí finaliza el programa
3. Estructura básica Un programa en C++ se caracteriza por tener en su código una cabecera indispensable: main( ) #include ------ Archivo de cabecera [declaración de variables globales] int main ( ) ------ Cabecera de función, nombre de la función { … ------ Sentencias de la función. } tipo func1( ) { … } tipo func2( ) { … }
4. Archivo de cabecera • #include <librería_solicitada> • La parte del #include se refiere a la biblioteca de funciones que vamos a utilizar. Es decir para llamar a una biblioteca en particular debemos hacer lo siguiente: • #include <librería_solicitada> • El estándar de C++ incluye varias bibliotecas de funciones, y dependiendo del compilador que se esté usando, puede aumentar el número.
5. Archivo de cabecera • Existen archivos de cabecera estándar muy utilizados, por ejemplo: #include<iostream.h> contiene las funciones de ingresar y mostrar datos. #include<math.h> contiene las funciones matemáticas comunes. #include<time.h> contiene las funciones para tratamiento y conversión entre formatos de fecha y hora. #include<conio.h>: contiene los prototipos de las funciones, macros, y constantes para preparar y manipular la consola en modo texto en el entorno de MS-DOS®.
6. Archivo de cabecera #include<stdio.h>: contiene los prototipos de las funciones, macros, y tipos para manipular datos de entrada y salida. #include<stdlib.h>: contiene tipos, macros y funciones para la conversión numérica, generación de números aleatorios, búsquedas y ordenación, gestión de memoria y tareas similares. #include<string.h>: contiene los prototipos de las funciones y macros de clasificación de caracteres.
7. Declaración de variables globales • Una variable es un espacio reservado en el ordenador para contener valores que pueden cambiar durante la ejecución de un programa. • Los tipos determinan cómo se manipulará la información contenida en esas variables. • El tipo nos dice a nosotros y al compilador cómo debe interpretarse y manipularse la información binaria almacenada en la memoria de un ordenador.
8. Declaración de variables globales • Una variable global es aquella que se define fuera del cuerpo de cualquier función, normalmente al principio del programa, después de la definición de los archivos de biblioteca (#include), de la definición de constantes simbólicas y antes de cualquier función. El ámbito de una variable global son todas las funciones que componen el programa, cualquier función puede acceder a dichas variables para leer y escribir en ellas. Es decir, se puede hacer referencia a su dirección de memoria en cualquier parte del programa.
9. Cabecera de función • Una funcion es un conjunto de instrcciones que se la puede llamar desde el programa principal o desde otras funciones. • Todo programa en C++ comienza con una función main(), y sólo puede haber una. • Los paréntesis que le siguen contienen lo que se le va a mandar a la función. • En caso de colocarla palabra “void”, que significa vacío, se esta indicando que a la función main no se le está mandando nada, podría omitirse el void dentro de los paréntesis, el compilador asume que no se enviará nada. La llave que se abre significa que se iniciará un bloque de instrucciones.
10. Cabecera de función • Sintaxis para la declaración de una función: • Prototipo de función nombre de la función ( parámetros ); • Prototipo de la función: sirve para indicar que va a retornar la función, si va a retornar un entero, un double, un char, o simplemente no retorna nada ( void ). Esto es obligatorio • Parametros: son los datos que le enviamos a la funcion para que con ellos posiblemente desarrolle algo que necesitemos. Esto es opcional. • Ejemplo: • void ingresar(); • int suma_enteros ( int, int ); • float suma_numeros ( float, float );
11. Cuerpo del programa(Instrucciones ) • La definición del cuerpo de la función está formada por un bloque de sentencias o instrucciones, que esta encerrado entre llaves { }. • Las sentencias, también llamadas instrucciones: • a) definen la lógica de un programa o subprograma (subrutina), • b) manipulan los datos para producir el resultado deseado por el usuario del programa
12. Cuerpo del programa(Instrucciones ) • Instrucciones declarativas: Sirven para declarar librerias, variables, constantes, arreglos , punteros, estructuras… • Ejemplo: • #include <time.h> • short contador • Instrucciones de asignación: Sirven para dar valores a las variables, y llevan éste formato: • nombre_variable = expresión ; • Ejemplo: • x = a + 5
13. Cuerpo del programa(Instrucciones ) • Instrucciones repetitivas: Sirven para repetir una condición N veces, siempre y cuando la condición sea verdadera. • Instrucciones de entrada y salida de datos: El lenguaje C++ no tiene palabras reservadas para ingresar o mostrar datos, para ello usan recursos que se encuentran en las librerías. • Instrucciones selectivas: Son mediante las cuales podemos ejecutar diferentes acciones, como resultado de una expresión que estemos evaluando en ese momento y pueden ser: – Las selectivas simples – Las selectivas dobles – Las selectivas múltiples
14. tipo func1( ) • Las funciones deben declararse. • Una definición contiene además las instrucciones con las que la función realizará su trabajo, es decir, su código. • La sintaxis de una definición de función es: • [extern|static] <tipo_valor_retorno> <identificador> (<lista_parámetros>) { [sentencias] } • El identificador de la función. Es el nombre de la función. • Una lista de declaraciones de parámetros entre paréntesis. Los parámetros de una función son los valores de entrada (y en ocasiones también de salida).
15. tipo func1( ) • Opcionalmente, una palabra que especifique el tipo de almacenamiento, puede ser extern o static. • El tipo del valor de retorno, si no se establece, será int por defecto, aunque en general se considera una mala técnica de programación omitir el tipo de valor de retorno de una función.

¿Qué es la programación modular?
Uno de los métodos más conocidos para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. De esta manera, en lugar de resolver una tarea compleja y tediosa, resolvemos otras más sencillas y a partir de ellas llegamos a la solución. Esta técnica se usa mucho en programación ya que programar no es más que resolver problemas, y se le suele llamar diseño descendente, metodología del divide y vencerás o programación top-down.

Es evidente que si esta metodología nos lleva a tratar con subproblemas, entonces también tengamos la necesidad de poder crear y trabajar con subprogramas para resolverlos. A estos subprogramas se les suele llamar módulos, de ahí viene el nombre de programación modular. En Pascal disponemos de dos tipos de módulos: los procedimientos y las funciones.


¿Qué es una libreria?

En informática, una biblioteca (del inglés library) es un conjunto de implementaciones funcionales, codificadas en un lenguaje de programación, que ofrece una interfaz bien definida para la funcionalidad que se invoca.
A diferencia de un programa ejecutable, el comportamiento que implementa una biblioteca no espera ser utilizada de forma autónoma (un programa sí: tiene un punto de entrada principal), sino que su fin es ser utilizada por otros programas, independientes y de forma simultánea. Por otra parte, el comportamiento de una biblioteca no tiene por qué diferenciarse demasiado del que pudiera especificarse en un programa. Es más, unas bibliotecas pueden requerir de otras para funcionar, pues el comportamiento que definen refina, o altera, el comportamiento de la biblioteca original; o bien la hace disponible para otra tecnología o lenguaje de programación.
Las bibliotecas pueden vincularse a un programa (o a otra biblioteca) en distintos puntos del desarrollo o la ejecución, según el tipo de vínculo que se quiera establecer, tal y como se detalla en el apartado de "Tipos".
La mayoría de los sistemas operativos modernos proporcionan bibliotecas que implementan los servicios del sistema. De esta manera, estos servicios se han convertido en una "materia prima" que cualquier aplicación moderna espera que el sistema operativo ofrezca. Como tal, la mayor parte del código utilizado por las aplicaciones modernas se ofrece en estas bibliotecas.


¿Es una función un módulo de código?
¿Qué es un módulo?

El cuarto elemento fundamental de nuestro viaje por la programación está representado por la programación modular. En realidad, esta técnica no es estrictamente necesaria ya que con lo que hemos visto hasta ahora podés crear programas interesantes y útiles. Sin embargo, cuando los programas se vuelven más complejos y más extensos, se hace más difícil rastrear los errores y analizar su funcionalidad. Con este fin necesitamos disponer de una técnica que nos permita concentrarnos realmente en los problemas que debemos resolver con nuestro programa y abstraernos de los detalles particulares y de la parafernalia técnica que hace funcionar a la computadora. De algún modo esta tarea la cumplen Python, BASIC, etc. ya que con sus funciones incorporadas y predeterminadas evitan que nosotros debamos tratar directamente con el hardware de la computadora para realizar diversas tareas típicas como leer un archivo, comprobar que una tecla se ha presionado, etc.
El objetivo de la programación modular es extender las capacidades predeterminadas de un lenguaje mediante porciones de código empacadas en diferentes módulos, los cuales pueden ser fácilmente insertados en nuestros programas. La primera forma de programación modular fue la subrutina que era un bloque de código al cual se podía saltar (similar a la instrucción GOTO que hemos mencionado antes) y una vez ejecutado el bloque, el programa devolvía el control a la instrucción siguiente a la que había producido la llamada. Esta técnica modular se conoce con el nombre de procedimiento o función. En Python y en otros lenguajes, el término módulo tiene un significado especial que explicaremos más adelante; mientras tanto veamos más en detalle las funciones.
La utilización de funciones
Antes de analizar cómo crear una función veamos cómo se utilizan las diversas funciones predeterminadas que vienen incorporadas en cualquier lenguaje de programación (conocidas en general comobibliotecas).
Ya hemos utilizado varias funciones y hemos listado otras en la sección dedicada a los operadores. Ahora veremos qué tienen en común todas ellas y cómo podemos utilizarlas en nuestros programas.