estructuras arrays y datos c++

15
UNIVERSID AD TÉCNICA DE AMBATO el libro de fermi villa ese es bueno FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIÓN. CARRERA DE DOCENCIA EN INFORMÁTICA TEMA: FUNCIONES Y ESTRUCTURAS ALUMNO: DIEGO JURADO ING: WILMA GAVILANEZ ASIGNATURA: LENGUAJE DE PROGRAMACIÓN ENERO 2012

Upload: riki-tapia

Post on 13-Jul-2015

3.495 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: ESTRUCTURAS ARRAYS Y DATOS C++

UNIVERSIDAD TÉCNICA DE AMBATO

el libro de fermi villa ese es bueno

FACULTAD DE CIENCIAS HUMANAS Y

DE LA EDUCACIÓN.

CARRERA DE DOCENCIA EN

INFORMÁTICA

TEMA: FUNCIONES Y ESTRUCTURAS

ALUMNO: DIEGO JURADO

ING: WILMA GAVILANEZ

ASIGNATURA: LENGUAJE DE PROGRAMACIÓN

ENERO 2012

Page 2: ESTRUCTURAS ARRAYS Y DATOS C++

ESTRUCTURA DE DATOS

Se puede considerar un conjunto de datos,

• Como una sola entidad…

• Como un solo tipo de dato…

De esta forma, se reduce la complejidad de un problema.

Un programa esta formado por:

• Estructuras de control y llamadas a funciones (el algoritmo de nuestro

programa).

• Datos, con sus respectivos tipos, ya sean estos atómicos o complejos, juntos

forman una jerarquía (la estructura de datos del programa).

ARREGLOS UNIDIMENSIONALES

• Un arreglo de una dimensión es una lista de variables, todas de un mismo tipo a las

que se hace referencia por medio de un nombre común. Una variable individual del

arreglo se llama elemento del arreglo. Para declarar un arreglo de una sola dimensión

se usa el formato general:

• tipo_dato identificador[tamaño];

PROGRAMA = ALGORITMO + ESTRUCTURA DE DATOS

Page 3: ESTRUCTURAS ARRAYS Y DATOS C++

• Un elemento del arreglo se accede indexando el arreglo por medio de un número del

elemento. En C++ todos los arreglos empiezan en 0, esto quiere decir que si se desea

acceder al primer elemento del arreglo debe usar el índice igual a 0. Para indexar un

arreglo se especifica el índice del elemento que interesa dentro de un corchete,

ejemplo;

valor = arreglo[1];

• Los arreglos empiezan en 0, de manera que el índice 1 se refiere al segundo elemento.

Para asignar el valor a un elemento de un arreglo, ponga el elemento en el lado

izquierdo de una sentencia de asignación.

DECLARACIÓN DE ARREGLOS

• Al declarar una variable cualquiera siempre indicamos: tipo y nombre. Por ejemplo:

int a;

• Para declarar un arreglo, se debe indicar

• Tipo

Page 4: ESTRUCTURAS ARRAYS Y DATOS C++

• Nombre y

• Tamaño

• Un arreglo de 10 elementos enteros, se declara:

• intArregloEnteros[10];

• Y lo podemos visualizar:

Funciones en C

Función

Grupo de sentencias bajo el mismo nombre que realizan una tarea específica.

Llamada a una función

Ejecuta el grupo de sentencias de una función.

Retorno

Una vez “llamada” la función, esta hace su trabajo, y regresa al mismo punto donde

fuellamada.

Page 5: ESTRUCTURAS ARRAYS Y DATOS C++

Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general

toman ciertos valores de entrada, llamados parámetros y proporcionan un valor de salida o

valor de retorno.

Las funciones en programación C, C++ y C# son módulos de programa que se mandan correr en

la función main o dentro de otras funciones.

El formato general de una función en C es

especificador_de_tiponombre_de_función( )

{

variables locales código de la función

}

Ejemplo:

Voidmatrizvector ( )

{

}

Después de haber declarado la función antes del programa principal .se debe llamar a esta

función dentro del programa principal voidmain.

