19
[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

Fundamentos Teoricos Array

Embed Size (px)

DESCRIPTION

Conceptos basicos

Citation preview

Page 1: Fundamentos Teoricos Array

[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

Page 2: Fundamentos Teoricos Array

[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

Page 3: Fundamentos Teoricos Array

[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

Page 4: Fundamentos Teoricos Array

[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

Page 5: Fundamentos Teoricos Array

[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

Page 6: Fundamentos Teoricos Array

[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

Page 7: Fundamentos Teoricos Array

[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

Page 8: Fundamentos Teoricos Array

[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

Page 9: Fundamentos Teoricos Array

[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

Page 10: Fundamentos Teoricos Array

[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

Page 11: Fundamentos Teoricos Array

[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

Page 12: Fundamentos Teoricos Array

[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

Page 13: Fundamentos Teoricos Array

[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

Page 14: Fundamentos Teoricos Array

[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

Page 15: Fundamentos Teoricos Array

[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

Page 16: Fundamentos Teoricos Array

[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

Page 17: Fundamentos Teoricos Array

[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

Page 18: Fundamentos Teoricos Array

[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

Page 19: Fundamentos Teoricos Array

[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