SlideShare una empresa de Scribd logo
UNIVERSIDAD TÉCNICA DE
                     AMBATO



   FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIÓN


          CARRERA DE DOCENCIA EN INFORMÁTICA


TEMA:
               FUNCIONES EN LENGUAJE C



NOMBRE:
                    WILMA CAÑAR



ASIGANTURA:
                   PROGRAMACIÓN II




                     ENERO, 2012


                                                    1
FUNCIONES EN LENGUAJE C




Es una sección de código independiente, con nombre, que ejecuta una tarea específica
y opcionalmente devuelve un valor al programa que la llamó.
En C, se conocen como funciones aquellos trozos de códigos utilizados para dividir un
programa con el objetivo que, cada bloque realice una tarea determinada.
En las funciones juegan un papel muy importe las variables, ya que como se ha dicho
estas pueden ser locales o globales.
Variables Globales: Estas se crean durante toda la ejecución del programa, y son
globales, ya que pueden ser llamadas, leídas, modificadas, etc; desde cualquier
función. Se definen antes del main().
Variables Locales: Estas, pueden ser utilizadas únicamente en la función que hayan
sido declaradas.

SINTAXIS:

La sintaxis de una función es la siguiente:
Tipo_de_datos nombre_de_la_funcion(tipo y nombre de argumentos)
{
    acciones
}




                                                                                   2
DONDE:
       Tipo_de_datos: Es el tipo de dato que devolverá esa función, que puede ser
       real, entera, o tipo void(es decir que no devolverá ningún valor).
       Nombre_de_la_funcion: Es el identificador que le damos a nuestra función, la
       cual debe cumplir las reglas que definimos en un principio para los
       identificadores.
       Tipo y nombre de argumentos: son los parámetros que recibe la función.
       Los argumentos de una función no son más que variables locales que reciben
       un valor. Este valor se lo enviamos al hacer la llamada a la función. Pueden
       existir funciones que no reciban argumentos.
       Acciones: Constituye el conjunto de acciones, de sentencias que cumplirá la
       función, cuando sea ejecutada. Entre ellas están:
           1. Asignaciones
           2. Lecturas
           3. Impresiones
           4. Cálculos, etc


Una función, termina con la llave de cerrar, pero antes de esta llave, debemos
colocarle la instrucción return, con la cual devolverá un valor específico. Es
necesario recalcar que si la función no devuelve ningún valor, es decir, es tipo void, no
tiene que ir la sentencia return, ya que de lo contrario, nos dará un error.


La Sentencia Return

            Fuerza la salida inmediata de la función en que se encuentra.
            Se puede utilizar para devolver un valor.

¿Cómo es que funcionan las Funciones?


A menudo, se utiliza el adjetivo de “Subprogramas”, para referirse a las funciones, así
que, el lector debe familiarizarse también con este término.
Los subprogramas se comunican con el programa principal, que es el que contiene a
las funciones, mediante parámetros, que estos pueden ser: Parámetros Formales y
Parámetros Actuales.

                                                                                       3
Cuando se da la comunicación los parámetros actuales son utilizados en lugar de los
parámetros formales.




Para qué sirven?.
Sirven para facilitar la resolución de problemas mediante la aplicación del
paradigma “DIVIDIR Y CONQUISTAR”


Funciones: modos de uso.

1.- Funciones diseñadas para realizar operaciones a partir de sus argumentos y
devolver un valor basado en sus cálculos.

2.- Funciones que no reciben argumentos, realizan un proceso y devuelven un valor .

3.- Funciones que no tienen argumentos ni valor de retorno explícito, operan sobre el
entorno de variables globales o atributos del sistema operativo.

Argumentos de funciones

    Son variables locales conocidas como parámetros formales y se utilizan
       como un medio para entregarle información a la función.
    Los parámetros formales reciben sus valores iniciales desde los parámetros
       reales, es decir desde los valores que se les pasan a traveś de la llamada.
       Ejemplo




                                                                                      4
Transferencia de Información

           por valor: copia el valor de un argumento de la llamada en el
              parámetro formal de la función. Por lo tanto, los cambios en los
              parámetros de la función no afectan a las variables que se usan en la
              llamada.
           por referencia: se copia la dirección del argumento en el parámetro.
              Los cambios hechos a los parámetros afectan a las variables usadas en
              la llamada a la función.

Funciones Definidas Por El Usuario en C


Una función, como ya se ha dicho, es un bloque de código dentro del programa que se
encarga de realizar una tarea determinada. Por lo tanto un programa en c debe
constar de una o más funciones, y por supuesto no puede faltar la función principal
main().
Un viejo adagio dice: Separa y vencerás, lo cual se acopla perfectamente cuando
tenemos un programa que es bastante grande; podemos separarlos en pequeños
subprogramas (funciones), y concentrarnos en la solución por separados de cada uno
de ellos y así resolver un gran problemas, en unos cuantos problemitas más pequeños.


Si un programa, está constituido por más de una función, las llamadas a la misma,
pueden realizarse desde cualquier parte del programa, y la definición de ellas debe
ser independiente unas de otras.

DECLARACIÓN

Cada función debe ser declarada. Su forma general es: tipo nombre función (lista de
tipos (y nombres) de los argumentos); Si una función va usar argumentos, debe
declarar variables que acepten los valores de los argumentos. Estas variables se
llaman parámetros formales de la función y se comportan como variables locales
dentro de la función, creándose al entrar en la función y destruyéndose al salir. La
declaración de parámetros aparece después del nombre de la función al definirla.

En C, todas las funciones están al mismo nivel, es decir, no se puede definir una
función dentro de otra función. Esto es por lo que C no es técnicamente un lenguaje
estructurado por bloques.



                                                                                   5
El código de una función es privado a esa función y sólo se puede acceder a él
mediante una llamada a esa función. Las variables definidas dentro de una función
son locales (a no ser que las definamos globales).

FUNCION VOID

La palabra reservada void es utilizada para declarar funciones sin valor de retorno y
también para indicar que una función específica no requiere de parámetros.

Mediante la sentencia return, el programa puede devolver un código de terminación
al proceso de llamada (Ej.: entero a Shell de comandos en Unix).

El valor devuelto puede ser 0 que indica terminación normal o un valor que identifica
un error detectado por el programa.

El valor devuelto puede ser usado para ejecución condicional de comandos en shell en
Unix.



FUNCIONES ANIDADAS

C++ no permite anidar funciones, sin embargo, dentro de una función puede existir la
llamada a una o más funciones declaradas previamente.