Ejemplo: Voidmain

{ Matrizvector();

}

Aplicaciones prácticas

En este ejercicio usamos funciones antes del programa principal y las llamamos dentro del

programa principal (voidmain).

1. Realice un programa que me permita ingresar dos matrices y realizar el producto algebraico

de las mismas.

Análisis:

Page 6: ESTRUCTURAS ARRAYS Y DATOS C++

El siguiente programa vamos a realizar en lenguaje C, utilizando la instrucción gotoxy para

ordenar en filas y columnas.

También utilizamos la instrucción clrscr (); para borrar la pantalla cada vez que se ejecute el

programa, getch (); para la pausa del programa.

También utilizamos la función borde para el margen o borde y en el programa principal

llamamos a la función borde.

Ingresamos un límite para el límite de la matriz.

Declaramos a la matriz de tipo entero.

Utilizamos dos lazos for para ingresar dos matrices.

Luego utilizamos tres lazos for. los dos primeros lazos for es para el control de los datos

ingresados en las columnas y filas de la matriz.

Realizamos el proceso utilizando una tercera matriz, esta matriz va a funcionar como un

contador el cual le inicializamos en 0 y esta matriz es la que suma a la primera matriz

ingresada y multiplica a la segunda matriz.

Utilizamos funciones uno para el ingreso y otro para el proceso y en el programa principal

llamamos a las funciones.

Utilizamos la instrucción scanf para ingresar datos en la matriz.

Utilizamos la instrucción printf para visualizar o imprimir los datos de la matriz.

Utilizamos la sentencia do while para repetir el proceso las veces que elusuario lo desee.

Codificación:

#include<stdio.h>

#include<conio.h>

int i,l,c,f,c1,f1,j,h,g,op,col,fl;

int m[10][10],m1[10][10],mr[10][10];

voidborde()

{ textcolor(11); for(i=1;i<=45;i++)

{ gotoxy(1,i);cprintf("&",i);

gotoxy(80,i);cprintf("&",i);

}

for(i=1;i<=80;i++)

Page 7: ESTRUCTURAS ARRAYS Y DATOS C++

{ gotoxy(i,1);cprintf("&",i);

gotoxy(i,45);cprintf("&",i);

}

}

voidingreso()

{

c=6; f=12; for(h=1;h<=l;h++)

{

for(g=1;g<=l;g++)

{ gotoxy(c,f);scanf("%d",&m[h][g]); c=c+3;

} c=6; f=f+2;

} c1=20; f1=12;

for(h=1;h<=l;h++)

{

for(g=1;g<=l;g++)

{ gotoxy(c1,f1);scanf("%d",&m1[h][g]);

c1=c1+3;

} c1=20; f1=f1+2;

}

}

voidproducto(int l)

{

col=30;

fl=12;for(h=0;h<=l;h++)

{

for(g=0;g<=l;g++)

{

mr[h][g]=0;

for(j=0;j<=l;j++)

{

mr[h][g]=mr[h][g]+m[h][j]*m1[j][g];

}}}

for(h=1;h<=l;h++)

{

for(j=1;j<=l;j++)

{ gotoxy(col,fl);printf("%d",mr[h][j]);

col=col+3;

} col=30; fl=fl+2;

}}

void main()

