Vous êtes sur la page 1sur 8

PROGRAMA NACIONAL DE FORMACIN

INGENIERIA DE SISTEMAS INTEGRADO E INFORMTICA

UNIDAD CURRICULAR: INTRODUCCIN A LA PROGRAMACIN I Trayecto II trimestre Aldea: Simn Rodrguez Coro Falcn

Arreglos en C
Un arreglo es un conjunto de celdas de memoria relacionadas entre si ya que todos tienen el mismo nombre y almacenan el mismo tipo de datos para referirse a una celda en particular algn elemento dentro del arreglo y entre corchetes [] el numero de posicin del elemento dentro del arreglo. El primer elemento se almacena en la posicin 0 del arreglo, es decir el primer elemento del arreglo se conoce como a[0], el segundo como a[1], el sptimo como a[6] y en general el elemento de orden i del arreglo a se conoce como a[i-1]. El nmero de posicin que aparece dentro de los corchetes se conoce como ndice y debe ser un nmero entero o una expresin entera, por ejemplo:
printf ("%i", a[0]+a[5]+a[10]); x=a[7]/2; x=a[4]=12;

Para declarar un arreglo se emplea la siguiente sintaxis:


tipo_de_dato nombre_del_arreglo [nmero de elementos]; int a[12]; float f[10]; char nom_emp [30];

Ejemplo:
#include <stdio.h> #include <conio.h> #define MAX 12 void main(){ int a[MAX], b[MAX], c[MAX], i, j=0, k=0; clrscr(); printf ("Programa que almacena 12 numeros en un arreglo "); printf ("y luego los separa en dos de acuerdo a su valor.\n"); for (i=0; i < MAX; i++){ printf ("Introduce el valor %i: ", i+1);

Ing. Oswald Barreto - correo: oswaldkev@gmail.com

PROGRAMA NACIONAL DE FORMACIN


INGENIERIA DE SISTEMAS INTEGRADO E INFORMTICA

UNIDAD CURRICULAR: INTRODUCCIN A LA PROGRAMACIN I Trayecto II trimestre Aldea: Simn Rodrguez Coro Falcn
} scanf ("%i", &a[i]);

for (i=0; i < MAX; i++) if (a[i] < MAX){ b[j] = a[i]; j++;

} else {

c[k] = a[i]; k++;

printf ("\nLos numeros quedan asi:\n\n"); for (i=0; i < j; i++) printf ("%i\n", b[i]); for (i=0; i < k; i++) printf ("\t%i\n", c[i]); getch(); }

Algoritmo de ordenamiento Burbuja Este algoritmo compara elementos consecutivos del arreglo uno con respecto del otro, si es mayor o menor segn el tipo de ordenamiento y los cambia de posicin. Este proceso se repite recorriendo todo el arreglo para posicionar un solo dato, por lo que es necesario repetirlo para los dems datos del arreglo. Su implementacin es la siguiente:
#include <stdio.h> #include <conio.h> #include <stdlib.h> #define TAM 10 void main(){ int a[TAM], temp, i, j; clrscr(); randomize(); //Inicializa el generador de numeros aleatorios printf ("Llenando arreglo con nmeros aleatorios\n");

Ing. Oswald Barreto - correo: oswaldkev@gmail.com

PROGRAMA NACIONAL DE FORMACIN


INGENIERIA DE SISTEMAS INTEGRADO E INFORMTICA

UNIDAD CURRICULAR: INTRODUCCIN A LA PROGRAMACIN I Trayecto II trimestre Aldea: Simn Rodrguez Coro Falcn
for (i=0; i< TAM; i++) a[i]=random(100); //Implementacion de Ordenamiento por burbuja de mayor a menor for (j=1; j <= TAM; j++) for (i=0; i< TAM-1; i++) if (a[i] < a[i+1]){ temp = a[i]; a[i] = a[i+1]; a[i+1] = temp; } printf ("\nArreglo ordenado\n"); for (i=0; i< TAM; i++) printf ("a[%d] = %d\n", i, a[i]); getch(); }

Busqueda Secuencial Este algoritmo compara uno a uno los elementos del arreglo hasta recorrerlo por completo indicando si el nmero buscado existe. Su implementacin es la siguiente:
#include <stdio.h> #include <conio.h> #include <stdlib.h> #define TAM 10 void main(){ int a[TAM], temp, i, j, num; clrscr(); randomize(); //Inicializa el generador de numeros aleatorios printf ("Llenando arreglo con nmeros aleatorios\n"); for (i=0; i< TAM; i++) a[i]=random(100); printf ("Numero a buscar? "); scanf ("%d", &num);

Ing. Oswald Barreto - correo: oswaldkev@gmail.com

PROGRAMA NACIONAL DE FORMACIN


INGENIERIA DE SISTEMAS INTEGRADO E INFORMTICA

UNIDAD CURRICULAR: INTRODUCCIN A LA PROGRAMACIN I Trayecto II trimestre Aldea: Simn Rodrguez Coro Falcn
for (i=0; i< TAM; i++) if (a[i] == num){ printf ("\nValor encontrado"); printf ("\nPosicion: %d", i);

} else

printf ("\nNo existe"); printf ("El arreglo era:\n"); for (i=0; i< TAM; i++) printf ("%d ", a[i]); getch(); }

