Upload
jimmy-punina
View
288
Download
1
Embed Size (px)
DESCRIPTION
Conceptos basicos
Citation preview
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 1
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIÓN
DOCENCIA EN INFORMÁTICA
Nombre:
Jimmy Punina
Nivel:
Tercero “Único”
Ambato – Ecuador
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 2
ARRAYS O ARREGLOS
Definición
Un array es una colección ordenada de elementos de un mismo tipo de datos, agrupados
de forma consecutiva en memoria. Cada elemento del array tiene asociado un índice,
que no es más que un número natural que lo identifica inequívocamente y permite al
programador acceder a él.
Las cadenas de caracteres son declaradas en C como arrays de caracteres y permiten la
utilización de un cierto número de notaciones y de funciones especiales
Características
Un array se caracteriza por:
o Se pueden almacenar los elementos del array en posiciones de memoria
contínua.
o Tienen un único nombre de variable que representa a todos los elementos, y
éstos a su vez se diferencian por un índice o subíndice.
o Nos permite tener acceso directo o aleatorio a los elementos individuales del
array.
o Todos los arrays son de tamaño variable.
o Se accede a los elementos de un array unidimensional con los corchetes [] y un
índice que varía de 0 a N-1. Teniendo en cuenta q N es el número de datos del
array.
o Se pueden crear arrays de cualquier tipo.
o Los elementos de un array se inicializan al valor por defecto del tipo
correspondiente (cero para valores numéricos, la cadena vacía para Strings).
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 3
TIPOS DE ARRAYS
ARRAYS DE UNA DIMENSIÓN
VECTOR
Un array unidimensional, también denominado vector es una variable estructurada
formada de un número "N" de variables simples del mismo tipo, que son denominadas
los componentes o elementos del array. El número de componentes "N" es, entonces, la
dimensión del array. De igual manera que en matemáticas, decimos que "A" es un
vector de dimensión "N".
Declaración
El formato para declarar un array unidimensional es:
tipo nombre[n];
Donde: N>= 1
Para acceder a un elemento del array:
nombre[i];
Donde: 1 <= i < N
Ejemplo :
int A[4];
o Define un array de tipo entero de dimensión 4. Y ya podríamos acceder al
primer componente del array por medio de:
A[1], al primer elemento.
A[2] al segundo elemento.
A[4] al último elemento.
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 4
En C, un array se utiliza básicamente cuando queremos tener, por ejemplo, una
secuencia de números reunidos en una sola variable.
Para llenar un array con datos, podemos hacer lo siguiente:
for (i = 0; i< 4; i++)
{
A[i] = i;
}
Otra manera de llenarle de datos a un vector es asignándole los valores iniciales entre
llaves de la siguiente manera:
int A[4] = {0, 1, 2, 3};
Si no se inicializa explícitamente el array no se puede estar seguro del valor que
contienen los elementos del mismo.
INFORMACIÓN BÁSICA PARA C
Código para el ingreso de datos en un vector:
for (i=1; i<=N; i++)
{
gotoxy(20,fila);scanf("%d",&vectror[i]);
fila=fila+1;
}
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 5
Código para la visualización de datos de un vector:
for (i=1; i<=N; i++)
{
gotoxy(20,fila);printf("%d",vectror[i]);
fila=fila+1;
}
ARRAY MULTIDIMENSIONAL
MATRIZ
Un array de dos dimensiones también denominado matriz, es aquella que tienen más de
una dimensión y por tanto tienen más de un índice. Los más utilizados son los de dos
dimensiones, conocidos con el nombre de tablas.
Una tabla cuenta con varias filas y varias columnas.
Cada elemento almacenado en el array está identificado por dos índices, sus
coordenadas, la fila y la columna en la que se encuentra dicho elemento.
Ambos índices se numeran consecutivamente comenzando con 0, 1, 2,.....N
Declaración
El formato para declarar un array multidimensional o matriz es:
int nombre[fil][col];
Donde: fil,col>= 1;
Para acceder a un elemento del array multidimensional:
nombre[i][j];
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 6
Donde: 0 <= i < f ; 0 <= j < c
Durante la declaración de un array multidimensional también podemos inicializar sus
componentes indicando la lista de los valores entre llaves. En el interior de la lista, los
componentes de cada línea del array son encerrados nuevamente entre llaves.
Para hacer más clara la visibilidad de los elementos del array, podemos indicarlos en
varias líneas.
int A[3][4] ={{ 0,1,2,3},
{ 1,2,3,4},
{ 2,3,4,5}};
Sin embargo, es mucho más conveniente anidar dos ciclos para inicializar un array de
dos dimensiones:
Ejemplo :
for (i = 0; i< 3; i++)
{
for (j = 0; j< 4; j++)
{
A[i][j] = i+j
}
}
INFORMACIÓN BÁSICA PARA C
Código para el ingreso de datos en una matriz:
fila=5;
col=5;
for (i=1; i<=N; i++)
{
for (j=1; j<=N; j++)
{
gotoxy(fila,col);scanf("%d",&matriz[i][j]);
col=col+5;
}
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 7
col=5;
fila=fila+1;
}
Código para la visualización de datos de una matriz:
fila=5;
col=5;
for (i=1; i<=N; i++)
{
for (j=1; j<=N; j++)
{
gotoxy(fila,col);printf("%d",&matriz[i][j]);
col=col+5;
}
col=5;
fila=fila+1;
}
CADENAS DE CARACTERES
Las cadenas de caracteres son vectores de tipo carácter (char) que reciben un
tratamiento especial para simular el tipo de datos “string”, presente en otros lenguajes
de programación. Para que un vector de caracteres pueda ser considerado como una
cadena de caracteres, el último de los elementos útiles del vector debe ser el caracter
nulo.
Según esto, si se quiere declarar una cadena formada por N caracteres, deberá
declararse un vector con N + 1 elementos de tipo carácter.
Por ejemplo:
char cadena[6];
Reserva suficiente espacio en memoria para almacenar una cadena de 5 caracteres,
como la palabra "casco":
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 8
Declaración
El formato para declarar una cadena es:
char nombre[n];
Donde: n >=1 y representa a la longitud-1 real de la cadena.
Ejemplo:
char cadena [5];
Debido a que en la representación interna de una cadena de caracteres es terminada por
el símbolo '\0', para un texto de "n" caracteres, debemos reservar "n+1”.
El carácter '\0', aunque pertenece a la cadena, no aparece al utilizar funciones como
printf.
En el caso especial de los arrays de caracteres, podemos utilizar varias formas de
inicialización:
char cadena[] = "Hola";
char cadena[] = {'H','o','l','a',0};
char cadena[] = {'H','o','l','a','\0'};
Sin especificar el tamaño de la cadena, o especificando el tamaño:
char cadena[5] = "Hola";
char cadena[5] = {'H','o','l','a',0};
char cadena[5] = {'H','o','l','a','\0'};
Para acceder a un elemento de una cadena de caracteres puede hacerse de la misma
manera que el acceso al elemento de un array.
cadena[i];
Donde: 0 <=i < n
INFORMACIÓN BÁSICA PARA C
La biblioteca “string” tiene una gran cantidad de funciones prácticas para trabajar con
cadenas de caracteres. Para utilizarlas debemos de incluir el fichero que define los
prototipos de dichas funciones:
#include <string.h>
Para vaciar memoria y poder utilizar una cadena de caracteres se utiliza la función:
flushall();
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 9
Para medir la longitud de una cadena de caracteres se utiliza la funcion:
limite= strlen(cadena);
Código para recorrer los datos de una cadena de caracteres:
for (i=1; i<=limite; i++)
{
gotoxy(20,fila);printf("%d",vtteeectteror[i]);
fila=fila+1;
}
Ejercicios:
Diseñe un programa utilizando funciones que me permita ingresar una
cadena de caracteres, recorrer dicha cadena y encontrar todos aquellos
caracteres que sean iguales a las vocales mayúsculas o minúsculas y
guardarlas en un nuevo vector, visualice el vector resultante, el proceso se
repite N veces.
#include<conio.h>
#include<stdio.h>
#include<string.h>
char vector1[40],vector2[40];
int limite,fila,i,op=1,h;
void borde()
{
for(i=1;i<=80;i++)
{ textcolor(10);
gotoxy(i,1);cprintf("X");
gotoxy(i,24);cprintf("X");
}
for(i=1;i<=24;i++)
{
textcolor(10);
gotoxy(1,i);cprintf("X");
gotoxy(80,i);cprintf("X");
}
}
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 10
void ingresar()
{
gotoxy(2,2);printf("Ingrese la cadena de caracteres ==> ");
gets(vector1);
limite=strlen(vector1);
}
void encontrar()
{
h=0;
for(i=0; i<limite; i++)
{
if((vector1[i]=='a')||(vector1[i]=='A'))
{
vector2[h]=vector1[i];
h=h+1;
}
if((vector1[i]=='e')||(vector1[i]=='E'))
{
vector2[h]=vector1[i];
h=h+1;
}
if((vector1[i]=='i')||(vector1[i]=='I'))
{
vector2[h]=vector1[i];
h=h+1;
}
if((vector1[i]=='o')||(vector1[i]=='O'))
{
vector2[h]=vector1[i];
h=h+1;
}
if((vector1[i]=='u')||(vector1[i]=='U'))
{
vector2[h]=vector1[i];
h=h+1;
}
}
}
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 11
void visualizar()
{
fila=4;
for(i=0; i<h; i++)
{
textcolor(10);
gotoxy(10,fila);
cprintf("%c",vector2[i]);
fila=fila+1;
}
}
void main()
{
do
{
clrscr();
borde();
flushall();
ingresar();
encontrar();
visualizar();
gotoxy(2,23);printf("PRESIONE: 1=Continuar y 2=Salir ==> ");
scanf("%d",&op);
}while(op==1);
}
Diseñe un programa utilizando funciones que me permita ingresar una
cadena de caracteres, recorrer dicha cadena y encontar todos aquellos
caracteres que sean iguales a las consonantes mayúsculas o minúsculas
pasarlos a un vector y visualizar el resltado, el proceso se repite N veces.
#include<conio.h>
#include<stdio.h>
#include<string.h>
char vector1[40],vector2[40];
int limite,fila,i,op=1,h;
void borde()
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 12
{
for(i=1;i<=80;i++)
{ textcolor(10);
gotoxy(i,1);cprintf("X");
gotoxy(i,24);cprintf("X");
}
for(i=1;i<=24;i++)
{
textcolor(10);
gotoxy(1,i);cprintf("X");
gotoxy(80,i);cprintf("X");
}
}
void ingresar()
{
gotoxy(2,2);printf("Ingrese la cadena de caracteres ==> ");
gets(vector1);
limite=strlen(vector1);
}
void encontrar()
{
h=1;
for(i=0; i<limite; i++)
{
if(vector1[i]!='a'&&vector1[i]!='A'&&vector1[i]!='e'&&vector1[i]!='E'&&v
ector1[i]!='i'&&vector1[i]!='I'&&vector1[i]!='o'&&vector1[i]!='O'&&vector
1[i]!='u'&&vector1[i]!='U')
{
vector2[h]=vector1[i];
h=h+1;
}
if(vector1[i]==' ')
{
h=h-1;
}
}
}
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 13
void visualizar()
{
fila=4;
for(i=0; i<h; i++)
{
textcolor(10);
gotoxy(10,fila);
cprintf("%c",vector2[i]);
fila=fila+1;
}
}
void main()
{
do
{
clrscr();
borde();
flushall();
ingresar();
encontrar();
visualizar();
gotoxy(2,23);printf("PRESIONE: 1=Continuar y 2=Salir ==> ");
scanf("%d",&op);
}while(op==1);
}
Diseñe un programa utilizando funciones que generar el siguiente menu de
opciones, el proceso se repite N veces.
1.- Cadena Inversa
2.- Vocales y Cosonantes
3.- Numero de Vocales y Consonantes
4.- Salir
#include<conio.h>
#include<stdio.h>
#include<string.h>
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 14
int i,op,limite,fila,con,factor,aux,j,op2,h,ca,ce,ci,co,cu;
char vector1[20],vector2[20];
void borde()
{
for(i=1; i<=80; i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
for(i=1; i<=24; i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
}
void menu()
{
gotoxy(20,2);printf("MENU DE OPCIONES");
gotoxy(10,4);printf("1.- Cadena Inversa");
gotoxy(10,6);printf("2.- Vocales y Cosonantes");
gotoxy(10,8);printf("3.- Numero de Vocales y Consonantes");
gotoxy(10,10);printf("4.- Salir");
gotoxy(10,12);printf("Ingrese el numero de la opcion deseada ==> ");
}
void ingresar()
{
gotoxy(3,3);printf("Ingrese la cadena==> ");
flushall();
gets(vector1);
limite=strlen(vector1);
}
void cadena_inversa()
{
clrscr();
borde();
ingresar();
con=0;
for(i=limite; i>=0; i--)
{
vector2[con]=vector1[i];
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 15
con=con+1;
}
}
void encontrar()
{
clrscr();
borde();
ingresar();
h=0;
con=0;
for(i=0; i<limite; i++)
{
if(vector1[i]!='a'&&vector1[i]!='A'&&vector1[i]!='e'&&vector1[i]!='E'&&v
ector1[i]!='i'&&vector1[i]!='I'&&vector1[i]!='o'&&vector1[i]!='O'&&vector
1[i]!='u'&&vector1[i]!='U')
{
vector2[h]=vector1[i];
h=h+1;
}
if(vector1[i]==' ')
{
h=h-1;
}
}
for(i=0; i<limite; i++)
{
if(vector1[i]=='a'||vector1[i]=='A'||vector1[i]=='e'||vector1[i]=='E'||vector1[i]=
='i'||vector1[i]=='I'||vector1[i]=='o'||vector1[i]=='O'||vector1[i]=='u'||vector1[i]
=='U')
{
vector2[h]=vector1[i];
h=h+1;
}
if(vector1[i]==' ')
{
h=h-1;
}
}
}
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 16
void contar_voc_con()
{
clrscr();
borde();
ingresar();
con=0;
ca=0;
ce=0;
ci=0;
co=0;
cu=0;
for(i=0; i<limite; i++)
{
if(vector1[i]!='a'&&vector1[i]!='A'&&vector1[i]!='e'&&vector1[i]!='E'&&v
ector1[i]!='i'&&vector1[i]!='I'&&vector1[i]!='o'&&vector1[i]!='O'&&vector
1[i]!='u'&&vector1[i]!='U')
{
con=con+1;
}
if(vector1[i]==' ')
{
con=con-1;
}
}
for(i=0; i<limite; i++)
{
if(vector1[i]=='a'||vector1[i]=='A')
{
ca=ca+1;
}
if(vector1[i]=='e'||vector1[i]=='E')
{
ce=ce+1;
}
if(vector1[i]=='i'||vector1[i]=='I')
{
ci=ci+1;
}
if(vector1[i]=='o'||vector1[i]=='O')
{
co=co+1;
}
if(vector1[i]=='u'||vector1[i]=='U')
{
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 17
cu=cu+1;
}
}
gotoxy(20,5);printf("Consonantes=> ");printf("%d",con);
gotoxy(10,5);printf("A=> ");printf("%d",ca);
gotoxy(10,6);printf("E=> ");printf("%d",ce);
gotoxy(10,7);printf("I=> ");printf("%d",ci);
gotoxy(10,8);printf("O=> ");printf("%d",co);
gotoxy(10,9);printf("U=> ");printf("%d",cu);
gotoxy(5,10);printf("______________");
gotoxy(6,12);printf("Total=> ");printf("%d",ca+ce+ci+co+cu);
}
void visualizar_inversa(int lim)
{
fila=6;
for(i=0; i<=lim; i++)
{
gotoxy(20,fila);printf("%c",vector2[i]);
fila=fila+1;
}
}
void visualizar_consonantes(int lim)
{
fila=6;
for(i=0; i<lim; i++)
{
gotoxy(20,fila);printf("%c",vector2[i]);
fila=fila+1;
}
}
void main()
{
op=0;
do
{
clrscr();
borde();
menu();
gotoxy(53,12);scanf("%d",&op);
if (op==1)
{
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 18
do
{
cadena_inversa();
gotoxy(13,5);printf("Cadena Invertida");
visualizar_inversa(limite);
gotoxy(4,23);printf("PRESIONE: (1) Continuar y (2) Salir ==> ");
gotoxy(44,23);scanf("%d",&op2);
}while(op2==1);
}
if (op==2)
{
do
{
encontrar();
gotoxy(13,5);printf("Cadena Resultante");
visualizar_consonantes(limite);
gotoxy(4,23);printf("PRESIONE: (1) Continuar y (2) Salir ==> ");
gotoxy(44,23);scanf("%d",&op2);
}while(op2==1);
}
if (op==3)
{
do
{
contar_voc_con();
gotoxy(4,23);printf("PRESIONE: (1) Continuar y (2) Salir ==> ");
gotoxy(44,23);scanf("%d",&op2);
}while(op2==1);
}
getch();
}while(op !=4 );
}
Linkografía
http://www.atc.us.es/asignaturas/fi/curso_de_c/Array_Unidimensional.html
http://www.monografias.com/trabajos71/clasificacion-arrays/clasificacion-arr
ays2.shtml
http://www.emagister.com/curso-introduccion-lenguaje-pascal/arrays-unidime
nsionales-vectores
http://www.programiz.com/c-programming/c-multi-dimensional-arrays
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices
[UNIVERSIDAD TÉCNICA DE AMBATO FCHE] 3º Docencia Informática
Producto | Elemento 1 19
http://aldeafraypedrodeagreda.files.wordpress.com/2009/12/11-arreglos-multi
dimensionales.pdf
http://3semestreic.blogspot.es/img/archivo.pdf
http://www.atc.us.es/asignaturas/fi/curso_de_c/Array_bidimensional_o_matri
z.html
http://www.slideshare.net/AriannaYadiraT/arreglos-bidimensionales-o-matrice
s
The file was converted using http://www.convertapi.com Please purchase credits to remove this text http://www.convertapi.com/prices