Funciones lenguaje c modulo4

Desarrollo de funciones en lenguaje c

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

Recomendados

FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE Cflaquita_dany
3.4K visualizações23 slides
Funciones en C++Funciones en C++
Funciones en C++ANDRES FELIPE CRUZ ERAZO
4.2K visualizações18 slides
Elemento 4Elemento 4
Elemento 4mariaamec
370 visualizações27 slides
Logica subprogramasLogica subprogramas
Logica subprogramasmemorales_IUE
2K visualizações18 slides

Mais conteúdo relacionado

Mais procurados

Funciones C++ modificadoFunciones C++ modificado
Funciones C++ modificadocompumet sac
1.1K visualizações10 slides
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Bryangio2002
64 visualizações60 slides
Tema 7 www.fresymetal.comTema 7 www.fresymetal.com
Tema 7 www.fresymetal.comFresyMetal
495 visualizações33 slides
Unidad IIIUnidad III
Unidad IIIAnaida Escalona Tona
743 visualizações19 slides
FuncionesFunciones
FuncionesFernando Solis
5.8K visualizações16 slides
OperadoresOperadores
OperadoresFernando Solis
239 visualizações20 slides

Mais procurados(20)

Funciones C++ modificadoFunciones C++ modificado
Funciones C++ modificado
compumet sac1.1K visualizações
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++
Bryangio200264 visualizações
Tema 7 www.fresymetal.comTema 7 www.fresymetal.com
Tema 7 www.fresymetal.com
FresyMetal495 visualizações
Unidad IIIUnidad III
Unidad III
Anaida Escalona Tona743 visualizações
FuncionesFunciones
Funciones
Fernando Solis5.8K visualizações
OperadoresOperadores
Operadores
Fernando Solis239 visualizações
FuncionesFunciones
Funciones
Fernando Solis1.2K visualizações
Funciones en c++Funciones en c++
Funciones en c++
Jose Eamirez2.8K visualizações
Presen iii  26 funcionesPresen iii  26 funciones
Presen iii 26 funciones
RafaeloRivas151 visualizações
Tutorial jaredTutorial jared
Tutorial jared
HUGOJAREDSANCHEZMARTINEZ53 visualizações
JavadocJavadoc
Javadoc
Fernando Solis1.2K visualizações
Estructuras de controlEstructuras de control
Estructuras de control
Fernando Solis10.1K visualizações
Funciones con vectores y matrices1Funciones con vectores y matrices1
Funciones con vectores y matrices1
Marlene Pallo261 visualizações
vectores y matricesvectores y matrices
vectores y matrices
Marlene Pallo596 visualizações
84481486818448148681
8448148681
David Brigido833 visualizações
OPERADORES PARA C++OPERADORES PARA C++
OPERADORES PARA C++
Idalia Tristan4.6K visualizações
Java - Sintaxis Básica 2015Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015
Renny Batista2.3K visualizações
Algoritmos y programacion en C++Algoritmos y programacion en C++
Algoritmos y programacion en C++
Alejandro Leon Cerna12.4K visualizações
Elementos basicos c++Elementos basicos c++
Elementos basicos c++
Tensor2.9K visualizações
Instrucciones para c_Instrucciones para c_
Instrucciones para c_
GamePlayer35113 visualizações

Similar a Funciones lenguaje c modulo4

Funciones en CFunciones en C
Funciones en CLupitaOMG Garmendia
264 visualizações16 slides
Presentacion capitulo 6Presentacion capitulo 6
Presentacion capitulo 6Pablito Tatito Cueva
254 visualizações18 slides
Unidad 2 funcionesUnidad 2 funciones
Unidad 2 funcionesDenisse C
520 visualizações16 slides
Metodos funcionesMetodos funciones
Metodos funcioneseulo10
692 visualizações8 slides
FuncionesFunciones
FuncionesPaulo Guerra Terán
812 visualizações21 slides
Funcionesclase1Funcionesclase1
Funcionesclase1computaciondosunefm
225 visualizações11 slides

Similar a Funciones lenguaje c modulo4(20)

