Sunteți pe pagina 1din 24

Programacion Matemática C

Jerry Tacán, Alex Cepeda


Universidad de las Fuerzas Armadas ESPE
Sangolquı́, Ecuador
e-mail: jatacan@espe.edu.ec
e-mail:alcepeda1@espe.edu.ec

Abstract: n this document, the structure that should be used in C + + is explained, expanding the scope it has as a program-
ming language to convert it into an CAS algebraic computer system, defining its basic concepts to work on it.
Keywords—C++,Programming, Algebraic.
Resumen: En el presente documento se detallan la estructura que debe utilizarse en C++ ampliando el alcance que tiene como
lenguaje de programación para convertirlo en un sistema de computación algebráica CAS, definiendo sus conceptos básicos
para trabajar en ella. Palabras clave—C++, Programació, Algebráico.

TABLA I
ESTRUCTURA DE UN PROGRAMA

AFIRMACIÓN JUSTIFICACIÓN

/* Aqui se puede poner


comentarios, asi como Existen dos formas de para comentarios en
DEV C++ y la primera forma es abriendo y
el autor, la descripcion cerrando con /* y */.
del ejercicio*/

#include <iostream> El comando # include < iostream > permi-


te incluir librerı́as a utilizar en el programa.

Al ser C++ una ampliación del lenguaje C,


es necesario agregar nuevas palabras reser-
using namespace std; vadas. Éstas palabras reservadas están en un
“namespace” (espacio de nombres). Para ser
mas especı́ficos, las palabras reservadas cout
y cin están el namespace std (standard).

int main(){ El main es el programa principal desde el


cout<<"Hola Mundo\n"; cual todas las lı́neas se ejecutan. El cout sir-
ve para mostrar lo que se haya escrito dentro
} de las comillas.

//El cout ayuda a mostrar


//Esta linea de codigo Finalmente la otra forma de comentar lı́neas
de código es con // lo cual funciona solo para
//imprime Hola mundo lı́neas.
}

1
/* Aqui se puede poner
comentarios, asi como
el autor, la descripcion
del ejercicio*/

#include <iostream>

using namespace std; Finalmente uniendo todo el código se puede


ver un programa compacto.
int main(){
cout<<"Hola Mundo\n";
//El cout ayuda a mostrar
//Esta linea de codigo
//imprime Hola mundo
}

Análisis: En la tabla se puede observar la estructura que debe llevar un programa, ası́ como los comentarios y la descripción
también la inclusión de las librerı́as. Después tiene que ir la declaración de las variables globales que van a ser utilizadas en
todo el programa, después vienen los métodos que cumplen las condiciones determinadas.

TABLA II
ESTRUCTURA DE UN PROGRAMA

AFIRMACIÓN JUSTIFICACIÓN

#include <iostream> Tomando en cuenta que las biblio-


using namespace std; tecas son muy importantes en c++
int main(){ debemos saber cual nos conviene en
} este caso.

#include <iostream>
using namespace std;
int main(){
int i=4;
int j=3;
if(i==j){
/*El if es una
condicion Definimos dos variables enteras y
de afirmacion y el usamos un bucle condicional en es-
te caso if que nos ayudamos del
simbolo == es un operdor == para definir que si son
operador*/ identicos se cumpla el bucle.

cout<<"Son Iguales\n";
/*El cout imprime
son iguales*/

}
}

2
#include <iostream>
using namespace std;

int main(){
int i=4;
int j=3;
if(i==j){
/*El if es una
condicion
de afirmacion y el
simbolo == es un A continuación complementamos este códi-
operador*/ go con la contraparte por asi decirlo con el
else que nos permite al programa seguir una
cout<<"Son Iguales\n"; condicion alterna es como el ”sino”por asi
decirlo tomando la otra perspectiva del pro-
/*El cout imprime blema. entonces si no cumple la primera gra-
son iguales*/ cias a esta parte se analizara si cumple la se-
gunda condición.
}else{
/*El if es una condicion
de afirmacion absolu.
y el else de condicion
arbitaria.*/

cout<<"Son Distintos\n";
/*El cout imprime
son distintos*/
}}

Análisis: En la tabla anterior se pudo observar un ejemplo en el que se evidencia los beneficios de hacer uso de bulcles y
vemos que los operadores son muy útiles cuando trabajar con estos se trata ya que permite al lenguaje de programación que
asigne bien los valores y obtengamos resultados eficientes.

TABLA III
CONDICIONALES

AFIRMACIÓN JUSTIFICACIÓN

/*Condicionales y bucles, Como se pudo observar en la anterior tabla lo


if anidados.*/ primero hay que hacer es comentar y poner
#include <iostream> la descripción del programa, al igual que in-
cluir la librerı́a y el respectivo using names-
using namespace std; pace.

3
int main(){ Luego de haber puesto el encabezado del
int i=3; programa se procede a declarar las variables
int j=5; con las cuales se va a trabajar.

if(j>i){
if(j-i<=1){
cout<<"A:
La diferencia
es menor o Se puede observar los condicionales con los
igual que uno\n"; cuales se puede poner dentro varias condi-
}else{ ciones, también es conocido como if anida-
dos. Se puede ver el if principal el cual den-
cout<<"B: tro tiene una condición más con su respectivo
La diferencia else.
es mayor que
uno\n";
}
}

else{
if(i-j<=1){
cout<<"C:
la diferencia
es menor o igual
que uno\n"; Se realizó el respectivo else del if principal.
}else{ este tiene dentro un if más, es decir, una con-
cout<<"D: dición más con su el else dentro.
La diferencia
es mayor que
uno\n";
}
}

/*Condicionales y bucles,
if anidados.*/
#include <iostream>

using namespace std;

int main(){
int i=3;
int j=5;
if(j>i){
if(j-i<=1){
cout<<"A:
La diferencia es
menor o igual que
uno\n";
}else{ Finalmente se puede observar el código com-
cout<<"B: pleto el cual será ejecutado y se observará la
La diferencia es letra B ya que j > i.
mayor que uno\n";
}
}else{
if(i-j<=1){
cout<<"C:
La diferencia es
menor o igual que
uno\n";
}else{
cout<<"D:
La diferencia es
mayor que uno\n";
}
}
}

4
Análisis: Se puede observar los condicionales con los cuales se puede poner dentro varias condiciones, también es conocido
como if anidados. Se puede ver el if principal el cual dentro tiene una condición más con su respectivo else. Además se puede
observar todos los if anidados.

TABLA IV
CONDICIONALES - SENTENCIA SWITCH

AFIRMACIÓN JUSTIFICACIÓN

#include <iostream>
using namespace std; Podemos hacer operaciones como
sumar restar multiplicar y dividir
usando el simbolo respectivo a cada
int main(){ operación.A continuación realiza-
int OP; remos un menú esto se puede lograr
cout<< "-----MI PROGRAMA------\n"; gracias a la sentencia switch cuya
// \n se usa para dar salto de linea función es que se pueda dividir en
cout<<"----------------------\n\n\n"; sub menús asignando una variable
que sera asignada cuando ingrese-
cout<<"SELECCIONE UNA OPCION \n\n"; mos por teclado llevándonos al sub-
cout<<"1. Opcion 1\n"; menú solicitado, para esto delcara-
cout<<"2. Opcion 2\n"; mos una variable de nombre cual-
cout<<"2. Opcion 3\n"; quiera entera de preferencia, pone-
cout<<"9. Salir\n"; mos que imprima algo para que el
programa se vea más elegante y vi-
sual para el usuario al momento de
} dar a elegir las opciones.
}

#include <iostream>
using namespace std;

int main(){
int OP;
cout<< "-----MI PROGRAMA------\n";
// \n se usa para dar salto de linea
cout<<"----------------------\n\n\n";
cout<<"SELECCIONE UNA OPCION \n\n";
cout<<"1. Opcion 1\n";
cout<<"2. Opcion 2\n";
cout<<"2. Opcion 3\n";
Una vez definida la parte estética
cout<<"9. Salir\n"; vamos a pedir que el programa nos
lea el número ingresado por tecla-
cin>>OP; do con cin y de lo que se encarga el
// cin sirve para leer un dato por switch es relacionar el valor ingre-
//teclado. sado con el número asignado antes
para llevarnos a ese submenú.
switch(OP){
case 1:
cout <<"\nEstas en la opcion 1\n";
break;

/*break sirve para


detener un
proceso y seguir
con el siguiente*/
}
}

5
#include <iostream>
using namespace std;

int main(){
int OP;
cout<< "-----MI PROGRAMA------\n";
// \n se usa para dar salto de linea
cout<<"----------------------\n\n\n";
cout<<"SELECCIONE UNA OPCION \n\n";
cout<<"1. Opcion 1\n";
cout<<"2. Opcion 2\n";
cout<<"2. Opcion 3\n";
cout<<"9. Salir\n";

cin>>OP;
// cin sirve para leer un dato por
//teclado.

switch(OP){
case 1:
cout <<"\nEstas en la opcion 1\n";
break;

/*break sirve para Tengamos en cuenta que si usamos


detener un break despues de cada submenú es
proceso y seguir fundamental ya que este nos dice-
que hasta ese punto del codigo fun-
con el siguiente*/ ciona esa parte del switch, y al final
usamos return ya sea que se de enter
case 2: nos redirecciona a la opción 1.
system ("clear");
/*clear limpia
la pantalla de
ejecucion del
programa*/
cout <<"\nEstas en la opcion 2\n";
break;

case 3:
system ("clear");
cout <<"\nEstas en la opcion 3\n";
break;

case 9:
system ("clear");
cout <<"\nHasta la otra!";
return 1;
/*Return regresa a
la primera opcion*/
default:
cout<<"aaay! Esa opcion no esta disponible\n";
}
}

