Lenguaje de Programacion
Lenguaje de Programacion II por Ana Haro  
  Inicio
  Introduccion a la estructura de datos
  Arreglos unidimencionales
  Recursividad
  Estructuras basicas de la informacion
  Asignacion secuencial y ligada
  Listas circulares y de doble liga
  Ordenacion por intercambio
  Ordenacion por seleccion
  Ordenacion por insercion
  Ordenaciones mejoradas
  Busqueda binaria
  Arboles
  Recorido de arboles binarios
  Representacion binaria de arboles
  Bibliografía
  Videos
Arreglos unidimencionales
ARREGLOS UNIDIMENSIONALES
 
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.
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.
Ejemplos
1. Diseñar un algoritmo que ingrese 30 notas aprobados y que me muestre la nota mayor y el promedio de todas (Nota>=10.5 y Nota<=20)
Solución :
Inicio
nota[30], s, may, p : real
i : entero
s←0
para (i=1; i<=30; i++)
repetir
Ingresar nota [i]
hasta (nota[i]>=10.5) y (nota[i]<=20)
s ← s + nota[i]
si (i=1) entonces
may ← nota[i]
sino
si (nota[i]>may) entonces
may ← nota[i]
fin _ si
fin _ si
fin _ para
p ← s/30
mostrar "PROMEDIO TOTAL ES",p
mostrar "LA NOTA MAYOR ES",may
Fin
2. Ingresar 30 valores cualesquiera y determinar cuantos de estos valores son iguales al promedio de los 30 valores ingresados anteriormente.
Solución :
Inicio
num[30], i, s ß 0, c ß 0 : entero
p : real
para(i=1;i<=30;i++)
Ingresar num[i]
S ß s + num[i]
fin_para
p ß s/30
para(i=1;i<=30;i++)
si (p=num[i]) entonces
cß c+1
fin_si
fin_para
mostrar "Números Iguales al promedio",c
Fin
ARREGLOS EN LENGUAJE C
 
Arreglos y cadenas
Las cadenas se consideran como un arreglo de tipo char.
5.1 Arreglos unidimensionales y multidimensionales
Los arreglos son una colección de variables del mismo tipo que se referencian utilizando un nombre común. Un arreglo consta de posiciones de memoria contigua. La dirección más baja corresponde al primer elemento y la más alta al último. Un arreglo puede tener una o varias dimensiones. Para acceder a un elemento en particular de un arreglo se usa un índice.
El formato para declarar un arreglo unidimensional es:
tipo nombre_arr [ tamaño ]
Por ejemplo, para declarar un arreglo de enteros llamado listanum con diez elementos se hace de la siguiente forma:
int listanum[10];
En C, todos los arreglos usan cero como índice para el primer elemento. Por tanto, el ejemplo anterior declara un arreglo de enteros con diez elementos desde listanum[0] hasta listanum[9].
La forma como pueden ser accesados los elementos de un arreglo, es de la siguiente forma:
listanum[2] = 15; /* Asigna 15 al 3er elemento del arreglo listanum*/
num = listanum[2]; /* Asigna el contenido del 3er elemento a la variable num */
El lenguaje C no realiza comprobación de contornos en los arreglos. En el caso de que sobrepase el final durante una operación de asignación, entonces se asignarán valores a otra variable o a un trozo del código, esto es, si se dimensiona un arreglo de tamaño N, se puede referenciar el arreglo por encima de N sin provocar ningún mensaje de error en tiempo de compilación o ejecución, incluso aunque probablemente se provoque el fallo del programa. Como programador se es responsable de asegurar que todos los arreglos sean lo suficientemente grandes para guardar lo que pondrá en ellos el programa.
C permite arreglos con más de una dimensión , el formato general es:
tipo nombre_arr [ tam1 ][ tam2 ] … [ tamN];
Por ejemplo un arreglo de enteros bidimensionales se escribirá como:
int tabladenums[50][50];
Observar que para declarar cada dimensión lleva sus propios paréntesis cuadrados.
Para acceder los elementos se procede de forma similar al ejemplo del arreglo unidimensional, esto es,
tabladenums[2][3] = 15; /* Asigna 15 al elemento de la 3ª fila y la 4ª columna*/
num = tabladenums[25][16];
A continuación se muestra un ejemplo que asigna al primer elemento de un arreglo bidimensional cero, al siguiente 1, y así sucesivamente.
main()
{
    int t,i,num[3][4];
    for(t=0; t<3; ++t)
        for(i=0; i<4; ++i)
            num[t][i]=(t*4)+i*1;
    for(t=0; t<3; ++t)

   
            for(i=0; i<4; ++i)    {
            printf(“num[%d][%d]=%d “, t,i,num[t][i]);       

            printf(“n”);
    }

}

 
En C se permite la inicialización de arreglos, debiendo seguir el siguiente formato:
tipo nombre_arr[ tam1 ][ tam2 ] … [ tamN] = {lista-valores};
Por ejemplo:
int i[10] = {1,2,3,4,5,6,7,8,9,10};
int num[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
5.2 Cadenas
A diferencia de otros lenguajes de programación que emplean un tipo denominado cadena string para manipular un conjunto de simbolos, en C, se debe simular mediante un arreglo de caracteres, en donde la terminación de la cadena se debe indicar con nulo. Un nulo se especifica como ‘′. Por lo anterior, cuando se declare un arreglo de caracteres se debe considerar un carácter adicional a la cadena más larga que se vaya a guardar. Por ejemplo, si se quiere declarar un arreglo cadena que guarde una cadena de diez caracteres, se hará como:
char cadena[11];
Se pueden hacer también inicializaciones de arreglos de caracteres en donde automáticamente C asigna el caracter nulo al final de la cadena, de la siguiente forma:
char nombre_arr[ tam ]=“cadena”;
Por ejemplo, el siguiente fragmento inicializa cadena con ``hola’‘:
char cadena[5]=“hola”;
El código anterior es equivalente a:
char cadena[5]={’h’,’o’,’l’,’a’,’′};
Para asignar la entrada estándar a una cadena se puede usar la función scanf con la opción %s (observar que no se requiere usar el operador &), de igual forma para mostrarlo en la salida estándar.
Por ejemplo:
main()
{
    char nombre[15], apellidos[30];
     printf(“Introduce tu nombre: “);
    scanf(“%s”,nombre);
    printf(“Introduce tus apellidos: “);
    scanf(“%s”,apellidos);
     printf(“Usted es sn”,nombre,apellidos);

}

 
El lenguaje C no maneja cadenas de caracteres, como se hace con enteros o flotantes, por lo que lo siguiente no es válido:
main()
{
    char nombre[40], apellidos[40], completo[80];
    nombre=“José María”;                /* Ilegal */
         apellidos=“Morelos y Pavón”;        /* Ilegal */
         completo=“Gral.”+nombre+appellidos; /* Ilegal */

}

 
 
Areglo unidimensional, 10 pociciones, capturar e imprimir
 
Main(
Int num[10], i;
   For(i=0; imayor10; i++)
Cout mayormayor “dame el valor de la posicion: ”mayormayornum[i]mayormayor”n”;
Cin mayormayor num[i];
Clrscr();
 
For(i=0; imayor10; i++)
Cout mayormayor num[i];
 
Return 0;
)
Hoy habia 1 visitantes (1 clics a subpáginas) ¡Aqui en esta página!
Hora  
   
unidep.prog2@hotmail.com  
   
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis