jueves, 4 de diciembre de 2014

Arreglos Unidimensionales y Bidimensionales

Arreglo unidimensional

Un arreglo unidimensional es un tipo de datos estructurado que está formado de una colección finita y ordenada de datos del mismo tipo.Es la estructura natural para modelar listas de elementos iguales.El tipo de acceso a los arreglos unidimensionales es el acceso directo, es decir, podemos acceder a cualquier elemento del arreglo sin tener que consultar a elementos anteriores o posteriores, esto mediante el uso de un índice para cada elemento del arreglo que nos da su posición relativa.Para implementar arreglos unidimensionales se debe reservar espacio en memoria, y se debe proporcionar la dirección base del arreglo, la cota superior y la inferior.

En C++ los arreglos se declaran de la siguiente forma:

Tipodedato nombredelarreglo[tamañodelarreglo];
Como podemos ver, es similar a declarar una variable convencional, solo que se coloca entre corchetes el número de posiciones del arreglo, por lo que todas las posiciones serán del mismo tipo.
Al trabajar cada noche arreglos hacemos referencia a cada posición del arreglo a través de su número de índice, el cual comienza a partir del cero, de tal forma que para almacenar el número 10 en la posición 6 de un arreglo escribiriamos:
x[5]=10;
Parra llenar todos los elementos del arreglo es común emplear un ciclo que nos permita recorrer el arreglo desde la primera hasta la última posición, tal y como podemos ver en el siguiente ejemplo:

En este ejemplo hemos declarado un arreglo de tipo entero de 10 posiciones llamado x, observe que en el ciclo que empleamos para llenar el arreglo el contador “i” va del 0 al 9, esto es porque las posiciones de los arreglos en C++ se comienzan a numerar a partir del cero.
Después, podemos observar dos líneas en donde presentamos de forma directa el primer elemento del arreglo y el último elemento del arreglo.
Para terminar el ejemplo podemos ver un ciclo for en el que usamos printf para presentar todos los elementos del arreglo, como se puede observar cualquier operaci{on sobre el arreglo completo o sobre una sección de este, deberá hacerse a través de un ciclo for.


Arreglos bidimensionales


Son estructuras de datos que agrupan muchos datos del mismo tipo, en donde cada elemento se puede trabajar individualmente y se puede hacer referencia con un mismo nombre. Se usan para representar datos que pueden verse como una tabla con filas y columnas.

Ejemplo:

#include <stdio.h>
int main()
{
int fila, columna;
int matriz[2][2];
for(fila=0; fila<2; fila++)
for(columna=0; columna<2; columna++)
printf(“%d”, matriz[fila][columna]);
return 0;
}



Es un arreglo de dos dimensiones.Son estructuras de datos que agrupan muchos datos del mismo tipo, en donde cada elemento se puede trabajar individualmente y se puede referenciar con un mismo nombre. Se usan para representar datos que pueden verse como una tabla con filas y columnas.

Para referenciar un elemento de la matriz, debe darse un nombre de la matriz y el índice de la fila y de la columna que el elemento ocupa en dicha matriz. Es importante que los índices de las matrices tanto de las filas como de las columnas empiezan en 0 y terminan en tamaño fila-1 y tamaño columna-1 respectivamente.
A las matrices se le asignan automáticamente valores iniciales predeterminados a cada uno de sus elementos, de acuerdo a los siguientes criterios:
  • Si el tipo del arreglo es numérico, a sus elementos se les asigna el valor cero.
  • Si el tipo del arreglo es char, a sus elementos se les asigna el valor ‘\u0000′.
  • Si el tipo del arreglo es bool, a sus elementos se les asigna el valor false.
  • Si el tipo del arreglo es una clase, a sus elementos se les asigna el valor null.



Mas información en: http://www.slideshare.net/ccorreajr1/arrays-bidimensionales-y-multidimensionales-carlos-correa

lunes, 1 de diciembre de 2014

Estructuras Algorítmicas Repetitivas

Estructuras Algorítmicas Repetitivas

¿Qué es un ciclo? 



Un ciclo es el conjunto de instrucciones que se ejecuta repetidamente. Todo ciclo debe terminar luego de repetirse un número finito de veces. Dentro del conjunto de instrucciones siempre debe existir una condición de parada o fin de ciclo. En cada repetición del mismo son evaluadas las condiciones necesarias para decidir si se debe seguir ejecutando o si debe detenerse. En algunos algoritmos podemos establecer de antemano el número de veces que se debe repetir el ciclo.Aquí estudiaremos las tres estructuras algorítmicas repetitivas que ofrece el lenguaje C: for, while y do-while.





ESTRUCTURA REPETITIVA "FOR"



En esta estructura sirve para repetir un conjunto de instrucciones un número definido de veces. Esta estructura es muy similar a la estructura while. Sin embargo, se utiliza mas en aquellas instrucciones donde se conozca previamente el número de veces que se debe repetir el ciclo. Su diagrama de flujo es el siguiente: 





Existen dos tipos de variables que se utilizan frecuentemente en los ciclos. Éstas se conocen como contadores y acumuladores. Los contadores, como su nombre lo indica, sirven para contar, y los acumuladores, para acumular. Ambas variables se inician generalmente en cero antes de iniciar el ciclo, aunque este valor puede ser diferente dependiendo del problema que se vaya a resolver.

EJEMPLOS

1) Construye un diagrama de flujo y el programa correspondiente en C que, al recibir como datos los salarios de 15 profesores de una universidad, obtenga el total de la nómina.