6
Análisis: En la tabla anterior se trabajo y explicó sobre la sentencia switch y analizamos su funcionamiento, vemos que es
muy util en cualquier programa del que se requiera hacer varias cosas y sobre todo es por partes.

TABLA V
BUCLES

AFIRMACIÓN JUSTIFICACIÓN

/*Bucles*/ Como se pudo observar en la anterior tabla lo


#include <iostream> primero hay que hacer es comentar y poner
la descripción del programa, al igual que in-
cluir la librerı́a y el respectivo using names-
using namespace std; pace.

int main(){
Una vez de haber puesto el encabezado del
programa se procede a declarar las variables
int i=2; locales para el programa.
int factorial=1;

El bucle do, bucle hacer, hacer-mientras o


do{ también llamado ciclo do-while, es una es-
hacer.. tructura de control de la mayorı́a de los len-
}while(condicion); guajes de programación estructurados cuyo
mientras propósito es ejecutar un bloque de código y
} repetir la ejecución mientras se cumpla cierta
condición expresada en la cláusula while.

do{
factorial=i*factorial; En la primera parte se declara el do, el cual
i++; declara el factorial y un contador mientras
}while(i<=5); cumpla la condición del while en este caso,
mientras el i llegue a 5. Por ello se encuentra
cout<<"\nEl factorial de 5 es:" el factorial de 5 que es 120. Como se puede
<<factorial<<endl; observar a continuación.
}

/*BUCLES*/
#include <iostream>

using namespace std;

int main(){

int i=2; Finalmente se puede observar el código com-


int factorial=1; pleto el cual será ejecutado y se observará
que el valor de factorial será 120. El cual es
do{ el de 5 factorial.
factorial=i*factorial;
i++;
}while(i<=5);
cout<<"\nEl factorial
de 5 es: "
<<factorial<<endl;
}

Análisis: En la tabla anterior se pudo observar un bucle muy importante el cual se ejecuta siempre y cuando se esté

7
cumpliendo una condición. Con la utilización de el do while o hacer mientras se realizó el cálculo de un número factorial. Es
muy importante recalcar que se debe utilizar contadores.

TABLA VI
BUCLES-WHILE

AFIRMACIÓN JUSTIFICACIÓN

#include <iostream>
using namespace std;
int main(){

int i=2;
/*Definimos una
variable y le
asignamos un A continuación en primer lugar de-
finiremos dos variables de tipo en-
valor*/ tero.
int factorial10=1;
/*Definimos otra
variable y le
asignamos un
valor*/
}
}

#include <iostream>
using namespace std;
int main(){

int i=2;
/*Definimos una
variable y le
asignamos un
valor*/
int factorial10=1;
/*Definimos otra
variable y le
asignamos un
valor*/ Una vez hecho la parte anterior va-
mos hacer uso del bucle while que
while(i<=10){ quiere decir mientras asi que tam-
/*Con while bién trabaja con condición y su fun-
al ser un cionamiento mediante operadores,
bucle condicional entonces se dice que mientras se
podemos hacer cumpla la condicion interna entre
la operacion sus parentesis el programa seguirá
su estrutura.
mientras la
condicion se
cumpla*/

factorial10=i*factorial10;
i++;
/*Los simbolos
++ hacen
referencia
a incremento
de la variable
inicial.*/
}}

8
#include <iostream>
using namespace std;
int main(){

int i=2;
/*Definimos una
variable y le
asignamos un
valor*/
int factorial10=1;
/*Definimos otra
variable y le
asignamos un
valor*/
while(i<=10){
/*Con while
al ser un
bucle condicional
podemos hacer Si el programa continua es decir si
la operacion cumplió con la condición mandare-
mientras la mos a imprimir a consola el resulta-
condicion se do
cumpla*/

factorial10=i*factorial10;
i++;
/*Los simbolos
++ hacen
referencia
a incremento
de la variable
inicial.*/

}
cout<< "RESULTADO:\n";
cout<< factorial10;
/*Imprimimos el
resultado en
consola.*/
}

Análisis: En la tabla anterior se trabajo con uno de los tantos bucles con los que c++ cuenta para trabjar en este caso es el
while que permite que el programa siga avanzando si se cumple su condición interna, siendo muy util en programas ya sean
matemáticos y de todo tipo.

TABLA VII
SENTENCIA FOR

9
AFIRMACIÓN JUSTIFICACIÓN

/*SENTENCIA FOR*/ Como se pudo observar en la anterior tabla lo


#include <iostream> primero hay que hacer es comentar y poner
la descripción del programa, al igual que in-
cluir la librerı́a y el respectivo using names-
using namespace std; pace.