VENTAJAS

   1. Facilita el diseño descendente.
   2. 2.- Los procedimientos dentro de ellas se pueden ejecutar varias veces.
   3. 3.- Facilita la división de tareas.
   4. 4.- Se pueden probar individualmente
   5. 5.- Con funciones apropiadamente diseñadas, es posible ignorar como se
      realiza una tarea, sabiendo qué es lo que hacen.
   6. Reduce el código de programación
   7. Permite usar menos memoria
   8. Reduce la probabilidad de errores.




                                                                                    6
EJERCICIOS DE FUNCIONES CON VECTORES:

APLICACIÓN Nº1:
  Enunciado
Diseñe un programa en C utilizando funciones que me permitan ingresar datos en 2
vectores con datos enteros entre 3 y 53, recorrer cada vector y formar un solo vector
con datos intercalados tomando un dato del primer y un dato de el segundo,
presentar el vector resultante ordenado en forma ascendente y descendente.

  Análisis
En el siguiente programa utilizaremos funciones para el ingreso de los vectores,
también validaremos los vectores entre 3 y 53. Luego en un ciclo for realizamos las
operaciones para la intercalación de los dos vectores.



 Codificación

}#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int l,i,v1[25],v2[25],f,x,vt[25],a,aux,j;
void ingvect1()
{
f=15;
for(i=1;i<=l;i++)
{
     do{
         gotoxy(20,f);printf(" ");
         gotoxy(20,f);scanf("%d",&v1[i]);
         }
         while(v1[i]<3 || v1[i]>53);
     f=f+1;
         }
}

void ingvect2()
{
f=15;
for(i=1;i<=l;i++)
                                                                                   7
{
       do{
    gotoxy(40,f);printf(" ");
       gotoxy(40,f);scanf("%d",&v2[i]);
    }
    while(v2[i]<3 || v2[i]>53);
    f=f+1;
       }
}

void vectaltern()
{
a=1;
for(i=1;i<=(l*2);i++)
{
       vt[a]=v1[i];
       a=a+1;
       vt[a]=v2[i];
       a=a+1;
}
f=25;
for(i=1;i<=(l*2);i++)
{
gotoxy(20,f);printf("%d",vt[i]);
       f=f+1;

}
}

void orden()
{
for(i=1;i<=(l*2);i++)
{

for(j=1;j<=(l*2);j++)
{
gotoxy(17,24);printf("Alternado");
      if(vt[i]<vt[j])
      {
      aux=vt[i];
                                          8
vt[i]=vt[j];
      vt[j]=aux;
      }
 }
}
}

void ordasc()
{
f=25;
j=1;
for(i=1;i<=(l*2);i++)
{
gotoxy(30,24);printf("Ascendente");
gotoxy(35,f);printf("%d",vt[i]);
       f=f+1;
j=j+1;
}
}

void ordesc()
{
f=25;
for(i=j-1;i>=1;i--)
{
gotoxy(44,24);printf("Descendente");
gotoxy(50,f);printf("%d",vt[i]);
       f=f+1;
}
}

void main()
{
int op;
do{
clrscr();
gotoxy(10,10);printf("Ingrese el L¡mite :");scanf("%d",&l);
gotoxy(14,14);printf("<<<VECTOR 1>>>");
gotoxy(34,14);printf("<<<VECTOR 2>>>");
ingvect1();
                                                              9
ingvect2();
vectaltern();
orden();
ordasc();
ordesc();
gotoxy(19,48);printf("Oprima   1   para   continuar   o   0   para   cancelar
:");scanf("%d",&op);
}
while(op==1);
getch();
}

 Ejecución del Programa




                                                                           10
APLICACIÓN Nº2 :

 Enunciado

Diseñe un programa utilizando vectores y funciones que me permita llenar un vector
en forma intercalada con dos factores leidos desde teclado en donde el primer factor
sea siempre un multiplo de tres y el segundo factor sea siempre un multiplo de 4,
recorra el vector y encuentre todos los n£meros pares, asignelos a un nuevo vector y
presentelos en forma ordenada ascendente y descendente

 Análisis

En el siguiente programa utilizaremos funciones y vectores en el cual encontraremos
el intercalar de dicho vector, cuyo vector sea un múltiplo de 3 y múltiplos de 4.
Utilizamos las estructuras do while, for e if para estructurar el programa.

 Codificación:

#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
int col,f,li,mt,r,mc,r1,i,im,pa,x,v1[20],t,c,a;

clrscr();
gotoxy(27,2);printf("VECTOR CON MULTIPLOS 3 Y 4");
gotoxy(5,5);printf("Ingresar un limite: ");scanf("%d",&li);
do{
gotoxy(36,10);printf(" ");
gotoxy(10,10);printf("Ingrese un multiplo de 3: ");scanf("%d",&mt);
}
while(mt%3>=1);

do{
gotoxy(36,12);printf(" ");
gotoxy(10,12);printf("Ingrese un multiplo de 4: ");scanf("%d",&mc);
}
while(mc%4>=1);
flushall();

                                                                                 11
f=20;
 a=1;
for(i=1;i<=(li*2);i++)
{
       t=i*mt;
       v1[a]=t;
       a=a+1;
       c=i*mc;
       v1[a]=c;
       a=a+1;
}
f=25;
for(i=1;i<=(li*2);i++)
{
gotoxy(20,f);printf("%d",v1[i]);
       f=f+1;

}
getch();}

 Ejecucón del programa:




                                   12
EJERCICIOS DE FUNCIONES CON MATRICES:

APLICACIÓN Nº1 :

 Enunciado

Diseñe un programa utilizando funciones y matrices que me permita realizar
las cuatro operaciones básicas

Análisis

    El presente programa usa funciones, para ello primeramente declaramos las
    variables globales que nos servirán para todo el programa estas variables
    globales van colocadas debajo del ingreso de librerías y antes de la declaración
    de la primera función. En este caso mi primera función es void borde(), abrimos
    llaves y allí esta el detalle del borde que se genera, para terminar la función
    cerramos la llave. Luego tenemos la función ingreso, donde van los for que me
    ayudan a generar o lectura de la matriz y el ingreso del limite que se caracteriza
    por poseer en su sentencia scanf("%d",&l), a través de ello ingreso el límite de
    mi vector con el cual se genrará una matriz cuadrátida del orden del limite.
    Como requisito para que se imprima la diagonal principal tenemos que los
    subíndices i == j, y con dos lazos for se imprime la matriz, con la condición if
    (i==j), designamos solo la diagonl principal en la que deben insertarse los
    numero pares, en la diagonal secundaria los impares y cerramos el programa al
    final con la función principal y haciendo el llamad a cada una de las funciones
    insertadas, así como;borde(), ingreso().



 Codificación:

