USM PROG I
Blog informativo Cátedra de Programación I Profesor: Ing Carlos Ferrer - USM Caracas
sábado, 10 de enero de 2026
viernes, 28 de noviembre de 2025
03d.- Programación I - Funciones
Una función en C++ es un
fragmento de código que se puede llamar desde cualquier punto de un programa
principal (main). En C++ podemos diferenciar entre dos tipos de funciones:
- Aquellas que no tienen retorno void (Vacias).
- Aquellas que retornan un tipo de dato (como int, double o cualquier otro),
IMPORTANTE: NO SOBREUTILICE LAS FUNCIONES, EL USO DE LAS MISMAS SE JUSTIFICA SI DENTRO DE LOS PROGRAMAS HAY PROCEDIMIENTOS QUE SE REPITEN MULTIPLES VECES.
ORGANIZAR UN PROGRAMA CON EL USO DE LAS FUNCIONES PUEDE SER UNA COSTUMBRE INAPROPIADA.
Ejemplo de función tipo void:
Como vemos, las funciones
las hemos situado antes de la función main. Alternativamente, podemos situar el
cuerpo de las funciones después de la función main. Veamos nuevamente los dos programas haciendo ese ajuste de
posición (Colocando la función al final).
Ejemplo de función tipo
void - colocando la función al final (Noten la doble declaración):
Veamos el mismo programa
usando función de retorno - colocando la función al final (Noten nuevamente la doble declaración):
IMPORTANTE: Para retornar mas de un datos desde una función se puede utilizar datos de memoria con la técnica de los apuntadores.
martes, 25 de noviembre de 2025
03c.- Programación I - Actividad Financiera para el Jueves 27 de Nov de 2025 (semestre 2026-I)
El siguiente enlace los conducirá a un vídeo donde se ejecuta el estudio de los Prestamos o Créditos de cuota fija con interés fijo y plazo variable.
Video Explicativo - Actividad Financiera
Muchas veces se les permite a los solicitantes hacer aportes extraordinarios para reducir los periodos de pagos, en nuestro caso permitiremos un (1) solo pago extraordinario.
Se elaboró una hoja en Excel con detalles de un préstamo con la posibilidad de ejecutar aportes extraordinarios. La misma indica como se van calculando los intereses y se van ejecutando los pagos.
El archivo en Excel puede descargarse desde el siguiente enlace:
El profesor elaboró un programa que ejecuta el cálculo similar a como lo hace Excel. El siguiente enlace contiene el ejecutable del programa elaborado por el profesor:
El programa deberá manejar las siguientes condiciones:
- Intereses entre 2% y 10%.
- Periodos de pago de 12 a 48 meses.
- El programa deberá manejar al menos una estructura
- El programa deberá maximizar el uso de arreglos.
Se recomienda elaborar esta actividad aunque se aclara que ESTA ACTIVIDAD SERÁ EVALUADA
Éxito!!!!
ARCHIVO DE EXCEL
PROGRAMA
REPORTE (ARCHIVO DE TEXTO)
03b.- Programación I - Regla de Cramer (Sistema de tres ecuaciones con tres incognitas)
En algebra lineal uno de los métodos más usados para resolver sistemas de tres (3) ecuaciones con tres (3) incógnitas es la famosa "Regla de Cramer".
Veamos el siguiente ejemplo de un sistema de tres (3) ecuaciones con tres (3) incógnitas.
La regla de Cramer consiste en:
1ro.- Hallar el “Determinante de la matriz” que se construye a partir de los coeficientes que multiplican a las incógnitas de las tres ecuaciones (Para nuestro ejemplo x - y - z). Este determinante se denomina ∆.
Por ejemplo:
Para hallar el valor del determinante (∆) se copian las primeras dos (2) filas al final del determinante generando un matriz de cinco (5) filas por tres (3) columnas, para nuestro ejemplo la matriz quedaría de la siguiente forma:
Ahora repetimos el mismo procedimiento que usamos para hallar ∆ en ∆x. Copiamos las dos primeras filas al final y la convertimos en una matriz de 5 filas y 3 columnas:
En C++ existe la posibilidad de elaborar arreglos de múltiples dimensiones, en consecuencia se podría elaborar un programa que emule la Regla de Cramer, a continuación les presento una versión rápida del mismo:
PROGRAMA
/* Programa para resolver sistemas de 3 ecuaciones
con 3 incógnitas aplicando el método de Cramer
elaborado por Carlos Ferrer
rev 24 de Nov de 2025
*/
#include <iostream>
#include <locale.h>
using namespace std;
main()
{
int fila,col,i,j,k,m,fin;
int ma [4][5]={0};
int aux [6][4]={0};
int delta,deltax,deltay,deltaz;
string frase;
char delt=30;
setlocale (LC_ALL,"spanish");
cout <<"Método de Cramer resolver sistemas de tres ecuaciones"<<endl;
cout <<"con tres incógnitas"<<endl<<endl;
// Leemos los coeficientes de las tres ecuaciones
for (i=1;i<=3;i=i+1)
{
for (j=1;j<=4;j=j+1)
{
if (j==1)
{
frase="el coeficiente de la variable X";
}
if (j==2)
{
frase="el coeficiente de la variable Y";
}
if (j==3)
{
frase="el coeficiente de la variable Z";
}
if (j==4)
{
frase="el valor del resultado";
}
cout <<endl<<endl<<"Ingrese "<<frase<<" de la"<<endl;
cout <<"ecuación Nro. "<<i <<"= ";
cin >>ma[i][j];
system("cls");
// Presentamos las ecuaciones en la medida que se escriben
for (m=1;m<=i;m=m+1)
{
cout <<endl;
if (m==i)
{
fin=j;
}
else
{
fin=4;
}
for (k=1;k<=fin;k=k+1)
{
if(k==1)
{
cout <<ma[m][k]<<"x";
}
if(k==2 and ma[m][k]>0)
{
cout <<"+"<<ma[m][k]<<"y";
}
if(k==2 and ma[m][k]<0)
{
cout <<ma[m][k]<<"y";
}
if(k==3 and ma[m][k]>0)
{
cout <<"+"<<ma[m][k]<<"z";
}
if(k==3 and ma[m][k]<0)
{
cout <<ma[m][k]<<"z";
}
if(k==4)
{
cout <<"="<<ma[m][k];
}
}
}
}
}
cout <<endl<<endl;
//Imprimimos la matriz ingresada
for (fila=1;fila<=3;fila=fila+1)
{
cout <<"|";
for (col=1;col<=3;col=col+1)
{
cout <<ma[fila][col];
if (ma[fila][col]<0)
{
cout <<" ";
}
else
{
cout <<" ";
}
}
cout <<"|";
cout<<endl;
}
// Copiamos la matriz ingresada en la matriz aux
for (fila=1;fila<=3;fila=fila+1)
{
for (col=1;col<=3;col=col+1)
{
aux[fila][col]=ma[fila][col];
}
}
// Copiamos las dos primeras filas en las filas cuatro y cinco
for (fila=1;fila<=2;fila=fila+1)
{
for (col=1;col<=3;col=col+1)
{
aux[fila+3][col]=aux[fila][col];
}
}
// Calculamos delta
delta=0;
col=1;
for (fila=1;fila<=3;fila=fila+1)
{
delta=delta+ ((aux[fila][1]*aux[fila+1][2]*aux[fila+2][3])-(aux[fila][3]*aux[fila+1][2]*aux[fila+2][1]));
}
// Copiamos la matriz original en la matriz aux
for (fila=1;fila<=3;fila=fila+1)
{
for (col=1;col<=3;col=col+1)
{
aux[fila][col]=ma[fila][col];
}
}
//Copiamos los resultados en la primera columna
aux[1][1]=ma[1][4];
aux[2][1]=ma[2][4];
aux[3][1]=ma[3][4];
// Repetimos las dos primeras filas en las filas cuatro y cinco
for (fila=1;fila<=2;fila=fila+1)
{
for (col=1;col<=3;col=col+1)
{
aux[fila+3][col]=aux[fila][col];
}
}
// Calculamos delta x
deltax=0;
col=1;
for (fila=1;fila<=3;fila=fila+1)
{
deltax=deltax+ ((aux[fila][1]*aux[fila+1][2]*aux[fila+2][3])-(aux[fila][3]*aux[fila+1][2]*aux[fila+2][1]));
}
// Copiamos la matriz original en la matriz aux
for (fila=1;fila<=3;fila=fila+1)
{
for (col=1;col<=3;col=col+1)
{
aux[fila][col]=ma[fila][col];
}
}
//Copiamos los resultados en la segunda columna
aux[1][2]=ma[1][4];
aux[2][2]=ma[2][4];
aux[3][2]=ma[3][4];
// Repetimos las dos primeras filas en las filas cuatro y cinco
for (fila=1;fila<=2;fila=fila+1)
{
for (col=1;col<=3;col=col+1)
{
aux[fila+3][col]=aux[fila][col];
}
}
// Calculamos delta y
deltay=0;
col=1;
for (fila=1;fila<=3;fila=fila+1)
{
deltay=deltay+ ((aux[fila][1]*aux[fila+1][2]*aux[fila+2][3])-(aux[fila][3]*aux[fila+1][2]*aux[fila+2][1]));
}
// Copiamos la matriz original en la matriz aux
for (fila=1;fila<=3;fila=fila+1)
{
for (col=1;col<=3;col=col+1)
{
aux[fila][col]=ma[fila][col];
}
}
//Copiamos los resultados en la tercera columna
aux[1][3]=ma[1][4];
aux[2][3]=ma[2][4];
aux[3][3]=ma[3][4];
// Repetimos las dos primeras filas en las filas cuatro y cinco
for (fila=1;fila<=2;fila=fila+1)
{
for (col=1;col<=3;col=col+1)
{
aux[fila+3][col]=aux[fila][col];
}
}
// Calculamos delta z
deltaz=0;
col=1;
for (fila=1;fila<=3;fila=fila+1)
{
deltaz=deltaz+ ((aux[fila][1]*aux[fila+1][2]*aux[fila+2][3])-(aux[fila][3]*aux[fila+1][2]*aux[fila+2][1]));
}
// Presentamos resultados
cout <<endl<<delt<<"="<<delta<<endl;
cout <<delt<<"x="<<deltax<<endl;
cout <<delt<<"y="<<deltay<<endl;
cout <<delt<<"z="<<deltaz<<endl;
cout <<endl<<"El valor de la variable x="<<deltax/delta<<endl;
cout <<"El valor de la variable y="<<deltay/delta<<endl;
cout <<"El valor de la variable z="<<deltaz/delta<<endl;
}


