Funciones en CFunciones en C
Funciones en C
LupitaOMG Garmendia264 visualizações
Presentacion capitulo 6Presentacion capitulo 6
Presentacion capitulo 6
Pablito Tatito Cueva254 visualizações
Unidad 2 funcionesUnidad 2 funciones
Unidad 2 funciones
Denisse C520 visualizações
Metodos funcionesMetodos funciones
Metodos funciones
eulo10692 visualizações
FuncionesFunciones
Funciones
Paulo Guerra Terán812 visualizações
Funcionesclase1Funcionesclase1
Funcionesclase1
computaciondosunefm225 visualizações
6 libro fundamentos cap__modularidad_ecler mv6 libro fundamentos cap__modularidad_ecler mv
6 libro fundamentos cap__modularidad_ecler mv
Ecler Mamani Vilca744 visualizações
Funciones en VBFunciones en VB
Funciones en VB
Leonardo Paul Lopez Zambrano583 visualizações
P_UNIDAD 4 FUNCIONES.pptxP_UNIDAD 4 FUNCIONES.pptx
P_UNIDAD 4 FUNCIONES.pptx
Sonia Fernandez Sapena3 visualizações
Funcionesenlenguaje cFuncionesenlenguaje c
Funcionesenlenguaje c
Gladys Coromoto Vergel Rivera881 visualizações
Guía funcionesGuía funciones
Guía funciones
Inés Andara1.7K visualizações
Actividad 5. Ejercicios.docxActividad 5. Ejercicios.docx
Actividad 5. Ejercicios.docx
SnorkReyes308 visualizações
05 - Funciones en lenguaje C05 - Funciones en lenguaje C
05 - Funciones en lenguaje C
Diego Andrés Alvarez Marín1.7K visualizações
FuncionesFunciones
Funciones
adark5.3K visualizações
Que es una directiva de preprocesadorQue es una directiva de preprocesador
Que es una directiva de preprocesador
Andrew King1.9K visualizações
07 funciones07 funciones
07 funciones
Cesar Oswaldo Osorio Agualongo514 visualizações
Funciones subrutinas y procedimientosFunciones subrutinas y procedimientos
Funciones subrutinas y procedimientos
jnarchie21.3K visualizações
PresentacionPresentacion
Presentacion
Javier Herrera290 visualizações
Programación ModularProgramación Modular
Programación Modular
lisbeca362 visualizações
Estructura de datos , investigacion 2Estructura de datos , investigacion 2
Estructura de datos , investigacion 2
xgianx177 visualizações

Último(20)

5°_GRADO_-_ACTIVIDAD_DEL_22_DE_NOVIEMBRE.doc5°_GRADO_-_ACTIVIDAD_DEL_22_DE_NOVIEMBRE.doc
5°_GRADO_-_ACTIVIDAD_DEL_22_DE_NOVIEMBRE.doc
josetejada22038055 visualizações
PREGUNTAS PARA EL DEBATE ACADÉMICO.docxPREGUNTAS PARA EL DEBATE ACADÉMICO.docx
PREGUNTAS PARA EL DEBATE ACADÉMICO.docx
edwin701.2K visualizações
Tema 7. Riesgos internos (1a parte).pdfTema 7. Riesgos internos (1a parte).pdf
Tema 7. Riesgos internos (1a parte).pdf
IES Vicent Andres Estelles48 visualizações
Contenidos y PDA 4° Grado.docxContenidos y PDA 4° Grado.docx
Contenidos y PDA 4° Grado.docx
Norberto Millán Muñoz59 visualizações
semana 2 .pdfsemana 2 .pdf
semana 2 .pdf
ValdezsalvadorMayleM40 visualizações
2023 - Cuarto Encuentro - Sociedad y Videojuegos  2023 - Cuarto Encuentro - Sociedad y Videojuegos
2023 - Cuarto Encuentro - Sociedad y Videojuegos
Maestría en Comunicación Digital Interactiva - UNR84 visualizações
Herramientas para Educación a Distancia.pptxHerramientas para Educación a Distancia.pptx
Herramientas para Educación a Distancia.pptx
a222381002832 visualizações
Semana 3.pdfSemana 3.pdf
Semana 3.pdf
ValdezsalvadorMayleM53 visualizações
Teoria y Practica de Mercado 2023.docxTeoria y Practica de Mercado 2023.docx
Teoria y Practica de Mercado 2023.docx
Maribel Cordero45 visualizações
Carta-Elfo-Llegada.pdfCarta-Elfo-Llegada.pdf
Carta-Elfo-Llegada.pdf
IsabelCalvoMartinez127 visualizações
Misión en favor de los necesitados.pdfMisión en favor de los necesitados.pdf
Misión en favor de los necesitados.pdf
Alejandrino Halire Ccahuana56 visualizações
La  Función de Tutoría   TOE1   Ccesa007.pdfLa  Función de Tutoría   TOE1   Ccesa007.pdf
La Función de Tutoría TOE1 Ccesa007.pdf
Demetrio Ccesa Rayme324 visualizações
Gestion del Talento Humano  GTH1 Ccesa007.pdfGestion del Talento Humano  GTH1 Ccesa007.pdf
Gestion del Talento Humano GTH1 Ccesa007.pdf
Demetrio Ccesa Rayme24 visualizações
SESIÓN LANZAMIENTO DE BALA.pdfSESIÓN LANZAMIENTO DE BALA.pdf
SESIÓN LANZAMIENTO DE BALA.pdf
ELIDALOPEZFERNANDEZ27 visualizações
CONVERSACIONES SAN ESTEBAN 23-24CONVERSACIONES SAN ESTEBAN 23-24
CONVERSACIONES SAN ESTEBAN 23-24
San Esteban Comunicación Dominicos de Salamanca119 visualizações

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