DIAGRAMA DE FLUJO:





CÓDIGO EN C:






EJECUTANDO EL PROGRAMA:








2) Escribe un diagrama de flujo y el correspondiente programa en C que, al recibir como datos N números enteros, obtenga solamente la suma de los números positivos.

Datos: N, NUM1, NUM2,..., NUMN
Donde: N es una variable de tipo entero que representa el número de datos que se ingresan.
NUMi (1 i N) es una variable de tipo entero que representa al número i.


DIAGRAMA DE FLUJO:





CÓDIGO EN C:




EJECUTANDO EL PROGRAMA:









ESTRUCTURA REPETITIVA "WHILE"



La estructura algorítmica repetitiva while permite repetir un conjunto de instrucciones. Sin embargo, el número de veces que se debe repetir depende de las proposiciones que contenga el ciclo. Cada vez que corresponde iniciar el ciclo se evalúa una condición, si ésta es verdadera (diferente de cero) se continúa con la ejecución, de otra forma se detiene.Su diagrama de flujo es el siguiente:




Aqui PI representa la proposición inicial. Debe tener un valor verdadero (diferente de cero) inicialmente para que el ciclo se ejecute. Además, dentro del ciclo siempre debe existir un enunciado que afecte la condición, de tal forma que no se repita de manera infinita. 

EJEMPLOS


1) Construye un diagrama de flujo y el programa correspondiente en C que, al recibir como datos los pagos efectuados en el último mes, permita obtener la suma de los mismos.


DIAGRAMA DE FLUJO:





CÓDIGO EN C:





EJECUTANDO EL PROGRAMA:













2) Construye un diagrama de flujo y el programa correspondiente en C que, al recibir como datos un grupo de números naturales positivos, calcule el cuadrado de estos números. Imprima el cuadrado del número y al final la suma de los cuadrados.



DIAGRAMA DE FLUJO:






CÓDIGO EN C: 






EJECUTANDO EL PROGRAMA:













Estructura Repetitiva "do-while"



Es una estructura que se encuentra prácticamente en cualquier lenguaje de programación de alto nivel. A diferencia de las estructuras for y while, en las cuales las condiciones se evalúan al principio del ciclo, en ésta se evalúan al final. Esto quiere decir que el ciclo se debe ejecutar por lo menos una vez. La estructura es adecuada cuando no sabemos el número de veces que se debe repetir un ciclo, pero conocemos que se debe ejecutar por lo menos una vez. Es decir, se ejecuta el conjunto de instrucciones una vez, y luego cada vez que corresponde iniciar nuevamente el ciclo se evalúan las condiciones, siempre al final del conjunto de instrucciones. Si el resultado es verdadero (diferente de cero) se continúa con la ejecución, de otra forma se detiene. El diagrama de flujo es el siguiente:







P representa la condición inicial y debe tener un valor verdadero (diferente de cero) para que el conjunto de instrucciones se pueda volver a ejecutar. Siempre debe existir un enunciado dentro del ciclo que afecte la condición, para que éste no se repita de manera infinita.


EJEMPLOS

1) Escribe un diagrama de flujo y el correspondiente programa en C que, al recibir como datos los salarios de los profesores de una universidad, obtenga tanto la nómina como el promedio de los salarios.




DIAGRAMA DE FLUJO:






CÓDIGO EN C:








EJECUTANDO EL PROGRAMA:










2) Escribe un diagrama de flujo y el correspondiente programa en C que, al recibir como datos los N lanzamientos del martillo de la atleta cubana ganadora de la medalla de oro en las últimas olimpiadas celebradas en Atenas, calcule el promedio de dichos lanzamientos.



DIAGRAMA DE FLUJO:







CÓDIGO EN C:





EJECUTANDO EL PROGRAMA:












Más información en: http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=359:estructuras-de-repeticion-bucles-o-ciclos-desde-siguiente-for-next-anidamientos-cu00150a&catid=28:curso-bases-programacion-nivel-i&Itemid=59 

jueves, 27 de noviembre de 2014

Estructuras Algorítmicas Selectivas y Condicionales

Estructuras Algorítmicas Selectivas

Las estructuras lógicas selectivas se encuentran en la solución algorítmica de casi todo tipo de problemas. Estas estructuras se utilizan cuando se debe tomar una decisión en el desarrollo de la solución de un problema. La toma de decisión se basa en la evaluación de una o más condiciones que nos señalarán como consecuencia la rama a seguir.Las estructuras algorítmicas selectivas son las siguientes: if, if-else y switch.


Estructura Selectiva Simple if

La estructura selectiva if permite que el flujo del diagrama siga por un camino
específico si se cumple una condición determinada.Si al evaluar la condición el
resultado es verdadero, entonces se sigue por un camino específico y se ejecuta una operación o acción o un conjunto de ellas. Por otra parte, si el resultado de la evaluación es falso, entonces se pasa por alto esa operación. En ambos casos se continúa con la secuencia normal del diagrama de flujo. Ejemplo:




En lenguaje C, la estructura selectiva if se escribe de la siguiente forma:

/* El conjunto de instrucciones muestra la sintaxis de la
➥estructura if en el lenguaje C. */
. . .
if (<condición>)
<operación>;
. . .


Ejemplos:

Construye un diagrama de flujo y el correspondiente programa en C que, al recibir como dato el promedio de un alumno en un curso universitario, escriba aprobado en caso de que el promedio sea satisfactorio, es decir mayor o igual a 6.
Dato: PRO (variable de tipo real que representa el promedio del alumno).

DIAGRAMA DE FLUJO:




CÓDIGO EN C++:



EJECUTANDO EL PROGRAMA:



























martes, 25 de noviembre de 2014

ELEMENTOS DEL LENGUAJE DE PROGRAMACIÓN


Componentes

Un programa en C++ está definido por funciones (grupo de instrucciones que pueden o no hacer algún cálculo), donde la función principal debe ser llamada main. 
La composición general de un programa en C++ es:

  • Directivas de preprocesamiento.  
  • Declaraciones globales.  
  • Función main.  
  • Funciones definidas por el usuario.  
  • Comentarios para entender el funcionamiento del programa.


Directivas

Las directivas de preprocesamiento son definidas para que el compilador realice algo antes de compilar el programa (revisar si la sintaxis es correcta y generar un código ejecutable por la computadora), como el incluir funciones de alguna biblioteca conocida, en particular, en C la directiva para incluir bibliotecas es como las siguientes:


  • #include <iostream.h>   
     
Esta directiva permitirá utilizar la función de lectura cin y la función de escritura cout propias de C++.
  • #include <stdio.h> 
       
Esta directiva permitirá utilizar las funciones de lectura y escritura propias de C.



Declaraciones Globales


Las declaraciones globales son definiciones de variables o constantes que serán utilizadas por cualquiera de todas las funciones definidas en el programa. La sintaxis para la declaración de una variable es:                   

Tipo var1, var2,..., var3; o bien                     
Tipo var1= valor, var2,..., var3;


Función Main


