Tareas Especiales

FUNCIONES Y PROCEDIMIENTOS EN C++
Un camino para dividir un gran programa en partes mas pequeñas es el uso de los llamados procedimientos.
Un procedimiento es un grupo de instrucciones, variables, constantes, etc, que estan diseñados con un próposito particular y tiene su nombre propio.
Es decir un procedimiento es un modulo de un programa que realiza tareas especificas y que no puede regresar valores a la parte principal del programa u otro procedimiento que lo este invocando.
Despues de escribir un procedimiento se usa su propio nombre como una sola instrucción o llamada al procedimiento.
Los procedimientos se podran escribir despues del cuerpo principal del programa utilizando el formato:
void NomProc(){instrucciones;};
Pero tambien los procedimientos deberan declararse antes del main como lo muestra el programa ejemplo.
Sin embargo el procedimiento se construye antes del main() entonces no hay necesidad de declararlo antes.
Un programa puede tener tantos procedimientos como se deseen para hacer una llamada o invocación al procedimiento durante la ejecución de un programa solo se debera escribir el nombre del procedimiento y los parentesis en blanco.
Prog11.cpp
#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

{

clrscr();

// recordar declarar primero proc y funciones

void proc1();

//llamando o activando procedimiento

proc1();

} // fin del main

void proc1()

{

// area de declaracion de variables y captura de datos

int base1,altura; float area;

//area de captura

printf("dame base: ");scanf("%d",&base1);

printf("dame altura: ");scanf("%d",&altura);

// area de operaciones

area = base1 * altura / 2;

// area de despliegue

printf("area=%0.2f",area);

getchar();getchar();

}

// fin proc 
Recordar que se pueden crear el procedimiento o los procedimientos (aunque realmente es una función) arriba o abajo de la parte principal del programa.
Recordar tambien que un programa puede tener muchos procedimientos, y estos pueden llamarse o invocarse entre si.
MUCHO OJO con la nota anterior, es valido que un procedimiento se llame o invoque o se active a si mismo o usando una referencia circular, por ejemplo proc1, activa proc2 que a su vez llama a proc1 esto se llama recursión y si no se controla con una instrucción if(condición)break o exit(no me acuerdo cual de las dos) se va a obtener un hermoso ciclo infinito, muy divertido cuando le pasa a los programas de los compañeros, estan avisados.
Como se observa un procedimiento puede ser un programa completo.
TAREAS PROGRAMACION C++ Construir los siguientes programas con procedimientos
a) Convertir $800.00 Pesos a dolares.
b) Calcular el Area de un triangulo de base=20 y altura=30.
c) Desplegar una Boleta de calificaciones.
 

Matrices
Es una zona de almacenamiento contiguo, que contiene una serie de elementos del mismo tipo, los elementos de la matriz
Desde el punto de vista lógico podemos considerarlas como un conjunto de elementos ordenados en fila. Así pues, en principio todas las matrices son de una dimensión, la dimensión principal, pero veremos que los elementos de esta fila pueden ser a su vez matrices (un proceso que puede ser recursivo), lo que nos permite hablar de la existencia de matrices multi-dimensionales, aunque las más fáciles de "ver" o imaginar son las de dos y tres dimensiones.
Como advertencia para los lectores que han utilizado matrices en otros lenguajes, señalar que quizás el aspecto más significativo del manejo de matrices en C++, es que el compilador desconoce su tamaño, de forma que el programador debe adoptar precauciones para no salir de sus límites, ya que el compilador permite referenciar elementos inexistentes, más allá del final de la matriz, con el consiguiente riesgo de error. En este capítulo abordaremos todo lo necesario para manejarlas en C++.


EJEMPLO
#include<stdio.h>
#include<conio.h>
 void producto(int [10][10],int [10][10]);
 int i=0,j=0,m=0,n=0,s=0,x=0,a[10][10],b[10][10],d[10][10];
 int t=0,g=0,k=0;
main()
{
printf("\n # de filas de a:");
   scanf("%d",&n);
   printf("\n de columnas de a y filas de b:");
   scanf("%d",&m);
   printf("\n de columnas de b:");
   scanf("%d",&x);
producto(a,b);
 }
  void producto(int a[10][10],int b[10][10])
 {
 
  for(i=0;i<n;i++){
  for(j=0;j<m;j++){
   printf("\n elemento a[%d,%d]:",i+1,j+1);
   scanf("%d",&a[i][j]);
   }
   }
   for(i=0;i<m;i++){
   for(j=0;j<x;j++){
    printf("\n elemento b[%d,%d]:",i+1,j+1);
    scanf("%d",&b[i][j]);
    }
    }
     for(i=0;i<n;i++){
        for(j=0;j<x;j++){
    s=0,g=0;
    for(k=0;k<m;k++){
     g=a[i][k]*b[k][j];
     t=t+g;
     }
     d[i][j]=t;
     }
     }
    printf("\n la matriz a es:\n");
    for(i=0;i<n;i++){
     for(j=0;j<m;j++){
      printf("%3d",a[i][j]);
      }
      printf("\n");
      }
     printf("\n la matriz b es :\n");
     for(i=0;i<n;i++){
      for(j=0;j<x;j++){
       printf("%3d",b[i][j]);
       }
       printf("\n");
       }
     
     printf("\n la resultante de la multiplicacion de las matrices a y b es:\n");
     for(i=0;i<n;i++){
      for(j=0;j<x;j++){
       printf("%3d",d[i][j]);
       }
       printf("\n");
       }
                    
       printf("\n presione una tecla para continuar:");
       getch();
       clrscr();
       return(0);
}