{

do

{ clrscr(); borde();

gotoxy(10,5);printf("PRODUCTO

ALGEBRAICO DE MATRICES");

gotoxy(7,8);printf("INGRESE UN LIMITE:

");scanf("%d",&l);

gotoxy(6,10);printf("MATRIZ 1");

Page 8: ESTRUCTURAS ARRAYS Y DATOS C++

gotoxy(18,10);printf("MATRIZ 2");

gotoxy(30,10);printf("PRDCT DE 2

MATRZ"); ingreso();

producto(l);

gotoxy(10,20);printf("1 PARA SEGUIR 0

PARA SALIR: ");scanf("%d",&op);

}

while(op==1);

getch();

}

Ejecución del programa:

Ingreso de datos en una matriz

2. Diseñe un programa que me permita ingresar n elementos en una matriz cuadrática.

Análisis:

El siguiente programa vamos a realizar en lenguaje C, utilizando la instrucción gotoxy para

ordenar en filas y columnas.

También utilizamos la instrucción clrscr (); para borrar la pantalla cada vez que se ejecute el

programa, getch (); para la pausa del programa.

También utilizamos la función borde para el margen o borde y en el programa principal

llamamos a la función borde.

Ingresamos un límite para el límite de la matriz.

Page 9: ESTRUCTURAS ARRAYS Y DATOS C++

Declaramos a la matriz de tipo entero.

Utilizamos dos lazos for para ingresar una matriz.

Utilizamos la instrucción scanf para ingresar datos en la matriz.

Utilizamos la instrucción printf para visualizar o imprimir los datos de la matriz.

Utilizamos la sentencia do while para repetir el proceso las veces que el usuario lo desee.

Codification:

#include<stdio.h>

#include<conio.h>inti,k,j,l,f,c,op; int

matriz1[3][3]; void borde()

{

for(i=1;i<=60;i++)

{ gotoxy(i,1);printf("%",i);

gotoxy(i,24);printf("%",i);

}

for(i=1;i<=24;i++)

{

gotoxy(1,i);printf("%",i);

gotoxy(60,i);printf("%",i);

}

}

void main()

{

do

{ clrscr(); borde();

gotoxy(5,5);printf("ingrese un limite

");scanf("%d",&l);

c=10;f=10;

for(j=1;j<=l;j++)

{

for(k=1;k<=l;k++)

{ gotoxy(c,f);scanf("%d",&matriz1[j][k]);

c=c+5;

}

c=10;

f=f+1;

} c=25;f=10; for(j=1;j<=l;j++)

{

for(k=1;k<=l;k++)

{

gotoxy(c,f);printf("%d",matriz1[j][k]);c=c+5;

Page 10: ESTRUCTURAS ARRAYS Y DATOS C++

} c=25; f=f+1;}

gotoxy(10,20);printf("1 para seguir y 0 para

salir");scanf("%d",&op);

} while(op==1); getch();}

Ejecución del programa:

3.Diseñe un programa que me permita ingresar n números enteros en una matriz cuadrática,

recorra sus posiciones y obtenga sus datos de su diagonal principal.

Análisis:

El siguiente programa vamos a realizar en lenguaje C, utilizando la instrucción gotoxy para

ordenar en filas y columnas.

También utilizamos la instrucción clrscr (); para borrar la pantalla cada vez que se ejecute el

programa, getch (); para la pausa del programa.

También utilizamos la función borde para el margen o borde y en el programa principal

llamamos a la función borde.

Ingresamos un límite para el límite de la matriz.

Declaramos a la matriz de tipo entero.

Utilizamos dos lazos for para ingresar una matriz. También utilizamos una condición if que la

fila sea igual a la columna para coger los datos de la diagonal principal.

Page 11: ESTRUCTURAS ARRAYS Y DATOS C++

Utilizamos la instrucción scanf para ingresar datos en la matriz.

Utilizamos la instrucción printf para visualizar o imprimir los datos de la matriz.

Utilizamos la sentencia do while para repetir el proceso las veces que el usuario lo desee.

Codificación:

#include<stdio.h>

#include<conio.h>

inti,c,f,h,j,l,op;

intmatriz[9][9];

voidborde()

{

for(i=1;i<=24;i++)

{ gotoxy(1,i);printf("&",i);

gotoxy(80,i);printf("&",i);

}for(i=1;i<=80;i++)

{ gotoxy(i,1);printf("&",i);

gotoxy(i,24);printf("&",i);

}}

void main()

{

do

{

clrscr(); borde(); c=10; f=10;

gotoxy(2,2);printf("INGRESE UN LIMITE

");scanf("%d",&l);

for(j=1;j<=l;j++)

{

for(h=1;h<=l;h++)

{

gotoxy(5,7);printf("M.de entrada");

gotoxy(c,f);scanf("%d",&matriz[j][h]);

c=c+3;

} f=f+1; c=10;

}

c=25; f=10; for(j=1;j<=l;j++)

{

for(h=1;h<=l;h++)

{

gotoxy(20,7);printf("M. resultante");

gotoxy(c,f);printf("%d",matriz[j][h]); c=c+3;

}

f=f+1;

c=25;

} c=43; f=10;

for(j=1;j<=l;j++)

Page 12: ESTRUCTURAS ARRAYS Y DATOS C++

{

for(h=1;h<=l;h++)

{

if(j==h)

{

gotoxy(38,7);printf("M. diagonal

principal");

gotoxy(c,f);printf("%d",matriz[j][h]);

c=c+3;

f=f+1;

}}}

gotoxy(10,20);printf("1 para seguir 0 para

salir ");scanf("%d",&op);

} while(op==1); getch();

}

Ejecución del programa:

Diseñe un programa que me permita generar múltiplos de cualquier factor ingresado desde

teclado, solo en las diagonales principal y secundaria, las demás posiciones se llenan con

valores ceros.

Análisis:

Page 13: ESTRUCTURAS ARRAYS Y DATOS C++

El siguiente programa vamos a realizar en lenguaje C, utilizando la instrucción gotoxy para

ordenar en filas y columnas.

También utilizamos la instrucción clrscr (); para borrar la pantalla cada vez que se ejecute el

programa, getch (); para la pausa del programa.

También utilizamos la función borde para el margen o borde y en el programa principal

llamamos a la función borde.

Ingresamos un límite para el límite de la matriz.

Declaramos a la matriz de tipo entero.

Utilizamos dos lazos for para ingresar una matriz. También utilizamos una condición if que la

fila sea igual a la columna para coger los datos de la diagonal principal.

Para la diagonal secundaria se utiliza un contador que le inicializamos en 1 para el control

delas columnas. Y la variable de la columna debe irse disminuyendo de 1 en 1.

Utilizamos la instrucción scanf para ingresar datos en la matriz.

Utilizamos la instrucción printf para visualizar o imprimir los datos de la matriz.

Utilizamos la sentencia do while para repetir el proceso las veces que el usuario lo desee.

Codificación:

#include<conio.h>

#include<stdio.h>

int i,l,c,f,g,j,fac,m,h,c1,cont,c1,h1,op,c2;

intmatriz[10][10];

voidborde()

{

for(i=1;i<=80;i++)

{

textcolor(5); gotoxy(i,1);cprintf("%",i);

gotoxy(i,24);cprintf("%",i);

}

for(i=1;i<=24;i++)

{

textcolor(7); gotoxy(1,i);cprintf("%",i);

gotoxy(80,i);cprintf("%",i);

}

}

void main()

Page 14: ESTRUCTURAS ARRAYS Y DATOS C++

{

do

{ clrscr(); borde();

gotoxy(30,4);printf("MATRICES");

gotoxy(4,7);printf("INGRESE UN LIMITE:

");scanf("%d",&l);

gotoxy(4,9);printf("INGRESE UN FACTOR:

");scanf("%d",&fac);

c=15;

f=15; m=1; h=1;

c=25; f=15; m=1; h=1;

for(j=1;j<=l;j++)

{

for(g=1;g<=l;g++)

{

if(j==g)

{ m=fac*h; matriz[j][g]=m;

gotoxy(c,f);printf("%d",matriz[j][g]);

h=h+1;

}

else

{

gotoxy(c,f);printf("0");

}

c=c+3;

}

c=25;f=f+3;

}

c2=26; c1=c2+l-1; f=15; cont=1; h1=h;

for(j=1;j<=l;j++)

{ m=fac*h1; matriz[j][cont]=m;

gotoxy(c1+3,f);printf("%d",matriz[j][cont]);

h1=h1+1;

gotoxy(10,22);printf("DESEA REPETIR EL

PROCESO 1 PARA SEGUIR 0 PARA

SALIR ");scanf("%d",&op);

}

while(op==1);

getch();

}

EJECUCIÓN DEL PROGRAMA:

Page 15: ESTRUCTURAS ARRAYS Y DATOS C++