La función main( ), es obligatoria en cada programa C, C++. Indica el comienzo del programa y requiere los paréntesis ( ) a continuación de main( ).

Comentarios


Los comentarios pueden escribirse utilizando alguna de las siguientes formas:
comentando en la misma línea, utiliza //, ejemplo:

int edad;   // la edad se utilizará como un valor entero.
comentando entre varias líneas, utiliza /*      */, ejemplo:

           /*   La siguiente función promedio recibe tres valores enteros
                 y calcula y regresa el promedio de los tres a través
                de un valor real */


Tipos de Datos


Los tipos de datos que maneja C++ son :

  • Enteros
Dentro de los enteros están los tipos: short, int, long, los cuales varían en rango de acuerdo al compilador que se utilice, siendo long rango mayor y short el de menor.

  • Flotantes
Dentro de los flotantes C++ tiene los tipos: float, double y long double donde al igual que los enteros varía el rango de cada uno de acuerdo al compilador que se utilice. De igual forma el float es el de menor rango siendo long double el de rango mayor.

  • Caracteres
Se utiliza el tipo char. Para representar un carácter en C++ se utilizan apóstrofes.
Ejemplos: ‘a’, ‘b’ , ‘5’

Para representar una cadena de caracteres se utilizan las comillas.
Ejemplo: “soy una cadena”



Más información en:

http://www.slideshare.net/yesid19/elementos-basicos-del-lenguaje-c


Video de como usar sintaxis,variables,tipos de datos.




















martes, 18 de noviembre de 2014

ESTRUCTURAS DE CONTROL DEL LENGUAJE DE PROGRAMACIÓN



Las estructuras de control de un lenguaje de programación se refieren al orden en que las 
instrucciones de un algoritmo se ejecutarán. El orden de ejecución de las sentencias o 
instrucciones determinán el flujo de control. Entre las estructuras básicas de control tenemos: 

  • Secuencia





  • Selección 




  • Repetición 

CONCEPTOS BÁSICOS

Un programa propio puede ser escrito utilizando las tres estructuras de control básicas. 
Un programa se define como propio si cumple lo siguiente: 

  • Posee un sólo punto de entrada y salida o fin para control del programa.
  • Existen caminos desde la entrada hasta la salida que se pueden seguir y que pasan por todas las partes del programa. 
  • Todas las instrucciones son ejecutadas y no existen lazos o bucles infinitos. 



Más información en: 


http://flanagan.ugr.es/docencia/2010-2011/atdi/apuntes/Tema2.C.Control.pdf

jueves, 16 de octubre de 2014

Estructuras Algorítmicas(Secuenciales,Condicionales,Cíclicas)

Las estructuras de operación de programas permiten realizar ciertos procesos específicos y su finalidad es la solución a un problema o problemas.

Estas estructuras se clasifican de acuerdo con su complejidad en: Secuenciales,Condicionales y Cíclicas





SENTENCIAS SECUENCIALES

Una sentencia secuencial es aquella en la que una acción o instrucción sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. 



TIPOS DE SENTENCIAS SECUENCIALES

  • Asignación

Consiste en el paso de valores o resultados a una zona de la memoria que será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma:

Simples: Consiste en pasar un valor a una variable (x=4)

Contador: Consiste en usarla como un verificador del número de veces que se realiza un proceso (x=x+2)

Acumulador: Consiste en usarla como un sumador en un proceso (x=x+y)

De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (x=y-z*10/100)



Lectura:

Consiste en recibir desde un dispositivo de entrada, como el teclado, un valor. Esta operación se representa en un pseudocódigo como sigue:

Leer a, b

Donde “a” y “b” son las variables que recibirán los valores

Escritura:

Consiste en mandar por un dispositivo de salida, ejemplo un monitor o impresora, un resultado o mensaje. Este proceso se representa en un pseudocódigo como sigue:

Escribe “El resultado es:”, R

Donde “El resultado es:” es un mensaje que se desea aparezca y R es una variable que contiene un valor



EJEMPLO

Una tienda ofrece el 15% de descuento sobre el total de la compra y un cliente desea saber cuanto deberra pagar finalmente por su compra.

Solución:

Paso 1: Definimos el problema

