Sunteți pe pagina 1din 14

Instituto Politécnico Nacional

Escuela Superior de Ingeniería mecánica y


Eléctrica unidad Zacatenco

CARRERA: Ingeniería Eléctrica

GRUPO: 2EM1

INTEGRANTES:

Abarca Pérez Cesar Emmanuel #1


Torres Ochoa Francisco Alberto #26

Nombre de la práctica: “Calculadora de vectores en


forma rectangular”
OBJETIVOS DE LA PRÁCTICA:
El objetivo principal de la práctica es crear una “calculadora de vectores” que haga
las funciones básicas (suma, resta, multiplicación).

Beneficios:

Facilitar los cálculos y operaciones de un problema, además de ahorrarnos


tiempo. Ya que solo se ingresan los valores del vector y la operación a realizar
(como en cualquier computadora).

Metas:

Crear una calculadora capaz de realizar las operaciones de vectores básicas.

Aplicación en la ingeniería o en el mundo real:

Tiene muchas aplicaciones y beneficios tanto en la ingeniería, como en el mundo


real. Ya que cualquier persona, que quiera hacer un cálculo sobre vectores podría
usarla. O quizá se podría usar para la realización de otros cálculos y/u
operaciones de distintas áreas. También se podría implementar a una calculadora.

CONCEPTOS TEORICOS:
Clases y objetos:

Una clase define un nuevo tipo de dato que especifica la forma de un objeto. Una
clase incluye los datos y el código que operará sobre esos datos. Además, una
clase enlaza datos y código. C++ usa una especificación de una clase para
construir objetos. Los objetos son instancias de una clase. Además, una clase es
esencialmente una serie de planes que especifican cómo construir un objeto. Es
importante tener claro esto: Una clase es una abstracción lógica.

No es sino hasta que un objeto de esa clase sea creado que la representación
física de la clase existe en la memoria. Cuando se define una clase, se declaran
los datos que ésta contiene y el código que opera en esos datos. Aunque clases
muy simples pueden contener sólo código o sólo datos, la mayoría de las clases
contienen ambos. En conjunto, los datos se almacenan en las variables y el código
en las funciones. Colectivamente, las funciones y variables que constituyen una
clase son llamados 'miembros' de la clase. Una variable declarada dentro de una
clase es llamada 'variable miembro', y una función declarada en una clase es
llamada 'función miembro'. En ocasiones el término 'variable de instancia' es
usado en lugar de variable miembro. Una clase es creada con la palabra
clave class.
Miembros de una clase.
Métodos:

En comparación con la programación tradicional, un método es lo mismo


que una función cualquiera, salvo que como los métodos se declaran para
pertenecer a una clase específica, se dice que todos los métodos de dicha
clase son miembros de la misma. Por lo demás, la declaración y definición
de los métodos es exactamente igual que declarar y definir cualquier otra
función.
Atributos:

En comparación con la programación tradicional, un atributo es lo mismo


que una variable cualquiera, salvo que como los atributos se declaran para
pertenecer a una clase específica, se dice que todos los atributos de dicha
clase son miembros de la misma. Por lo demás, la declaración de los
atributos es exactamente igual que declarar cualquier otra variable.

Miembros:

A partir de este momento usaremos la palabra miembro para referirnos al


hecho de que un método o un atributo pertenece a tal o cual clase.

Una clase puede contener tanto miembros privados como públicos. Por defecto,
todos los elementos definidos en una clase son privados.

Visibilidad de los miembros de la clase.

Por visibilidad se entiende al acto de acceder a los miembros de una clase. En


este sentido, los miembros de una clase pueden ser: públicos, privados y
protegidos.

 Un miembro público significa que el acceso al mismo puede darse dentro del
interior de la clase, dentro de una subclase, y desde un objeto instanciado de
cualquiera de estas.

 Un miembro privado significa que el acceso al mismo puede darse solamente


dentro del interior de la clase que lo posee. Normalmente, el programador
creador de una clase declara a los atributos de la clase como privados y a los
métodos como públicos, esto con la idea de que el usuario de la clase no
pueda tener acceso a los atributos sino es a traves de los métodos definidos
para el caso.

 Un miembro protegido se comporta de manera parecida a un miembro privado,


salvo que estos son accesibles dentro de la clase que lo posee y desde las
clases derivadas, pero no desde los objetos instanciados a raiz de dichas
clases.

Acceso a las funciones

Las funciones miembros de una clase sólo pueden ser llamadas relativas a un
objeto específico. Para llamar a una función miembro desde alguna parte del
programa que se encuentre fuera de la clase, se debe usar el nombre del objeto y
el operador de direccionamiento '.' ( punto ).