#include<stdio.h>
#include<conio.h>
int matriz1[20][20],matriz2[20][20],matriz3[20][20],i,lim,fila,j,col,op,sal,rep;
  void borde()
  {
  int i;
  textcolor(5);
  for(i=2;i<=24;i++)
  {
  gotoxy(2,i);cprintf("*");
  gotoxy(78,i);cprintf("*");
  }


                                                                                   13
for(i=2;i<=78;i++)
 {
 gotoxy(i,2);cprintf("*");
 gotoxy(i,24);cprintf("*");
 }
 }
 void ingreso(int lim)
 {
 col=9;fila=10;
 for(i=1;i<=lim;i++)
 {
 for(j=1;j<=lim;j++)
 {
 gotoxy(7,8);printf(" MATRIZ 1 ");
 gotoxy(col,fila);scanf("%d",&matriz1[i][j]);

col=col+2;

  }
  fila=fila+2;
 col=9;
  }
  textcolor(10);
  col=25;fila=10;
  for(i=1;i<=lim;i++)
  {
  for(j=1;j<=lim;j++)
  {
   gotoxy(22,8);printf(" MATRIZ 2 ");
  gotoxy(col,fila);scanf("%d",&matriz2[i][j]);

 col=col+2;
 }

 fila=fila+2;
 col=25;
 }
 }
 void suma(int lim)
 {
 fila=10;
 col=45;
 for(i=1;i<=lim;i++)
 {
   for(j=1;j<=lim;j++)
    {
    textcolor(8);
    gotoxy(43,8);cprintf(" RESPUESTAS ");
    matriz3[i][j]=matriz1[i][j]+matriz2[i][j];

                                                 14
gotoxy(col,fila);cprintf("%d",matriz3[i][j]);

   col=col+3;

  }
  fila=fila+3;
  col=45;
  }
  }
  void resta(int lim)
  {
  col=45;fila=10;
  for(i=1;i<=lim;i++)
  {
  for(j=1;j<=lim;j++)
  {

   gotoxy(43,8);printf("RESPUESTA ");

   matriz3[i][j]=matriz1[i][j]-matriz2[i][j];
   gotoxy(col,fila);printf("%d",matriz3[i][j]);
   col=col+3;
   }
   fila=fila+3;
   col=45;
   }
   }
   void multiplicacion(lim)
   {
   col=45;fila=10;
   for(i=1;i<=lim;i++)
   {
   for(j=1;j<=lim;j++)
   {

   gotoxy(43,8);printf("RESPUESTAS");
   matriz3[i][j]=matriz1[i][j]*matriz2[i][j];
   gotoxy(col,fila);printf("%d",matriz3[i][j]);
   col=col+3;
   }
   fila=fila+3;
   col=45;
   }
   }
 void main()
 {
 int lim,i,j;
do{

                                                   15
do{
clrscr();
borde();
  gotoxy(20,6);cprintf(" MENU DE OPCIONES ");
  gotoxy(10,8);cprintf(" 1.- SUMA        ");
  gotoxy(10,10);cprintf(" 2ú- RESTA        ");
  gotoxy(10,12);cprintf(" 3ú- MULTILICACION ");
  gotoxy(10,14);cprintf(" 4ú- SALIR       ");
  gotoxy(10,16);printf(" INGRESE EL LIMITE "); scanf("%d",&lim );
  gotoxy(4,18);cprintf(" Ingrese la opcion que desee: ");scanf("%d",&op);
  switch (op)
    {
//suma
   case 1:
   clrscr();
   borde();
   textcolor(9);
   gotoxy(35,3);cprintf(" **MATRICES** ");
   gotoxy(28,5);printf("SUMA DE DOS MATRICES ");
   gotoxy(44,20);cprintf(" WILMA CA¥AR ");
   ingreso(lim);
   suma(lim);
     break;
//resta
   case 2:
   clrscr();
   borde();
   gotoxy(30,5);printf(" RESTA ");
   gotoxy(25,26);cprintf(" WILMA CA¥AR ");
   ingreso(lim);
   resta(lim);

   break;
//multiplicacion
  case 3:
  clrscr();
  borde();
  gotoxy(30,5);printf(" MULTIPLICACION");
  gotoxy(25,26);cprintf(" WILMA CA¥AR ");
  ingreso(lim);
  multiplicacion(lim);

    break;
//salir
  case4:
  clrscr();
    exit();
   break;
  }

                                                                            16
textcolor(7);
    gotoxy(5,23);cprintf("Ingrese 0 para elegir una nueva opcion 1 para salir:
");cscanf("%d",&rep);
   }
   while(rep==0);
   textcolor(2);
  gotoxy(5,24);cprintf(" Ingrese 1 para continuar 0 para salir: "); cscanf("%d",&sal);
  textcolor(3);

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

 Ejecución del programa




                                                                                   17
APLICACIÓN Nº2

 Enunciado

Diseñe un programa en el que se genera una matriz de las dimensiones de
límite cuya diagonal principal contenga los números pares y en la diagonal
secundaria contenga los números impares el resto de posiciones de la matriz
sean rellenados con ceros.

 Análisis
  El presente programa usa funciones, para ello primeramente declaramos las
  variables globales que nos servirán para todo el programa estas variables
  globales van colocadas debajo del ingreso de librerías y antes de la declaración
  de la primera función. En este caso mi primera función es void borde(), abrimos
  llaves y allí esta el detalle del borde que se genera, para terminar la función
  cerramos la llave. Luego tenemos la función ingreso, donde van los for que me
  ayudan a generar o lectura de la matriz y el ingreso del limite que se caracteriza
  por poseer en su sentencia scanf("%d",&l), a través de ello ingreso el límite de
  mi vector con el cual se genrará una matriz cuadrátida del orden del limite.
  Como requisito para que se imprima la diagonal principal tenemos que los
  subíndices i == j, y con dos lazos for se imprime la matriz, con la condición if
  (i==j), designamos solo la diagonl principal en la que deben insertarse los
  numero pares, en la diagonal secundaria los impares y cerramos el programa al
  final con la función principal y haciendo el llamad a cada una de las funciones
  insertadas, así como;borde(), ingreso().

 Codificación

          # include<conio.h>             //ingreso de librerías
          # include<stdio.h>
          int i, j, fil, col,x,y,l,f,c,op;     //declaración de variables globales y
          de matrices
          int matriz[10][10];
          void borde()                   //function borde
          {
           for(i=2;i<=80;i++)            //diseño del borde
            {
            textcolor(11);
            gotoxy(i,2);cprintf("*");
            gotoxy(i,45);cprintf("*");
            }
           for(i=2;i<=45;i++)
            {
            gotoxy(2,i);cprintf("*");
            gotoxy(80,i);cprintf("*");

                                                                                       18
}
}
void ingreso() //function ingreso
{
clrscr();
textcolor(11);
gotoxy(15,5);cprintf("INGRESO LIMITE: ");scanf("%d",&l);         //lee
datos desde teclado
for(f=1;f<=l;f++)               //dos lazos for para ingreso de matriz
 {
  for(c=1;c<=l;c++)
    {
    matriz[f][c]=0;
    gotoxy(f*3+8,c*2+8);cprintf("%d", matriz[f][c]);
     //impression de matriz[f][c]
    }
 }
 x=2;
 for(f=1;f<=l;f++)              //lazos for para la impresión de matriz
 {
  for(c=1;c<=l;c++)
    {
    if(f==c)             //condición para elegir diagonal primaria
     {
    matriz[f][c]=x;
    x=x+2;        //x será el número par que se imprimira en
diagonal principal
     }
    gotoxy(f*3+8,c*2+8);cprintf("%d", matriz[f][c]);
    }
 }
 x=1;       //variables auxiliaries
 y=l;
 for(f=1;f<=l;f++)       //lazo for para impression de diagonal
secundaria
  {
   matriz[y][f]=x;
   gotoxy(y*3+8,f*2+8);printf("%d", matriz[y][f]); //visualización de
valores enteros en diagonal secundaria que son los impares
   x=x+2;         //determinan el valor impar
   y=y-1;
   }
 }
 void main()      //Se inicializa el programa principal
 {
  borde(l);       //se llama a la función borde
 do
  {
  clrscr();              //borrado de pantalla

                                                                     19
ingreso();   //se llama a la función ingreso de matriz
           gotoxy(20,23);printf("Presione 1 para continuar y 0 para salir:
        ");scanf("%d",&op); // bucle do/while para elección de salir o no
        del programa
          }
          while(op==1);
          getch();
        }               //cierre del programa general

 Ejecución del programa




                                                                         20
APLICACIÓN Nº3 :

 Enunciado

    Diseñe un programa que realice el producto de matrices, en donde se
    visualice las matrices 1 y 2 y la matriz resultante.

 Análisis

Ingreso de librerías conocidas, declaración de variables globales y de matrices, primera
función, void borde, se detalla la operación que desplegará el borde. Función void ingreso
donde ingresaremos las matrices y sus elementos por teclado.
Función producto donde se realiza la operación de las mismas, se imprimen tres matrices.
Función main llama a todas las funciones existentes: borde(), ingreso() , producto() y las
titulaciones, se cierra el lazo do/while y se cierra el porgrama principal.

 Desarrollo

          #include<stdio.h>                   //inclusion de librerías
          #include<conio.h>
          int l,c,c1,c2,f,f1,f2,k,i,j,op,a;   //declaración de variables globales
          int matriz1[10][10],matriz2[10][10],matriz3[10][10];
          void borde()                  //función borde
          {
          for(i=1;i<=25;i++)            //lazos for para desplegra el borde en sus
          cuatro lados
          {
          gotoxy(1,i);printf("@",i);
          gotoxy(80,i);printf("@",i);
          }
          for(i=1;i<=80;i++)
          {
          gotoxy(i,2);printf("@",i);
          gotoxy(i,25);printf("@",i);
          }
          }
          void ingreso() //function ingreso de matrices
          {
          for(i=1;i<=l;i++)
          {
           for(j=1;j<=l;j++)
           {
           gotoxy(c,f);scanf("%d",&matriz1[i][j]);          //lectura de datos
          ingresados por teclado
           c=c+5;
           }
          c=5;
                                                                                       21
f=f+1;
}
for(i=1;i<=l;i++) //lazos for para la impresión de la matriz
{
 for(j=1;j<=l;j++)
 {
 gotoxy(c1,f1);scanf("%d",&matriz2[i][j]); //posicionamiento e
impresión de la matriz
 c1=c1+5;
 }
c1=25;
f1=f1+1;
}}
void producto()          //function que realize el product de las
matrices
{
for(i=1;i<=l;i++)        //lazos para la impresión de la matriz
resultante
{
for(j=1;j<=l;j++)
{
matriz3[i][j]=0;
for(k=1;k<=l;k++)
{
matriz3[i][j]=matriz3[i][j]+matriz1[i][k]*matriz2[k][j];
     //operación de matrices
}}}
for(i=1;i<=l;i++)
{
for(k=1;k<=l;k++)
{
gotoxy(c2,f2);printf("%d",matriz3[i][k]); //impression de matriz
con dos for
c2=c2+4;
}
c2=42;
f2=f2+1;
}}
void main()        //function principal
{
do
{
clrscr();          //borrado de pantalla
borde(); //llamado a la función borde
c=5;
c1=25;
c2=42;
f=10;
f1=10;

                                                                    22
f2=10;
       gotoxy(28,3);printf("PRODUCTO DE MATRICES"); //leyendas o
       titulaciones
       gotoxy(10,5);printf("INGRESE UN LIMITE ");scanf("%d",&l);
       gotoxy(5,7);printf("MATRIZ1");
       gotoxy(25,7);printf("MATRIZ2");
       gotoxy(40,7);printf("MATRIZ RESULTANTE");
       ingreso(); //llamado a función ingreso
       producto();       //llamado a función producto
       gotoxy(8,20);printf("seleccione 1 para continuar y 0 para salir
       ");scanf("%d",&op);
       }
       while(op==1); //cierre de lazo do/while
       getch();
       }          //cierre del programa general


 Ejecución del programa




                                                                         23
BIBLIOGRAFÍA:

   http://www.monografias.com/trabajos4/lenguajec/lenguaje
    c.shtml

   http://www.gratiszona.com/apuntes/lenguaje_c/09_funcione
    s.htm

   http://www.mailxmail.com/curso-introduccion-lenguaje-
    c/funciones




                                                            24

Más contenido relacionado

PPTX
Fundamentos de programación: Subprogramas
PDF
Programación modular en Introducción a la Programación
DOCX
FUNCIONES EN LENGUAJE C
PPT
Funciones en C++
DOCX
Elemento 4
PPTX
Logica subprogramas
PDF
Programacion ii modulo2-leccion3
PPTX
Programación modular
Fundamentos de programación: Subprogramas
Programación modular en Introducción a la Programación
FUNCIONES EN LENGUAJE C
Funciones en C++
Elemento 4
Logica subprogramas
Programacion ii modulo2-leccion3
Programación modular

La actualidad más candente (20)

PPTX
Funciones C++ modificado
PPTX
Trabajo tutorial de visual C++
PPT
Tema 7 www.fresymetal.com
PPT
PPTX
Funciones
PPT
Operadores
PPTX
Funciones
PPTX
Funciones en c++
PPTX
Presen iii 26 funciones
PPTX
Tutorial jared
PPT
PPT
Estructuras de control
PDF
Funciones con vectores y matrices1
PDF
vectores y matrices
PDF
8448148681
PPTX
OPERADORES PARA C++
PDF
Java - Sintaxis Básica 2015
PDF
Algoritmos y programacion en C++
PPTX
Elementos basicos c++
PPTX
Instrucciones para c_
Funciones C++ modificado
Trabajo tutorial de visual C++
Tema 7 www.fresymetal.com
Funciones
Operadores
Funciones
Funciones en c++
Presen iii 26 funciones
Tutorial jared
Estructuras de control
Funciones con vectores y matrices1
vectores y matrices
8448148681
OPERADORES PARA C++
Java - Sintaxis Básica 2015
Algoritmos y programacion en C++
Elementos basicos c++
Instrucciones para c_
Publicidad

Similar a Funciones lenguaje c modulo4 (20)

PPTX
Funciones en C
PDF
Presentacion programación 2, lenguaje C.
PPTX
Presentacion capitulo 6
PPTX
Unidad 2 funciones
PDF
Metodos funciones
PDF
Explicacion de como usar e implementar funciones en c++
PPT
PPT
Funcionesclase1
PPTX
SEMANA 7 INFORMATICA APLICADA A INGENIERI.pptx
PDF
6 libro fundamentos cap__modularidad_ecler mv
PDF
Programación Modular - Subprogramas o funciones
PPTX
PDF
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
PPTX
P_UNIDAD 4 FUNCIONES.pptx
PPT
Funcionesenlenguaje c
PDF
Guía funciones
DOCX
Actividad 5. Ejercicios.docx
PDF
05 - Funciones en lenguaje C
PDF
Programacion Modular lic en informa.pdf
PPTX
Funciones
Funciones en C
Presentacion programación 2, lenguaje C.
Presentacion capitulo 6
Unidad 2 funciones
Metodos funciones
Explicacion de como usar e implementar funciones en c++
Funcionesclase1
SEMANA 7 INFORMATICA APLICADA A INGENIERI.pptx
6 libro fundamentos cap__modularidad_ecler mv
Programación Modular - Subprogramas o funciones
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
P_UNIDAD 4 FUNCIONES.pptx
Funcionesenlenguaje c
Guía funciones
Actividad 5. Ejercicios.docx
05 - Funciones en lenguaje C
Programacion Modular lic en informa.pdf
Funciones
Publicidad

Último (20)

DOCX
Tarea De El Colegio Coding For Kids 1 y 2
PDF
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
PDF
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...
DOCX
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
PDF
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
PDF
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
PDF
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
PDF
Metodologías Activas con herramientas IAG
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
PDF
Escuela Sabática 6. A través del Mar Rojo.pdf
PDF
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
DI, TEA, TDAH.pdf guía se secuencias didacticas
PDF
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
PDF
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
PDF
Tomo 1 de biologia gratis ultra plusenmas
Tarea De El Colegio Coding For Kids 1 y 2
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
Fundamentos_Educacion_a_Distancia_ABC.pdf
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
Metodologías Activas con herramientas IAG
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
Escuela Sabática 6. A través del Mar Rojo.pdf
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
DI, TEA, TDAH.pdf guía se secuencias didacticas
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
Tomo 1 de biologia gratis ultra plusenmas

Funciones lenguaje c modulo4

  • 1. UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIÓN CARRERA DE DOCENCIA EN INFORMÁTICA TEMA: FUNCIONES EN LENGUAJE C NOMBRE: WILMA CAÑAR ASIGANTURA: PROGRAMACIÓN II ENERO, 2012 1
  • 2. FUNCIONES EN LENGUAJE C Es una sección de código independiente, con nombre, que ejecuta una tarea específica y opcionalmente devuelve un valor al programa que la llamó. En C, se conocen como funciones aquellos trozos de códigos utilizados para dividir un programa con el objetivo que, cada bloque realice una tarea determinada. En las funciones juegan un papel muy importe las variables, ya que como se ha dicho estas pueden ser locales o globales. Variables Globales: Estas se crean durante toda la ejecución del programa, y son globales, ya que pueden ser llamadas, leídas, modificadas, etc; desde cualquier función. Se definen antes del main(). Variables Locales: Estas, pueden ser utilizadas únicamente en la función que hayan sido declaradas. SINTAXIS: La sintaxis de una función es la siguiente: Tipo_de_datos nombre_de_la_funcion(tipo y nombre de argumentos) { acciones } 2
  • 3. DONDE: Tipo_de_datos: Es el tipo de dato que devolverá esa función, que puede ser real, entera, o tipo void(es decir que no devolverá ningún valor). Nombre_de_la_funcion: Es el identificador que le damos a nuestra función, la cual debe cumplir las reglas que definimos en un principio para los identificadores. Tipo y nombre de argumentos: son los parámetros que recibe la función. Los argumentos de una función no son más que variables locales que reciben un valor. Este valor se lo enviamos al hacer la llamada a la función. Pueden existir funciones que no reciban argumentos. Acciones: Constituye el conjunto de acciones, de sentencias que cumplirá la función, cuando sea ejecutada. Entre ellas están: 1. Asignaciones 2. Lecturas 3. Impresiones 4. Cálculos, etc Una función, termina con la llave de cerrar, pero antes de esta llave, debemos colocarle la instrucción return, con la cual devolverá un valor específico. Es necesario recalcar que si la función no devuelve ningún valor, es decir, es tipo void, no tiene que ir la sentencia return, ya que de lo contrario, nos dará un error. La Sentencia Return  Fuerza la salida inmediata de la función en que se encuentra.  Se puede utilizar para devolver un valor. ¿Cómo es que funcionan las Funciones? A menudo, se utiliza el adjetivo de “Subprogramas”, para referirse a las funciones, así que, el lector debe familiarizarse también con este término. Los subprogramas se comunican con el programa principal, que es el que contiene a las funciones, mediante parámetros, que estos pueden ser: Parámetros Formales y Parámetros Actuales. 3
  • 4. Cuando se da la comunicación los parámetros actuales son utilizados en lugar de los parámetros formales. Para qué sirven?. Sirven para facilitar la resolución de problemas mediante la aplicación del paradigma “DIVIDIR Y CONQUISTAR” Funciones: modos de uso. 1.- Funciones diseñadas para realizar operaciones a partir de sus argumentos y devolver un valor basado en sus cálculos. 2.- Funciones que no reciben argumentos, realizan un proceso y devuelven un valor . 3.- Funciones que no tienen argumentos ni valor de retorno explícito, operan sobre el entorno de variables globales o atributos del sistema operativo. Argumentos de funciones  Son variables locales conocidas como parámetros formales y se utilizan como un medio para entregarle información a la función.  Los parámetros formales reciben sus valores iniciales desde los parámetros reales, es decir desde los valores que se les pasan a traveś de la llamada. Ejemplo 4
  • 5. Transferencia de Información  por valor: copia el valor de un argumento de la llamada en el parámetro formal de la función. Por lo tanto, los cambios en los parámetros de la función no afectan a las variables que se usan en la llamada.  por referencia: se copia la dirección del argumento en el parámetro. Los cambios hechos a los parámetros afectan a las variables usadas en la llamada a la función. Funciones Definidas Por El Usuario en C Una función, como ya se ha dicho, es un bloque de código dentro del programa que se encarga de realizar una tarea determinada. Por lo tanto un programa en c debe constar de una o más funciones, y por supuesto no puede faltar la función principal main(). Un viejo adagio dice: Separa y vencerás, lo cual se acopla perfectamente cuando tenemos un programa que es bastante grande; podemos separarlos en pequeños subprogramas (funciones), y concentrarnos en la solución por separados de cada uno de ellos y así resolver un gran problemas, en unos cuantos problemitas más pequeños. Si un programa, está constituido por más de una función, las llamadas a la misma, pueden realizarse desde cualquier parte del programa, y la definición de ellas debe ser independiente unas de otras. DECLARACIÓN Cada función debe ser declarada. Su forma general es: tipo nombre función (lista de tipos (y nombres) de los argumentos); Si una función va usar argumentos, debe declarar variables que acepten los valores de los argumentos. Estas variables se llaman parámetros formales de la función y se comportan como variables locales dentro de la función, creándose al entrar en la función y destruyéndose al salir. La declaración de parámetros aparece después del nombre de la función al definirla. En C, todas las funciones están al mismo nivel, es decir, no se puede definir una función dentro de otra función. Esto es por lo que C no es técnicamente un lenguaje estructurado por bloques. 5
  • 6. El código de una función es privado a esa función y sólo se puede acceder a él mediante una llamada a esa función. Las variables definidas dentro de una función son locales (a no ser que las definamos globales). FUNCION VOID La palabra reservada void es utilizada para declarar funciones sin valor de retorno y también para indicar que una función específica no requiere de parámetros. Mediante la sentencia return, el programa puede devolver un código de terminación al proceso de llamada (Ej.: entero a Shell de comandos en Unix). El valor devuelto puede ser 0 que indica terminación normal o un valor que identifica un error detectado por el programa. El valor devuelto puede ser usado para ejecución condicional de comandos en shell en Unix. FUNCIONES ANIDADAS C++ no permite anidar funciones, sin embargo, dentro de una función puede existir la llamada a una o más funciones declaradas previamente. VENTAJAS 1. Facilita el diseño descendente. 2. 2.- Los procedimientos dentro de ellas se pueden ejecutar varias veces. 3. 3.- Facilita la división de tareas. 4. 4.- Se pueden probar individualmente 5. 5.- Con funciones apropiadamente diseñadas, es posible ignorar como se realiza una tarea, sabiendo qué es lo que hacen. 6. Reduce el código de programación 7. Permite usar menos memoria 8. Reduce la probabilidad de errores. 6
  • 7. EJERCICIOS DE FUNCIONES CON VECTORES: APLICACIÓN Nº1:  Enunciado Diseñe un programa en C utilizando funciones que me permitan ingresar datos en 2 vectores con datos enteros entre 3 y 53, recorrer cada vector y formar un solo vector con datos intercalados tomando un dato del primer y un dato de el segundo, presentar el vector resultante ordenado en forma ascendente y descendente.  Análisis En el siguiente programa utilizaremos funciones para el ingreso de los vectores, también validaremos los vectores entre 3 y 53. Luego en un ciclo for realizamos las operaciones para la intercalación de los dos vectores.  Codificación }#include<stdio.h> #include<conio.h> #include<stdlib.h> int l,i,v1[25],v2[25],f,x,vt[25],a,aux,j; void ingvect1() { f=15; for(i=1;i<=l;i++) { do{ gotoxy(20,f);printf(" "); gotoxy(20,f);scanf("%d",&v1[i]); } while(v1[i]<3 || v1[i]>53); f=f+1; } } void ingvect2() { f=15; for(i=1;i<=l;i++) 7
  • 8. { do{ gotoxy(40,f);printf(" "); gotoxy(40,f);scanf("%d",&v2[i]); } while(v2[i]<3 || v2[i]>53); f=f+1; } } void vectaltern() { a=1; for(i=1;i<=(l*2);i++) { vt[a]=v1[i]; a=a+1; vt[a]=v2[i]; a=a+1; } f=25; for(i=1;i<=(l*2);i++) { gotoxy(20,f);printf("%d",vt[i]); f=f+1; } } void orden() { for(i=1;i<=(l*2);i++) { for(j=1;j<=(l*2);j++) { gotoxy(17,24);printf("Alternado"); if(vt[i]<vt[j]) { aux=vt[i]; 8
  • 9. vt[i]=vt[j]; vt[j]=aux; } } } } void ordasc() { f=25; j=1; for(i=1;i<=(l*2);i++) { gotoxy(30,24);printf("Ascendente"); gotoxy(35,f);printf("%d",vt[i]); f=f+1; j=j+1; } } void ordesc() { f=25; for(i=j-1;i>=1;i--) { gotoxy(44,24);printf("Descendente"); gotoxy(50,f);printf("%d",vt[i]); f=f+1; } } void main() { int op; do{ clrscr(); gotoxy(10,10);printf("Ingrese el L¡mite :");scanf("%d",&l); gotoxy(14,14);printf("<<<VECTOR 1>>>"); gotoxy(34,14);printf("<<<VECTOR 2>>>"); ingvect1(); 9
  • 10. ingvect2(); vectaltern(); orden(); ordasc(); ordesc(); gotoxy(19,48);printf("Oprima 1 para continuar o 0 para cancelar :");scanf("%d",&op); } while(op==1); getch(); }  Ejecución del Programa 10
  • 11. APLICACIÓN Nº2 :  Enunciado Diseñe un programa utilizando vectores y funciones que me permita llenar un vector en forma intercalada con dos factores leidos desde teclado en donde el primer factor sea siempre un multiplo de tres y el segundo factor sea siempre un multiplo de 4, recorra el vector y encuentre todos los n£meros pares, asignelos a un nuevo vector y presentelos en forma ordenada ascendente y descendente  Análisis En el siguiente programa utilizaremos funciones y vectores en el cual encontraremos el intercalar de dicho vector, cuyo vector sea un múltiplo de 3 y múltiplos de 4. Utilizamos las estructuras do while, for e if para estructurar el programa.  Codificación: #include<stdio.h> #include<conio.h> #include<math.h> void main() { int col,f,li,mt,r,mc,r1,i,im,pa,x,v1[20],t,c,a; clrscr(); gotoxy(27,2);printf("VECTOR CON MULTIPLOS 3 Y 4"); gotoxy(5,5);printf("Ingresar un limite: ");scanf("%d",&li); do{ gotoxy(36,10);printf(" "); gotoxy(10,10);printf("Ingrese un multiplo de 3: ");scanf("%d",&mt); } while(mt%3>=1); do{ gotoxy(36,12);printf(" "); gotoxy(10,12);printf("Ingrese un multiplo de 4: ");scanf("%d",&mc); } while(mc%4>=1); flushall(); 11
  • 12. f=20; a=1; for(i=1;i<=(li*2);i++) { t=i*mt; v1[a]=t; a=a+1; c=i*mc; v1[a]=c; a=a+1; } f=25; for(i=1;i<=(li*2);i++) { gotoxy(20,f);printf("%d",v1[i]); f=f+1; } getch();}  Ejecucón del programa: 12
  • 13. EJERCICIOS DE FUNCIONES CON MATRICES: APLICACIÓN Nº1 :  Enunciado Diseñe un programa utilizando funciones y matrices que me permita realizar las cuatro operaciones básicas Análisis El presente programa usa funciones, para ello primeramente declaramos las variables globales que nos servirán para todo el programa estas variables globales van colocadas debajo del ingreso de librerías y antes de la declaración de la primera función. En este caso mi primera función es void borde(), abrimos llaves y allí esta el detalle del borde que se genera, para terminar la función cerramos la llave. Luego tenemos la función ingreso, donde van los for que me ayudan a generar o lectura de la matriz y el ingreso del limite que se caracteriza por poseer en su sentencia scanf("%d",&l), a través de ello ingreso el límite de mi vector con el cual se genrará una matriz cuadrátida del orden del limite. Como requisito para que se imprima la diagonal principal tenemos que los subíndices i == j, y con dos lazos for se imprime la matriz, con la condición if (i==j), designamos solo la diagonl principal en la que deben insertarse los numero pares, en la diagonal secundaria los impares y cerramos el programa al final con la función principal y haciendo el llamad a cada una de las funciones insertadas, así como;borde(), ingreso().  Codificación: #include<stdio.h> #include<conio.h> int matriz1[20][20],matriz2[20][20],matriz3[20][20],i,lim,fila,j,col,op,sal,rep; void borde() { int i; textcolor(5); for(i=2;i<=24;i++) { gotoxy(2,i);cprintf("*"); gotoxy(78,i);cprintf("*"); } 13
  • 14. for(i=2;i<=78;i++) { gotoxy(i,2);cprintf("*"); gotoxy(i,24);cprintf("*"); } } void ingreso(int lim) { col=9;fila=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { gotoxy(7,8);printf(" MATRIZ 1 "); gotoxy(col,fila);scanf("%d",&matriz1[i][j]); col=col+2; } fila=fila+2; col=9; } textcolor(10); col=25;fila=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { gotoxy(22,8);printf(" MATRIZ 2 "); gotoxy(col,fila);scanf("%d",&matriz2[i][j]); col=col+2; } fila=fila+2; col=25; } } void suma(int lim) { fila=10; col=45; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { textcolor(8); gotoxy(43,8);cprintf(" RESPUESTAS "); matriz3[i][j]=matriz1[i][j]+matriz2[i][j]; 14
  • 15. gotoxy(col,fila);cprintf("%d",matriz3[i][j]); col=col+3; } fila=fila+3; col=45; } } void resta(int lim) { col=45;fila=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { gotoxy(43,8);printf("RESPUESTA "); matriz3[i][j]=matriz1[i][j]-matriz2[i][j]; gotoxy(col,fila);printf("%d",matriz3[i][j]); col=col+3; } fila=fila+3; col=45; } } void multiplicacion(lim) { col=45;fila=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { gotoxy(43,8);printf("RESPUESTAS"); matriz3[i][j]=matriz1[i][j]*matriz2[i][j]; gotoxy(col,fila);printf("%d",matriz3[i][j]); col=col+3; } fila=fila+3; col=45; } } void main() { int lim,i,j; do{ 15
  • 16. do{ clrscr(); borde(); gotoxy(20,6);cprintf(" MENU DE OPCIONES "); gotoxy(10,8);cprintf(" 1.- SUMA "); gotoxy(10,10);cprintf(" 2ú- RESTA "); gotoxy(10,12);cprintf(" 3ú- MULTILICACION "); gotoxy(10,14);cprintf(" 4ú- SALIR "); gotoxy(10,16);printf(" INGRESE EL LIMITE "); scanf("%d",&lim ); gotoxy(4,18);cprintf(" Ingrese la opcion que desee: ");scanf("%d",&op); switch (op) { //suma case 1: clrscr(); borde(); textcolor(9); gotoxy(35,3);cprintf(" **MATRICES** "); gotoxy(28,5);printf("SUMA DE DOS MATRICES "); gotoxy(44,20);cprintf(" WILMA CA¥AR "); ingreso(lim); suma(lim); break; //resta case 2: clrscr(); borde(); gotoxy(30,5);printf(" RESTA "); gotoxy(25,26);cprintf(" WILMA CA¥AR "); ingreso(lim); resta(lim); break; //multiplicacion case 3: clrscr(); borde(); gotoxy(30,5);printf(" MULTIPLICACION"); gotoxy(25,26);cprintf(" WILMA CA¥AR "); ingreso(lim); multiplicacion(lim); break; //salir case4: clrscr(); exit(); break; } 16
  • 17. textcolor(7); gotoxy(5,23);cprintf("Ingrese 0 para elegir una nueva opcion 1 para salir: ");cscanf("%d",&rep); } while(rep==0); textcolor(2); gotoxy(5,24);cprintf(" Ingrese 1 para continuar 0 para salir: "); cscanf("%d",&sal); textcolor(3); } while(sal==1); getch(); }  Ejecución del programa 17
  • 18. APLICACIÓN Nº2  Enunciado Diseñe un programa en el que se genera una matriz de las dimensiones de límite cuya diagonal principal contenga los números pares y en la diagonal secundaria contenga los números impares el resto de posiciones de la matriz sean rellenados con ceros.  Análisis El presente programa usa funciones, para ello primeramente declaramos las variables globales que nos servirán para todo el programa estas variables globales van colocadas debajo del ingreso de librerías y antes de la declaración de la primera función. En este caso mi primera función es void borde(), abrimos llaves y allí esta el detalle del borde que se genera, para terminar la función cerramos la llave. Luego tenemos la función ingreso, donde van los for que me ayudan a generar o lectura de la matriz y el ingreso del limite que se caracteriza por poseer en su sentencia scanf("%d",&l), a través de ello ingreso el límite de mi vector con el cual se genrará una matriz cuadrátida del orden del limite. Como requisito para que se imprima la diagonal principal tenemos que los subíndices i == j, y con dos lazos for se imprime la matriz, con la condición if (i==j), designamos solo la diagonl principal en la que deben insertarse los numero pares, en la diagonal secundaria los impares y cerramos el programa al final con la función principal y haciendo el llamad a cada una de las funciones insertadas, así como;borde(), ingreso().  Codificación # include<conio.h> //ingreso de librerías # include<stdio.h> int i, j, fil, col,x,y,l,f,c,op; //declaración de variables globales y de matrices int matriz[10][10]; void borde() //function borde { for(i=2;i<=80;i++) //diseño del borde { textcolor(11); gotoxy(i,2);cprintf("*"); gotoxy(i,45);cprintf("*"); } for(i=2;i<=45;i++) { gotoxy(2,i);cprintf("*"); gotoxy(80,i);cprintf("*"); 18
  • 19. } } void ingreso() //function ingreso { clrscr(); textcolor(11); gotoxy(15,5);cprintf("INGRESO LIMITE: ");scanf("%d",&l); //lee datos desde teclado for(f=1;f<=l;f++) //dos lazos for para ingreso de matriz { for(c=1;c<=l;c++) { matriz[f][c]=0; gotoxy(f*3+8,c*2+8);cprintf("%d", matriz[f][c]); //impression de matriz[f][c] } } x=2; for(f=1;f<=l;f++) //lazos for para la impresión de matriz { for(c=1;c<=l;c++) { if(f==c) //condición para elegir diagonal primaria { matriz[f][c]=x; x=x+2; //x será el número par que se imprimira en diagonal principal } gotoxy(f*3+8,c*2+8);cprintf("%d", matriz[f][c]); } } x=1; //variables auxiliaries y=l; for(f=1;f<=l;f++) //lazo for para impression de diagonal secundaria { matriz[y][f]=x; gotoxy(y*3+8,f*2+8);printf("%d", matriz[y][f]); //visualización de valores enteros en diagonal secundaria que son los impares x=x+2; //determinan el valor impar y=y-1; } } void main() //Se inicializa el programa principal { borde(l); //se llama a la función borde do { clrscr(); //borrado de pantalla 19
  • 20. ingreso(); //se llama a la función ingreso de matriz gotoxy(20,23);printf("Presione 1 para continuar y 0 para salir: ");scanf("%d",&op); // bucle do/while para elección de salir o no del programa } while(op==1); getch(); } //cierre del programa general  Ejecución del programa 20
  • 21. APLICACIÓN Nº3 :  Enunciado Diseñe un programa que realice el producto de matrices, en donde se visualice las matrices 1 y 2 y la matriz resultante.  Análisis Ingreso de librerías conocidas, declaración de variables globales y de matrices, primera función, void borde, se detalla la operación que desplegará el borde. Función void ingreso donde ingresaremos las matrices y sus elementos por teclado. Función producto donde se realiza la operación de las mismas, se imprimen tres matrices. Función main llama a todas las funciones existentes: borde(), ingreso() , producto() y las titulaciones, se cierra el lazo do/while y se cierra el porgrama principal.  Desarrollo #include<stdio.h> //inclusion de librerías #include<conio.h> int l,c,c1,c2,f,f1,f2,k,i,j,op,a; //declaración de variables globales int matriz1[10][10],matriz2[10][10],matriz3[10][10]; void borde() //función borde { for(i=1;i<=25;i++) //lazos for para desplegra el borde en sus cuatro lados { gotoxy(1,i);printf("@",i); gotoxy(80,i);printf("@",i); } for(i=1;i<=80;i++) { gotoxy(i,2);printf("@",i); gotoxy(i,25);printf("@",i); } } void ingreso() //function ingreso de matrices { for(i=1;i<=l;i++) { for(j=1;j<=l;j++) { gotoxy(c,f);scanf("%d",&matriz1[i][j]); //lectura de datos ingresados por teclado c=c+5; } c=5; 21
  • 22. f=f+1; } for(i=1;i<=l;i++) //lazos for para la impresión de la matriz { for(j=1;j<=l;j++) { gotoxy(c1,f1);scanf("%d",&matriz2[i][j]); //posicionamiento e impresión de la matriz c1=c1+5; } c1=25; f1=f1+1; }} void producto() //function que realize el product de las matrices { for(i=1;i<=l;i++) //lazos para la impresión de la matriz resultante { for(j=1;j<=l;j++) { matriz3[i][j]=0; for(k=1;k<=l;k++) { matriz3[i][j]=matriz3[i][j]+matriz1[i][k]*matriz2[k][j]; //operación de matrices }}} for(i=1;i<=l;i++) { for(k=1;k<=l;k++) { gotoxy(c2,f2);printf("%d",matriz3[i][k]); //impression de matriz con dos for c2=c2+4; } c2=42; f2=f2+1; }} void main() //function principal { do { clrscr(); //borrado de pantalla borde(); //llamado a la función borde c=5; c1=25; c2=42; f=10; f1=10; 22
  • 23. f2=10; gotoxy(28,3);printf("PRODUCTO DE MATRICES"); //leyendas o titulaciones gotoxy(10,5);printf("INGRESE UN LIMITE ");scanf("%d",&l); gotoxy(5,7);printf("MATRIZ1"); gotoxy(25,7);printf("MATRIZ2"); gotoxy(40,7);printf("MATRIZ RESULTANTE"); ingreso(); //llamado a función ingreso producto(); //llamado a función producto gotoxy(8,20);printf("seleccione 1 para continuar y 0 para salir ");scanf("%d",&op); } while(op==1); //cierre de lazo do/while getch(); } //cierre del programa general  Ejecución del programa 23
  • 24. BIBLIOGRAFÍA:  http://www.monografias.com/trabajos4/lenguajec/lenguaje c.shtml  http://www.gratiszona.com/apuntes/lenguaje_c/09_funcione s.htm  http://www.mailxmail.com/curso-introduccion-lenguaje- c/funciones 24