int main(){
Una vez de haber puesto el encabezado del
programa se procede a declarar las variables
int i; locales para el programa.
int factorial=1;

for(desde; hasta; con pasos de){ Los ciclos for son lo que se conoce como es-
tructuras de control de flujo cı́clicas o sim-
sentencias1; plemente estructuras cı́clicas, estos ciclos,
sentencia2; como su nombre lo sugiere, nos permiten
sentencia3; ejecutar una o varias lı́neas de código de for-
... ma iterativa, conociendo un valor especifico
sentenciasn; inicial y otro valor final, además nos permi-
} ten determinar el tamaño del paso entre cada
del ciclo.

for(i=2;i<=6;i++) Se declara un for desde i = 2 hasta i <= 6


factorial*=i; con pasos de uno en uno y mientras se cum-
plan los parámetros de i, esto lleva entrar en
cout<<"\nEl factorial de el valor del factorial ya que se va multipli-
6 es: "<<factorial<<endl; cando de valor en valor.
}

/*SENTENCIA FOR*/
#include <iostream>

using namespace std;

int main(){ En la tabla 5 se realizó el mismo ejemplo pe-


ro de diferente forma, ahora se realiza con
int i; un for, pero el resultado es el mismo. En es-
int factorial=1; te caso se calcula el factorial de 6 en cual es
720.
for(i=2;i<=6;i++)
factorial*=i;
cout<<"\nEl factorial de
6 es: "<<factorial<<endl;
}

Análisis: En esta tabla se presentó otro bucle importante que es muy útil a la hora de programar. Es te bucle se lo denota
como for y se lo utiliza para ejecutar el código para ciertas condiciones que deben estar predeterminadas. De igual manera
que el bucle do while este también utiliza contadores para poder manejar las condiciones.

TABLA VIII
ESTRUCTURAS DE SALTO - BREAK

10
AFIRMACIÓN JUSTIFICACIÓN

#include <iostream>
using namespace std;

int main(){
int i=10;
/*Definimos una
variable y le
asignamos un
valor*/ Como se puede observar la mayo-
for (i=0;i<11; i++) ria de estos programas o en general
/*Genera un siempre se trabaja con variables asi
que esta demás decir que hay que
bucle infi- definirlas, vamos a trabajar con el
nito*/ bucle for que es el para cada cosa
{ hacer un algo.
if (i==10)

break;
/*estructura de
salto*/
}
cout<<"En este punto el bucle llego a 10";
}

#include <iostream>
using namespace std;

int main(){
int i=10;
/*Definimos una
variable y le
asignamos un
valor*/
for (i=0;i<11; i++) Pero el objetivo de este programa es
/*Genera un darnos a conocer la funcion que tie-
bucle infi- nen las estrcturas de salto el break
nito*/ en esta ocasión.
{
if (i==10)

break;
/*estructura de
salto*/
}
cout<<"En este punto el bucle llego a 10";
}

#include <iostream>
using namespace std;

int main(){
int i=10;
/*Definimos una Como se puede observar existen
dos bucles y despues de ellos un
variable y le break lo que se puede explicar co-
asignamos un mo ya se vino diciendo los bucles
valor*/ condicionales o de otro tipo funcio-
for (i=0;i<11; i++) nan mientras cumplan algo en es-
/*Genera un te caso del if pero vamos a la par-
te mpás externa que es el for prac-
bucle infi- ticamente es un contador que tiene
nito*/ un limite y vemos que este es dies y
{ dentro un if que dice que cuando el
if (i==10) numero sea igual a 10 se cumple el
break, dando paso a la impresión en
break; pantalla de que el bucle acabó por-
que llego a 10.
/*estructura de
salto*/
}
cout<<"En este punto el bucle llego a 10";
}

11
Análisis: En la tabla anterior se trabajo con las estructuras de salto como el break que hace que un ciclo de código termine en
este caso acompañado de dos bucles de los cuales primero tenian que cumplirse estos para que el break haga su trabajo dando
paso a la mpresión en pantalla.

TABLA IX
CONTINUE

AFIRMACIÓN JUSTIFICACIÓN

Como se pudo observar en la anterior tabla lo


/*CONTINUE*/ primero hay que hacer es comentar y poner
la descripción del programa, al igual que in-
#include <stdio.h> cluir la librerı́a la cual es stdio.h el cual ayu-
da para hacer cálculos matemáticos.

