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