Saber cual es la cifra total a pagar con el 15% de descuento

Paso 2: Planeación de la solución

Datos de entrada: Valor de las compras
Datos de salida: Valor de la compra menos el 15% del valor inicial de la compra
Datos adicionales: descuento del 15%

Paso 3: Desarrollo del algoritmo con su respectivo pseudocódigo 

Algoritmo



Pseudocódigo


Inicio
         Entero A
         Leer A
         X = A-((A*15)/100)
         Imprimir X
Fin



Pruebas de escritorio: es el modo más normal de comprobar un algoritmo mediante su ejecución manual, usando datos significativos que abarquen todo el posible rango de valores y anotando en una hoja de papel las modificaciones que se den estos datos y en los del resto del algoritmo, en las diferentes fases hasta la obtención de los resultados.







SENTENCIAS CONDICIONALES

Son programas que se utilizan para tomar decisiones, también se denominan estructuras de desición o alternativas. Aqui se evalúa una o varias condiciones cuyo resultado sera una opción u otra, para lo cual es necesario establecer una pregunta para determinar si la accion se realiza o no.

  • Alternativas Simples
Se representa por si-entonces. Su efecto es el de ejecutar una determinada acción cuando se cumple una cierta condición y en caso contrario seguir el orden secuencial,Si es verdadera, entonces ejecuta una o varias acciones, si es falsa, entonces no hace nada y sigue la ejecución normal del programa, pasando a la instrucción siguiente o  finaliza la estructura selectiva.

EJEMPLO

Determinar si un alumno aprueba el curso, sabiendo que aprobará si su promedio de tres calificaciones e mayor o igual a 7.


Solución:

Paso 1: Definimos el problema

El estudiante aprueba el curso si su promedio es mayor o igual que 7

Paso 2: Planeación de la solución

Datos de entrada: Notas del estudiante
Datos de salida: Promedio del estudiante con el mensaje si aprueba o no
Datos adicionales: Promedio de las tres notas 

Paso 3: Desarrollo del algoritmo con su respectivo pseudocódigo 

Algoritmo



Pseudocódigo

INICIO

              Reales Nota1, Nota2, Nota3, Promedio;
              Imprimir “Ingrese la Nota 1”;
              Leer Nota1;
              Imprimir “Ingrese la Nota 2”
              Leer Nota2;
              Imprimir “Ingrese la Nota 3”
              Leer Nota3;
              Promedio = (Nota1+Nota2+Nota3)/3;
              Si (Promedio>=7) Entonces
                        Imprimir “Aprueba e curso con un promedio igual a: “;
                        Imprimir Promedio;
              Fin Si
FIN


Paso 4: Comprobación del algoritmo

Pruebas de escritorio





  • Condicionales Dobles

Si una condición es verdadera, se ejecuta la acción o las acciones S1, y si es falsa, se
ejecuta la acción 1 ó acción 2, pasando en cualquier caso a la instrucción siguiente
a la finalización de la estructura selectiva.


EJEMPLO

Construir un algoritmo que al recibir como dato el precio de un producto importado, incremente 11% el mismo si es inferior o igual a $1500 y el 8% si fuera mayor o a dicho precio, además escriba el nuevo precio del producto

Solución:

Paso 1: Definimos el problema

Si el producto es importado incrementa el 11% y si es inferior o igual a $1500 aumenta el 8%

Paso 2: Planeación de la solución

Datos de entrada: Precio del producto
Datos de salida: Precio del producto con su impuesto
Datos adicionales: Impuesto del producto

Paso 3: Desarrollo del algoritmo con su respectivo pseudocódigo 

Algoritmo




Pseudocódigo

INICIO
            Reales: CostoProducto;
            Escribir "Ingrese el costo de producto“
            Leer CostoProducto
            Si (CostoProducto<1500) Entonces
                       CostoTotal=CostoProducto+0.11*CostoProducto
            Si no
                       CostoTotal=CostoProducto+0.0.08*CostoProducto
            Fin Si
            Imprimir "El costo del producto es", CostoTotal
FIN

Paso 4: Comprobación del algoritmo

Pruebas de escritorio









Mas información en :

http://www.infor.uva.es/~jvegas/cursos/prog/tema4.html