int main()
{
Una vez de haber puesto el encabezado del
programa se procede a declarar las variables
int n, a; locales para el programa.
a = 0;

do{
printf( "Introduzca
un numero entero: " );
scanf( " %d", &n ); Primero hace el ingreso de un número entero
y lo cambia por su opuesto siempre y cuan-
do el número que se ingrese sea diferente de
if ( n == 0 ) cero.
{
printf( "ERROR: El
cero no tiene opuesto.\n" );

12
continue;
/* En el caso de que
n sea un cero, la
iteracion en curso
del bucle se
interrumpe aqui. */}
Pero se ingresa la instrucción continue para
printf( "El opuesto es: que siga corriendo el programa y no pare con
%d/n", -n ); los demás valores.
a + = n;
} while ( n >= -10 &&
n <= 10 );

printf( "Suma: $ %$ d", a );


return 0;
}

Análisis:En la tabla anterior se utilizó la sentencia de continue que es de tipo de control de bucles. Dentro de la iteración en
un bucle, de cualquiera de los tipos (while, do-while, for), el uso de esta sentencia rompe la iteración de dicho bucle.
Provocando que se ejecute la siguiente iteración de dicho bucle, ignorando las sentencias posteriores a çontinue”.

TABLA X
ESTRUCTURA DE SALTO - RETURN

AFIRMACIÓN JUSTIFICACIÓN

#include <iostream>
using namespace std;

int main(){
cout<<"Ingrese a:\t"; Como se puede observar la mayorı́a
int a; de estos programas o en general
cin>>a; siempre se trabaja con variables asi
/*definimos un que esta demás decir que hay que
definirlas, pero en este caso es di-
valor de entrada ferente ya que pedimos que el usua-
por teclado*/ rio ingrese y el prgrama lea y asigne
cout<<"Ingrese b:\t"; ese valor a esa variable con cin.
int b;
cin>> b;

13
#include <iostream>
using namespace std;

int main(){
cout<<"Ingrese a:\t";
int a;
cin>>a;
/*definimos un
valor de entrada
por teclado*/
cout<<"Ingrese b:\t"; Definimos la variable maxi, a la que le defi-
int b; nimos la operacion de comparar dos valrores
y nos diga cual es el macimo con el comando
cin>> b; max(a,b).
int maxi;
/*definimos una
vaiable*/

maxi= max(a,b);
/*lo que hace max
es recibir ambos
datos*/
}

#include <iostream>
using namespace std;

int main(){
cout<<"Ingrese a:\t";
int a;
cin>>a;
/*definimos un
valor de entrada
por teclado*/
cout<<"Ingrese b:\t";
int b;
cin>> b;
Una vez que el programa reconozca el mayor
valor entre los dos valores ingresados pedi-
int maxi; mos que nos retorne a este valor y nos impri-
/*definimos una ma en consola con la parte final del código,
vaiable*/ haciendo uso asi de la estrutura de salto re-
turn.
maxi= max(a,b);
/*lo que hace max
es recibir ambos
datos*/
cout<<"El valor maximo es:\t" <<maxi<<endl;
/*despues de la
comparacion
previa
se retorna
el valor mayor*/

14
Análisis: En la tabla anterior se trabajo con otra estrutura de salto llamada return que como su caracteristica nos dice que se
salta del programa para retornar a un valor previo para que el programa haga algo en este caso se pidió imprimir en pantalla.

TABLA XII
FUNCIONES

AFIRMACIÓN JUSTIFICACIÓN

Como se pudo observar en la anterior tabla lo


/*FUNCIONES*/ primero hay que hacer es comentar y poner
#include <iostream> la descripción del programa, al igual que in-
using namespace std; cluir la librerı́a la cual es stdio.h el cual ayu-
da para hacer cálculos matemáticos.

int f(int a,int& b){ Se crea una función que recibe dos paráme-
a++; tros enteros que aumenta de uno en uno
b++; según de los vaya llamando.
}

int main(){

int i=1;
int j=1; Primero se inicializa dos variables i, j con el
f(i,j); valor de uno y después se llama a la función
cout<<"i vale " f la aumenta sus valores i y j en uno. Por tan-
to con el cout se muestra los valores después
<< i << de haber llamado a la función. Esto se pue-
" y j " de observar en la siguiente imagen como se
<< j << muestra por pantalla.
endl;
return 0;
}

Análisis: En la programación estructurada es muy importante saber manejar funciones ya que esto ayudará a ahorrar muchas
lı́neas de código. En la tabla anterior se puede observar varios aspectos importantes que hay que tomar en cuenta para utilizar
funciones ası́ como sus parámetros.

TABLA XII
FUNCIONES

15
AFIRMACIÓN JUSTIFICACIÓN

#include <iostream> Podemos hacer uso de funciones


using namespace std; que se definiria dividir el programa
float valor_abs(float num){ en varias secciones que hagan algo
if (num < 0){ pero no se debe confunir este con-
return -num; cepto con el switch ya que ahi haba-
labamos de submenus que saldrán
}else { en pantalla en este caso se trata de
return num; partes del programa que se asignan
}} a una función y que puede ser lla-
/*Funcion para numeros menores de cero*/ mada después.

#include <iostream>
using namespace std;
float valor_abs(float num){
if (num < 0){
Bueno en primer lugar vamos a de-
return -num; finir una función float valor abs del
}else { cual asignamos un numero tambien
return num; declarado dentro de la misma hace-
}} mos uso de un bucle condicional if-
int main(){ else para que reconoza con que tim-
po de valor trabajamos en este ca-
float auxiliar; so abarca la parte negativa y de ti-
cout<<"Introduzca el numero:\t"<<endl; } po flotante, en la que el bucle traba-
/*para la segunda ja y reconoce que si ingresamos un
parte llamamos valor negrativo menor que cero nos
a imprimir retorne el mismo valor pero positi-
segun sea el vo y este puede ser de tipo flotante.
caso abarcanddo
tambien los enteros
llamando a la funcion */

#include <iostream>
using namespace std;

float valor_abs(float num){


if (num < 0){ Ahora definimos la segunda parte
return -num; en esta parte haremos uso de es-
ta función en el int main, como se
}else { ve el codigo pedimos que ingrese
return num; un número mediante teclado y al
}} valor auxiliar le relacionamos con
int main(){ la variable previamente definida en
float auxiliar; la función trabajnado asi con cual-
cout<<"Introduzca el numero:\t"<<endl; quier valor ya sea negativo o positi-
vo para imprimirnos al final el valor
cin>>auxiliar; absoluto de este.
cout<<"El valor absoluto es:\t";
cout<<valor_abs(auxiliar)<<endl;
/*Usamos la funcion para imprimir*/
}

16
Análisis: En la tabla anterior se trabajo con lo que hace referencias a funciones, las mismas que se pueden definir como una
parte del programa que tiene un código interno el mismo que podrá ser llamado mientras se desarrolla el código en el main.

TABLA XIII
FUNCIONES

AFIRMACIÓN JUSTIFICACIÓN

Como se pudo observar en la anterior tabla lo


/*FUNCIONES*/ primero hay que hacer es comentar y poner
#include <iostream> la descripción del programa, al igual que in-
using namespace std; cluir la librerı́a la cual es stdio.h el cual ayu-
da para hacer cálculos matemáticos.

int f(int a,int& b){ Se crea una función que recibe dos paráme-
a++; tros enteros que aumenta de uno en uno
b++; según de los vaya llamando.
}

int main(){

int i=1;
int j=1; Primero se inicializa dos variables i, j con el
f(i,j); valor de uno y después se llama a la función
cout<<"i vale " f la aumenta sus valores i y j en uno. Por tan-
to con el cout se muestra los valores después
<< i << de haber llamado a la función. Esto se pue-
" y j " de observar en la siguiente imagen como se
<< j << muestra por pantalla.
endl;
return 0;
}

Análisis: En la programación estructurada es muy importante saber manejar funciones ya que esto ayudará a ahorrar muchas
lı́neas de código. En la tabla anterior se puede observar varios aspectos importantes que hay que tomar en cuenta para utilizar
funciones ası́ como sus parámetros.

TABLA XIV
PUNTEROS Y ARRAY

AFIRMACIÓN JUSTIFICACIÓN

#include <iostream>

using namespace std; Vamos a definir un array dandole un


nombre y una cantidad de elemen-
int main(){ tos.
int a[]={0,1,2,3,4,5,6,7,8,9};
}

17
#include <iostream>

using namespace std;

int main(){ Definimos una variable que nos servirá para


int a[]={0,1,2,3,4,5,6,7,8,9}; el bucle que usaremos a continuación.
int i;
int suma=0;

#include <iostream>

using namespace std;

int main(){
int a[]={0,1,2,3,4,5,6,7,8,9}; Hacemos uso del bucle for que es un conta-
int i; dor que va del 1 hasta el 10 como ya los al-
int suma=0; macenados en el array previamente definido,
asi que al final mandamos a imprimir en pan-
talla la suma de dos términos como se verá a
for(i=0; i<10;i++){ continuación.

}
cout<<"1ro + 3er del array es:\t ";
cout<<a[0]+a[2]<<endl;
}

Análisis: En la tabla anterior se trabajo con arrays y le asignamos valores a un putero, dando como la resolución del ejercicio
la suma de dos de estos términos que lo conforman.

TABLA XV
VECTORES Y MATRICES

AFIRMACIÓN JUSTIFICACIÓN

/*MATRICES Y VECTORES*/
A con k filas y m columnas,
B con m filas y n columnas.
C es la matriz que resulta Primero se pone entre comentarios el tema
del producto AB. del cual se va a realizar el ejercicio, además
se pone las condiciones con las cuales se va
C presenta k filas y n columnas. a trabajar en el programa.
#include <iostream>
using namespace std;

18
int main()
{
int A[20][20],
B[20][20],
C[20][20]; Primero se declaran las dimensiones de las
int k, m, n; matrices y los diferentes contadores que per-
mitirán realizar la multiplicación de las posi-
cout<<"Lectura de matriz A." ciones según corresponde. También se reali-
<<endl; za el ingreso de número de filas y columnas.
cout<<"Filas de A: ";
cin>>k;
cout<<"Columnas de A: ";
cin>>m;
cout<<endl;

for(int i=0; i<k; ++i)


for(int j=0; j<m; ++j){ En el for se hace el ingreso de las posiciones
de la matriz A según i y según j. Se los va
cout<<"Ingrese valor para guardando en la respectiva matriz.
A["<<i<<"]["<<j<<"]: ";
cin>>A[i][j];}

cout<<"Lectura de matriz B."


<<endl;
cout<<"Filas de B:
"<<m<<" "<<endl;
cout<<"Columnas de B: "; Se realiza el ingreso de las dimensiones de la
cin>>n; matriz B y de sus respectivos valores. Igual-
mente los lee y los guarda en la respectiva
cout<<endl; matriz.
for(int i=0; i<m; ++i)
for(int j=0; j<n; ++j){
cout<<"Ingrese valor para
B["<<i<<"]["<<j<<"]: ";
cin>>B[i][j]; }

// Inicializamos la matriz C.
for(int i=0; i<k; ++i)
for(int j=0; j<n; ++j)
C[i][j] = 0; Se genera e inicializa la matriz C la cual
// Generamos la matriz C. guarda los valores de la multiplicación.
for(int i=0; i<k; ++i)
for(int j=0; j<n; ++j)
for(int z=0; z<m; ++z)
C[i][j] += A[i][z] * B[z][j];

cout<<"Matriz A: \n";
for(int i=0; i<k; ++i){
for(int j=0; j<m; ++j){
cout<<A[i][j]<<" ";}
cout<<endl;}
cout<<"Matriz B: \n";
for(int i=0; i<m; ++i){
for(int j=0; j<n; ++j){ Se realiza el cálculo matemático de las matri-
cout<<B[i][j]<<" ";} ces y se va guardando los valores de la matriz
cout<<endl;} C para visualizarlos por pantalla.
cout<<"Matriz C: \n";
for(int i=0; i<k; ++i){
for(int j=0; j<n; ++j){
cout<<C[i][j]<<" ";
}
cout<<endl;
}
return 0;}

19
Análisis: En la tabla anterior se pudo observar el manejo de matrices con un ejemplo muy didáctico como es la multiplicación
de las mismas. Para ello se debe saber como declarar e instanciar los diferentes valores, vectores y matrices para poder hacer
operaciones entre ellas.

TABLA XVI
METODO DE EULER

AFIRMACIÓN JUSTIFICACIÓN

#include<iostream>
#include<iomanip>
#include<cmath>
/*permite usar
comandos matematicos
*/
using namespace std;
float func(float x, float y){
return y-pow(x,2)+1;

}
A continuación veremos una aplica-
void reportar (float x, float y , int i){ ción bastante completa de todos los
cout<<setiosflags(ios::showpoint | ios::fixed); conceptos vistos previamente, co-
cout<<setiosflags(ios::right); mo se ve hacemos uso de dos libre-
cout.precision(4); rias mas la una para poder hacer uso
cout<<setw(10)<<i<<setw(15)<<x<<setw(15)<<y<<endl; de funciones especificas de c++ y la
segunda para poder usar operacio-
} nes matemáticas que no sean me-
diante signos como pow por ejem-
int menu(){ plo que se refiere a potencia, vamos
int opc; hacer uso de funciones, bulces y es-
do{ trutura de salto y switch.
system(" ");
cout<<setw(50)<<"SELECCIONE UNA OPCION\n";
cout<<setw(50)<<"----------------------\n"<<endl;
cout<<"1. Metodo de Euler"<<endl;
cout<<"3. Salir"<<endl;
cout<<"\nSeleccione Opcion:\t";
cin>>opc;
}
while(opc!=1 && opc!=3);
return opc;
}

20
#include<iostream>
#include<iomanip>
#include<cmath>
/*permite usar
comandos matematicos
*/
using namespace std;
float func(float x, float y){
return y-pow(x,2)+1;

void reportar (float x, float y , int i){


cout<<setiosflags(ios::showpoint | ios::fixed);
cout<<setiosflags(ios::right);
cout.precision(4);
cout<<setw(10)<<i<<setw(15)<<x<<setw(15)<<y<<endl;
}

int menu(){
int opc;
do{ Vamos a definir una función, y el
system(" "); switch de la cual tambien definimos
cout<<setw(50)<<"SELECCIONE UNA OPCION\n"; tres variables x0,y0,xf, de cual nos
cout<<setw(50)<<"----------------------\n"<<endl; pide el valor de estas.
cout<<"1. Metodo de Euler"<<endl;
cout<<"3. Salir"<<endl;
cout<<"\nSeleccione Opcion:\t";
cin>>opc;
}
while(opc!=1 && opc!=3);
return opc;
}

void Euler (){


float x0,y0,xf,h;
int n,i;
system(" ");
cout<<setw(50)<<"Metodo de integracion de euler"<<endl;
cout<<setw(50)<<"------------------------------"<<endl<<endl;;
cout<<"Ingrese el valor de x0:\t";
cin>>x0;
cout<<"Ingrese el valor de y0:\t";
cin>>y0;
cout<<"Ingrese el valor de xf:\t";
cin>>xf;

21
#include<iostream>
#include<iomanip>
#include<cmath>
/*permite usar
comandos matematicos
*/
using namespace std;
float func(float x, float y){
return y-pow(x,2)+1;

void reportar (float x, float y , int i){


cout<<setiosflags(ios::showpoint | ios::fixed);
cout<<setiosflags(ios::right);
cout.precision(4);
cout<<setw(10)<<i<<setw(15)<<x<<setw(15)<<y<<endl;
}

int menu(){
int opc;
do{
system(" ");
cout<<setw(50)<<"SELECCIONE UNA OPCION\n";
cout<<setw(50)<<"----------------------\n"<<endl;
cout<<"1. Metodo de Euler"<<endl;
cout<<"3. Salir"<<endl;
cout<<"\nSeleccione Opcion:\t";
cin>>opc;
}
while(opc!=1 && opc!=3);
return opc;
Luego hacemos uso del bucle do
} para la siguiente parte y definimos
otra variable n para definir el subin-
void Euler (){ tervalo a emplear, haciendo uso del
float x0,y0,xf,h; bucle while definimos que si cum-
int n,i; ple se cumpla con las funciones a
system(" "); continuación mostradas.
cout<<setw(50)<<"Metodo de integracion de euler"<<endl;
cout<<setw(50)<<"------------------------------"<<endl<<endl;;
cout<<"Ingrese el valor de x0:\t";
cin>>x0;
cout<<"Ingrese el valor de y0:\t";
cin>>y0;
cout<<"Ingrese el valor de xf:\t";
cin>>xf;

do{
cout<<"Ingrese el numero de subintervalos a emplear:\t";
cin>> n;
}
while(n<=0);
h=(xf-x0)/n;
cout<<endl;
cout<<setw(10)<<"I"<<setw(15)<<"Xi"<<setw(15)<<"Yi"<<endl;
cout<<setw(10)<<"-"<<setw(15)<<"--"<<setw(15)<<"--"<<endl;
for(i=1;i<=n;i++){
y0=y0+h*func(x0,y0);
x0=x0+h;
reportar(x0,y0,i);
}
cout<<"\nEl valor de Yf:"<<y0<<endl;
getchar();
}
void terminar (){
cout<<"\t\t\t Salir del Programa\n";
cout<<"\t\t\t-------------------\n\n";
cout<<"Gracias por usar el programa"<<endl<<endl;
}

22
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
float func(float x, float y){
return y-pow(x,2)+1;
}
void reportar (float x, float y , int i){
cout<<setiosflags(ios::showpoint | ios::fixed);
cout<<setiosflags(ios::right);
cout.precision(4);
cout<<setw(10)<<i<<setw(15)<<x<<setw(15)<<y<<endl;
}
int menu(){
int opc;
do{
system(" ");
cout<<setw(50)<<"SELECCIONE UNA OPCION\n";
cout<<setw(50)<<"----------------------\n"<<endl;
cout<<"1. Metodo de Euler"<<endl;
cout<<"3. Salir"<<endl;
cout<<"\nSeleccione Opcion:\t";
cin>>opc;
}
while(opc!=1 && opc!=3);
return opc;
}
void Euler (){
float x0,y0,xf,h;
int n,i;
system(" ");
cout<<setw(50)<<"Metodo de integracion de euler"<<endl;
cout<<setw(50)<<"------------------------------"<<endl<<endl;;
cout<<"Ingrese el valor de x0:\t";
cin>>x0;
cout<<"Ingrese el valor de y0:\t"; Para terminar hacemos uso del int
cin>>y0; main para definir las estructuras de
cout<<"Ingrese el valor de xf:\t"; salro en caada sub menú y que im-
cin>>xf; prima en pantalla los valores obte-
do{ nido en este caso Yf.
cout<<"Ingrese el numero de subintervalos a emplear:\t";
cin>> n;
}
while(n<=0);
h=(xf-x0)/n;
cout<<endl;
cout<<setw(10)<<"I"<<setw(15)<<"Xi"<<setw(15)<<"Yi"<<endl;
cout<<setw(10)<<"-"<<setw(15)<<"--"<<setw(15)<<"--"<<endl;
for(i=1;i<=n;i++){
y0=y0+h*func(x0,y0);
x0=x0+h;
reportar(x0,y0,i);
}
cout<<"\nEl valor de Yf:"<<y0<<endl;
getchar();
}
void terminar (){
cout<<"\t\t\t Salir del Programa\n";
cout<<"\t\t\t-------------------\n\n";
cout<<"Gracias por usar el programa"<<endl<<endl;
}
int main(void){
int opc;
do{
system(" ");
opc=menu();
switch(opc){
case 1: system(" ");Euler();break;
case 3: system(" ");terminar();break;
}
getchar();
}
while(opc!=3);
getchar();
}
23
Análisis: En la tabla anterior se pudo observar sobre un ejemplo en el que se usan todos los conocimientos previos el cual se
trata del método de Euler para integrales definiendo tres valores-variables y al final nos arroja un solo valor xf.

24

S-ar putea să vă placă și