Ejemplo:

Resolución de ámbito:

El :: es llamado el operador de resolución de ámbito. Esencialmente le dice al


compilador que esta versión de m_Renderizar pertenece a la clase CRender.
Dicho de otra forma, :: declara que m_Renderizar se encuentra en el ámbito de
CRender. Varias clases diferentes pueden usar los mismos nombres de función. El
compilador sabe cuál función pertenece a cuál clase y esto es posible por el
operador de resolución de ámbito y el nombre de la clase.

Constructores
Un constructor es un método que pertenece a una clase y el cual (en C++) debe
tener el mismo nombre de la clase a la que pertenece. A diferencia de los otros
métodos de la clase, un constructor deberá ser del tipo void, es decir, el mismo no
regresará valor alguno. Una clase puede tener más de un método constructor.
Cada clase debe tener al menos un constructor, tanto así que si el programador
creador de una clase no define un método constructor para la misma, el sistema, o
sea el compilador, creará de manera automática un constructor nulo.
El objetivo principal del constructor es establecer las condiciones necesarias
dentro de la memoria y crear una copia del objeto mismo dentro de la memoria.
Los constructores suelen usarse para la inicialización de los atributos de los
objetos instanciados.
Ejemplo:
Libreria iostream

iostream es la biblioteca estándar en C++ para poder tener acceso a los