Bsqueda Binaria Este algoritmo permite buscar de una manera ms eficiente un dato dentro de un arreglo, para hacer esto se determina el elemento central del arreglo y se compara con el valor que se esta buscando, si coincide termina la busqueda y en caso de no ser asi se determina si el dato es mayor o menor que el elemento central, de esta forma se elimina una mitad del arreglo junto con el elemento central para repetir el proceso hasta encontrarlo o tener solo un elemento en el arreglo. Para poder aplicar este algorimo se requiere que el arreglo este ordenado. Su implementacin es la siguiente:
#include <stdio.h> #include <conio.h> #include <stdlib.h> #define TAM 15 void main(){ int a[TAM], busca, temp, bajo, alto, central; printf("Llenando el arreglo con nmeros aleatorios\n"); randomize(); //Inicializa el generador de aleatorios for (int i=0; i< TAM; i++) a[i]=random(100); //Implementacion de Ordenamiento por burbuja de menor a mayor printf ("Ordenando arreglo...\n"); for (int j=1; j <= TAM; j++) for (i=0; i< TAM-1; i++)

Ing. Oswald Barreto - correo: oswaldkev@gmail.com

PROGRAMA NACIONAL DE FORMACIN


INGENIERIA DE SISTEMAS INTEGRADO E INFORMTICA

UNIDAD CURRICULAR: INTRODUCCIN A LA PROGRAMACIN I Trayecto II trimestre Aldea: Simn Rodrguez Coro Falcn
if (a[i] > a[i+1]){ temp = a[i]; a[i] = a[i+1]; a[i+1] = temp; } //Implementacin de bsqueda binaria printf ("\nIntroduce un numero a buscar: "); scanf ("%d", &busca); bajo = 0; alto = TAM-1; central = (bajo+alto)/2; while (bajo < alto && busca != a[central]){ if(busca > a[central]) bajo = central+1; else alto = central-1;

central=(bajo+alto)/2; } if (busca == a[central]) printf("\n%d encontrado en posicion %d", busca, central); else printf("\n%d no existe", busca); printf ("\n\nEl arreglo ordenado era\n\n"); for (i=0; i< TAM; i++) printf ("%d ", a[i]); getch(); }

Ing. Oswald Barreto - correo: oswaldkev@gmail.com

PROGRAMA NACIONAL DE FORMACIN


INGENIERIA DE SISTEMAS INTEGRADO E INFORMTICA

UNIDAD CURRICULAR: INTRODUCCIN A LA PROGRAMACIN I Trayecto II trimestre Aldea: Simn Rodrguez Coro Falcn

Ejemplos de Clases
/* Programa que permite el ingreso de las notas de una seccion de 20 alumnos y calcula el promedio*/ #include <stdio.h> #define max 20 main() { float notas[max]; float total, promedio; int i,a; total=0; for(i=0;i<max;i++) { printf("Ingrese Alumno %d",i+1); scanf("%d,&a); notas[i]=a; } for(i=0;i<max;i++) { total=total + notas[i]; } printf("El promedio de las notas es: %d",total); }

Ing. Oswald Barreto - correo: oswaldkev@gmail.com

PROGRAMA NACIONAL DE FORMACIN


INGENIERIA DE SISTEMAS INTEGRADO E INFORMTICA

UNIDAD CURRICULAR: INTRODUCCIN A LA PROGRAMACIN I Trayecto II trimestre Aldea: Simn Rodrguez Coro Falcn
// Programa para determinar el mayor y menor numero de 20 numeros dados #include <stdio.h> #define num 20 int numero[num]; int mayor,menor,i; int main() { printf("\n\n"); for(i=0;i<num;i++) //Capturamos y asignamos valores con este ciclo { printf("Dame el numero %d\n",i+1); scanf("%d",&numero[i]); //Checa que el "scanf" trabaja igual que con } //variables normales no olvides el "&". mayor=numero[0]; //Asignamos a mayor el primer valor del arreglo "numero". menor=numero[0]; //Hacemos lo mismo para la variable menor. for(i=0;i<num;i++) //Con este ciclo hacemos la compracion de todos los valores { //capturados y asignados al arreglo "numero" if(numero[i]>mayor) mayor=numero[i]; if(numero[i]<menor) menor=numero[i]; } printf("El numero Mayor de los introducidos es %d\n",mayor); printf("El numero Menor de los introducidos es %d\n\n",menor); system("PAUSE"); return 0; }

Ing. Oswald Barreto - correo: oswaldkev@gmail.com

PROGRAMA NACIONAL DE FORMACIN


INGENIERIA DE SISTEMAS INTEGRADO E INFORMTICA

UNIDAD CURRICULAR: INTRODUCCIN A LA PROGRAMACIN I Trayecto II trimestre Aldea: Simn Rodrguez Coro Falcn
/*programa que permite llenar un arreglo con 15 nmeros mayores a 50 (validar), mostrar la suma, el promedio de los nmeros del arreglo, as como el mayor y el menor.*/ #include<iostream.h> #include<conio.h> #define max 15 int n[max],suma=0,prom,may,men,i=0,j=0; main() { cout<<"digite un numero que sea mayor a 50"; do { cin>>n[i]; //para la suma suma=suma+n[i]; //para el mayor if(n[i]>may) { may=n[i]; } if(n[i]>50) { i++; } } //Fin del do while(i<max); //para el menor men=n[0]; for(j=0;j<max;j++) { cout<<"numero "<<j<<" = "<<n[j]; if(n[j]<men) { men=n[j]; } } //para el promedio prom=suma/max; cout<<"el numero menor es "<<men; cout<<"el numero mayor es "<<may; cout<<"el promedio es "<<prom; cout<<"la suma es "<<suma; getch(); }

Ing. Oswald Barreto - correo: oswaldkev@gmail.com

Vous aimerez peut-être aussi