dispositivos estándar de entrada y/o salida. En sus programas, si usted desea
hacer uso de los objetos cin, cout, cerr y clog tendrá que incluir (por medio de la
directiva #include ) el uso de la biblioteca iostream. En la iostream se encuentran
definidas las clases ios (misma que es la base para las clases que implementen
operaciones de entrada y/o salida de datos), istream (para operaciones de
entrada) y ostream (para operaciones de salida). Aparte de las clases
mencionadas, en la iostream se encuentra una lista de variables y constantes
(atributos) que son accesibles por el usuario a través del operador de ámbito (::)

ANALISIS:
Suma:

Primer vector Realización Vector


Signo más (+) de la suma resultante
Segundo vector de la suma

1. Se ingresan los dos vectores, y el signo más (+).


2. Se realiza a operación de la suma.
3. Se imprimen en la pantalla el vector resultante de la suma.

Resta:

Primer vector Realización


Signo menos (-) de la resta Vector
Segundo vector resultante
de la resta

1. Se ingresan los dos vectores, y el signo menos (-).


2. Se realiza a operación de la resta.
3. Se imprimen en la pantalla el vector resultante de la resta.
Multiplicación:

Primer vector
Realización de
Signo de Vector resultante
la
multiplicación (*) de la
multiplicación
Segundo vector multiplicación

1. Se ingresan los dos vectores, y el signo de multiplicación (*).


2. Se realiza a operación de la multiplicación.
3. Se imprimen en la pantalla el vector resultante de la multiplicación.

Algoritmo:
1. Se crea la clase “Fza”. La cual se compone de 2 variables miembro, 2
constructores y 6 funciones miembro.
1.1. Variables miembro (únicas miembros privados de esta clase)
 Variable “x” que representa la coordenada en X del vector y es de
tipo entero.
 Variable “y” que representa la coordenada en Y del vector y es de
tipo entero.
1.2. Funciones miembro.
 Funciones “pide_fza”, “pide_cons” y “muestraResult” . Son
funciones que no devuelven nada.
 Funciones “suma”, “resta”, y “mult”. Son funciones que devuelven
un Fza.
1.3. Constructores
 se usa un constructor sin parámetros.
 Se usa un constructor con 2 parametros
2. Se definen las funciones a utilizar.
2.1. Función “muestraResult”.
 Se imprime el texto: “El resultado es:”
 Después se imprime el vector resultante con el formato: (x,y).
2.2. Función “pide_fza”.
 Se declara las variables “pi”, “pd” y “co” como caracteres.
 Se lee el numerador y el denominador con el formato: (x,y)
2.3. Función “suma”
 Se declara la variable “fr” como un tipo Fza.
 Se suman entre si los miembros x de los 2 vectores y se iguala al
miembro X de “fr”.
 Se suman entre si los miembros Y de los 2 vectores y se iguala al
miembro Y de “fr”.
 Y se devuelve el valor de “fr”.
2.4. Función “resta”
 Se declara la variable “fr” como un tipo Fza.
 Se restan entre si los miembros x de los 2 vectores y se iguala al
miembro X de “fr”.
 Se restan entre si los miembros Y de los 2 vectores y se iguala al
miembro Y de “fr”.
 Y se devuelve el valor de “fr”.

2.5. Función “mult”


 Se declara la variable “fr” como un tipo Fza.
 Se multiplican ambos miembros del vector por la constante
ingresada y se igualan a “fr”.
 Y se devuelve el valor de “fr”.
2.6. Función “pide_cons”
 Se lee una constante y se le asigna a la variable X y se iguala a
la variable Y.
3. Se inicializa “main”.
3.1. Se declara “c”, “f1”, “f2” y “fr” como variables de tipo Fza.
3.2. Se declara a op como una variable de tipo carácter.
3.3. Se imprime en pantalla: “Calculadora de vectores”.
3.4. Se imprime en pantalla una nota indicando el formato de
entrada de los vectores
3.5. Se lee el primer vector haciendo llamado de la función
“pide_fza”.
3.6. Se lee “op” que indica la operación que se quiere hacer.
3.7. Se hace un caso para cada operación.
3.7.1. Caso “+”.
 Haciendo llamado de la función “pide_fza” se lee el
segundo número racional.
 Haciendo llamado de la función “suma” se suman los 2
vectores y se igualan a “fr”.
 Haciendo llamado de la función “muestraResult” se
imprime el resultado de la suma.
3.7.2. Caso “-“.
 Haciendo llamado de la función “pide_ fza” se lee el
segundo número racional.
 Haciendo llamado de la función “resta” se restan los 2
vectores y se igualan a “fr”.
 Haciendo llamado de la función “muestraResult” se
imprime el resultado de la resta.
3.7.3. Caso “ * ”.
 Haciendo llamado de la función “pide_ cons” se lee la
constante.
 Haciendo llamado de la función “mult” se multiplican
ambos miembros del vector por la constante y se
igualan a “fr”.
 Haciendo llamado de la función “muestraResult” se
imprime el resultado de la multiplicación.
4. Se finaliza el programa.

Diagrama de flujo y UML:

Fza

- x: flotante
- y: flotante

+Fza();
+Fza(float,float);
+ pide_fza(): void
+ pide_cons(): void
+ muestraResult(ostream &): void
+ suma(Fza): Fza
+ resta(Fza): Fza
+ mult(Fza): Fza
Codificación:
#include<iostream>
#include<cstdlib>
using namespace std;
class Fza
{
float x,y;
public:
Fza();
Fza(float,float);
void pide_fza();
void pide_cons();
void muestraResult(ostream &);
Fza suma(Fza);
Fza resta(Fza);
Fza mult(Fza);
};
Fza::Fza():x(0.0),y(0.0)
{ }
Fza::Fza(float a, float b)
{
}

void Fza::muestraResult(ostream &pant)


{
pant<<"="<<endl;
pant<<'('<<x<<','<<y<<')'<<endl;
}
void Fza::pide_fza()
{
char pi,pd,co;
cin>>pi>>x>>co>>y>>pd;
}
void Fza::pide_cons()
{

cin>>x;
y=x;
}
Fza Fza::suma(Fza f)
{
Fza fr;
fr.x=f.x+x;
fr.y=f.y+y;
return fr;
}
Fza Fza::resta(Fza f)
{
Fza fr;
fr.x=f.x-x;
fr.y=f.y-y;
fr.y=-fr.y;
fr.x=-fr.x;
return fr;
}
Fza Fza::mult(Fza f)
{
Fza fr;
fr.x=(f.x)*(x);
fr.y=(f.y)*(y);
return fr;
}
int main()
{
system("color f0");
Fza f1,f2,fr,c;
cout<<"CALCULADORA PARA VECTORES EN COORDENADAS
RECTANGULARES\n\n";
cout<<"NOTA:la coordenada se introduce separtando el componente en X\n";
cout<<"y el omponente en Y por una coma y encerrados entre parentesis\n\n";
char op;
do{
f1.pide_fza();
cin>>op;
switch(op)
{
case '+':
{
f2.pide_fza();
fr=f1.suma(f2);
fr.muestraResult(cout);
break;
}
case '-':
{
f2.pide_fza();
fr=f1.resta(f2);
fr.muestraResult(cout);
break;
}
case '*':
{
c.pide_cons();
fr=f1.mult(c);
fr.muestraResult(cout);
}

}
cout<<"Desea Continuar presione A sino cualquier otra tecla para salir del
programa"<<endl;
cin>>op;
}while(op =='a'|| op=='A');
}

Producción de resultados:
Observaciones:

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