top of page
Diagrama-de-un-circuito-paralelo_edited.png

Clase 13: Vectores

El tema abordado en esta sesión fueron los vectores. El docente inició la sesión, rápidamente, con una breve explicación teoría sobre los vectores estableciendo que estos funcionan como una especie de cajas que almacenan un conjunto de datos del mismo tipo, los cuales podemos acceder a ellas.

​

Luego de la exposición, procedimos con el apartado práctico de la clase y esta fue la codificación de un menú de ocho opciones haciendo uso de los vectores y de las funciones sin parámetros. La estructura de la codificación para el menú fue la misma, la única diferencia fue la implementación de los vectores con los cuales tuve que desarrollar un ejercicio de ondas mecánicas para el cálculo de la posición, velocidad y aceleración de una perturbación.

​

Este menú de práctica se divide en dos partes, donde encontramos a los ejercicios demostrativos del docente que nos enseñaron a inicializar, definir, mostrar, entre otras cosas, un vector. También encontramos a los ejercicios designados, concretamente, es un solo ejercicio, pero se deben considerar tres opciones: La primera es la codificación directa de las ecuaciones, la segunda la codificación de las ecuaciones variando una variable, y por último, la codificación variando dos variables; todo esto haciendo uso de la función FOR.

​

Por último, la tarea de esta sesión es la presentación de un menú de tres opciones donde se debe desarrollar, haciendo uso de vectores, alguna ecuación de resonancia eléctrica. En este caso, les presentaré una estructura de código para el cálculo de la conductancia y susceptancia de la admitancia en un circuito resonante en paralelo, así como la frecuencia de resonancia.

Lunes 26/02/2024

Síntesis conceptual

DEFINICIÓN DE UN VECTOR DEV C++

  • Un vector o array unidimensional es un tipo de dato que almacena una secuencia de datos del mismo tipo. Los elementos del vector se almacenan en zonas contiguas de memorias y se puede acceder a ellos directamente mediante un índice o posición.

  • Es una estructura formada por una cantidad “n” de variables simples del mismo tipo, que son los elementos del vector y se distinguen por un índice.                                                                                                    

 

ESTRUCTURA DE INICIALIZACIÓN DE UN VECTOR

 

(Tipo)(Nombre)[Tamaño];

 

Ejemplos:

  • Int números [10];

  • Char letras [5];

  • Float reales [15];

 

FORMAS DE INICIALIZACIÓN DE UN VECTOR

Especificando el tamaño del vector:

  • Int números [4] = {1, 4, 6, 7}

  • Int números [3];

 

No especificando el tamaño del vector

  • Int numero [] = {0, 1, 2, 3}                                                                         

image.png

Menú hecho en clase

#include<iostream>

#include<math.h>

using namespace std;


int opcion; 

​

void ASIGNAR (); 

int i, A[10]; 

 

void MOSTRAR (); 

 

void SUMA (); 

int suma; 

 

void CODIGOS (); 

char B[256]; 

​

void POSICION (); 

float W, A1, t, fhi, angulo, x, v, a, pi=3.14159265359;

​

void POSICION_W (); 

float W1, A2, t1, fhi1, angulo1, x1, v1, a1; 

 

void POSICION_W_A ();

float W2, A3, t2, fhi2, angulo2, x2, v2, a2; 

 

void DESVIACION (); 

int C[20]; 

float SUMA_S, des, pro; 
 

int main () {

 

do {

 

cout<<"\n"; 

 

cout<<"MENU"<< endl;

cout<<"-------------------------"<< endl; 

cout<<"[1] Asignar datos a un vector."<< endl; 

cout<<"[2] Mostrar datos de un vector."<< endl;

cout<<"[3] Suma de los elementos de un vector."<< endl;

cout<<"[4] Listado de codigos ASCII."<< endl; 

cout<<"[5] PROBLEMA CASO A: Deformacion."<< endl; 

cout<<"[6] PROBLEMA CASO B: Deformacion variando W."<< endl; 

cout<<"[7] PROBLEMA CASO C: Deformacion variando W y A."<< endl; 

cout<<"[8} Problema de Desviacion Estandar."<< endl; 

cout<<"\n";

cout<<"Ingrese una opcion <> 0 -------------->"; cin>>opcion; 

cout<<"\n";

cout<<"\n"; 

 

switch (opcion){

 

case 1: {

cout<<"ASIGNAR DATOS A UN VECTOR"<< endl;

cout<<"------------------------------------"<< endl; 

 

ASIGNAR (); 

 

break;

}

 

case 2: {

cout<<"MOSTRAR DATOS DE UN VECTOR"<< endl; 

cout<<"------------------------------------"<< endl; 

 

MOSTRAR (); 

 

break;

}

 

case 3: {

cout<<"SUMA DE ELEMENTOS"<< endl; 

cout<<"------------------------------------"<< endl; 

 

SUMA (); 

 

break;

}

 

case 4: {

 

cout<<"[4] CODIGOS ASCII"<< endl; 

cout<<"------------------------------------"<< endl; 

 

CODIGOS (); 

 

 

break;

}

 

case 5: {

cout<<"[5] PROBLEMA CASO A: DEFORMACION."<< endl; 

cout<<"Calculo de la posicion, velocidad y aceleracion de una deformacion."<< endl; 

cout<<"------------------------------------"<< endl;

cout<<"\n"; 

cout<<"DIGITE LOS DATOS:"<< endl; 

cout<<" -Frecuencia angular W-------------->"; cin>> W; 

cout<<" -Tiempo de deformacion t-------------->"; cin>> t; 

cout<<" -Amplitud de oscilacion A-------------->"; cin>> A1;

cout<<" -Angulo de fase Fhi-------------------->"; cin>>fhi;  

 

POSICION (); 

 

break;

}

 

case 6: {

cout<<"[6] PROBLEMA CASO B: DEFORMACION variando W."<< endl; 

cout<<"Calculo de la posicion, velocidad y aceleracion de una deformacion."<< endl; 

cout<<"Condicion: Wi=1; Wf=10; Variacion=1."<< endl; 

cout<<"Ademas, la forma de la funcion es F[W]."<< endl; 

cout<<"------------------------------------"<< endl;

cout<<"\n"; 

cout<<"DIGITE LOS DATOS:"<< endl; 

cout<<" -Tiempo de deformacion t-------------->"; cin>> t1; 

cout<<" -Amplitud de oscilacion A-------------->"; cin>> A2;

cout<<" -Angulo de fase Fhi-------------------->"; cin>>fhi1;  

 

POSICION_W (); 

 

break;

}

​

case 7: {

cout<<"[7] PROBLEMA CASO C: DEFORMACION variando W y A."<< endl; 

cout<<"Calculo de la posicion, velocidad y aceleracion de una deformacion."<< endl; 

cout<<"Condicion I: Wi=1; Wf=10; Variacion=1."<< endl; 

cout<<"Condicion II: Ai=1; Af=5; Variacion=0,5."<< endl; 

cout<<"Ademas, la forma de la funcion es F[W, A]."<< endl; 

cout<<"------------------------------------"<< endl;

cout<<"\n"; 

cout<<"DIGITE LOS DATOS:"<< endl; 

cout<<" -Tiempo de deformacion t-------------->"; cin>> t2; 

cout<<" -Angulo de fase Fhi-------------------->"; cin>>fhi2;  

 

POSICION_W_A (); 

 

break;

}

 

case 8: {

cout<<"[8] CALCULO DE LA DESVIACIÓN ESTANDAR"<< endl; 

cout<<"------------------------------------"<< endl;

 

 

DESVIACION(); 

 

    break;

}

 

 

 

 

}

 

} while (opcion); 

 

return 0; 

}


 

void ASIGNAR (){

 

for (i=1; i<=10; i++){

cout<< "A["<<i<<"]= "; cin>> A[i]; 

}

}

 

 

void MOSTRAR (){

 

for (i=1; i<=10; i++){

cout<< "A["<<i<<"]= "<< A[i]<< endl; ; 

}

 

 

}


 

void SUMA (){

 

 

for (i=1; i<=10; i++){

 

suma=0; 

suma= suma + A[i]; 

 

}

 

cout<<"\n"; 

cout<<"La suma de los elementos del vector A[] = "<< suma << endl; 

 

}


 

void CODIGOS (){

 

for (i=1; i<=256; i++){

 

B[i]= char (i); 

 

cout<< "B["<<i<<"]= "<< B[i] << endl; ;

}

 

cout<<"\n";

cout<<"ABECEDARIO"<< endl;

cout<<"------------------------------------"<< endl;

 

for (i=65; i<=90; i++){

 

cout<< "B["<<i<<"]= "<< B[i] << endl; ;

}

 

 

}


 

void POSICION (){

 

angulo=((W*t + fhi)*pi)/180;  

x=A1*cos(angulo); 

v=-W*A1*sin(angulo);

a=-W*W*x; 

 

cout<<"Los resultados son:"<< endl; 

cout<<"-----------------------------"<< endl; 

cout<<"-La posicion = "<< x << endl; 

cout<<"-La velocidad = "<< v << endl; 

cout<<"-La aceleracion = "<< a << endl; 

 

}



 

void POSICION_W (){

 

cout<<"\n"; 

cout<<"POSICION"<< endl; 

cout<<"---------------------------------"<< endl;

 

for (W1=1; W1<=10; W1=W1+1){

 

angulo1=((W1*t1 + fhi1)*pi)/180; 

    x1=A2*cos(angulo1); 

 

cout<< "X["<<W1<<"]= "<< x1 << endl;  

 

}

 

 

cout<<"\n"; 

cout<<"VELOCIDAD"<< endl;

cout<<"---------------------------------"<< endl; 

 

for (W1=1; W1<=10; W1=W1+1){

 

angulo1=((W1*t1 + fhi1)*pi)/180; 

v1=-W1*A2*sin(angulo1); 

 

cout<< "V["<<W1<<"]= "<< v1 << endl;  

 

}

 

 

cout<<"\n"; 

cout<<"ACELERACION"<< endl; 

cout<<"---------------------------------"<< endl; 

for (W1=1; W1<=10; W1=W1+1){

 

angulo1=((W1*t1 + fhi1)*pi)/180; 

    x1=A2*cos(angulo1); 

a1=-W1*W1*x1; 

 

cout<< "a["<<W1<<"]= "<< a1 << endl;  

 

}

 

}


 

void POSICION_W_A (){

 

cout<<"\n"; 

cout<<"POSICION"<< endl; 

cout<<"---------------------------------"<< endl;

 

for (W2=1; W2<=10; W2=W2+1){

cout<<"\n"; 

cout<<"Para frecuencia angular "<< W2 << endl;  

cout<<"___________________________________"<< endl; 

 

for (A3=1; A3<=5; A3=A3+0.5){

 

angulo2=((W2*t2 + fhi2)*pi)/180; 

x2=A3*cos(angulo2);

 

cout<< "X["<<W2 <<", "<< A3 <<"]= "<< x2 << endl;  

 

}

}

 

 

cout<<"\n"; 

cout<<"VELOCIDAD"<< endl; 

cout<<"---------------------------------"<< endl;

 

for (W2=1; W2<=10; W2=W2+1){

cout<<"\n"; 

cout<<"Para frecuencia angular "<< W2 << endl;  

cout<<"___________________________________"<< endl; 

 

for (A3=1; A3<=5; A3=A3+0.5){

 

angulo2=((W2*t2 + fhi2)*pi)/180; 

v2=-W2*A3*sin(angulo2); 

 

cout<< "V["<<W2 <<", "<< A3 <<"]= "<< v2 << endl;  

 

}

}

 

 

cout<<"\n"; 

cout<<"ACELERACION"<< endl; 

cout<<"---------------------------------"<< endl;

 

for (W2=1; W2<=10; W2=W2+1){

cout<<"\n"; 

cout<<"Para frecuencia angular "<< W2 << endl;  

cout<<"___________________________________"<< endl; 

 

for (A3=1; A3<=5; A3=A3+0.5){

 

angulo2=((W2*t2 + fhi2)*pi)/180; 

x2=A3*cos(angulo2);

a2=-W2*W2*x2; 

 

cout<< "a["<<W2 <<", "<< A3 <<"]= "<< a2 << endl;  

 

}

}

 

}

 

void DESVIACION (){

 

 

SUMA_S=0; 

 

 

for (i=1; i<=20; i++){

 

C[i]=rand()%50; 

cout<< "C["<<i<<"]= "<< C[i]<< endl; ; 

}

 

 

for (i=1; i<=10; i++){

 

suma= suma + C[i]; 

 

}

 

 

pro = suma/i; 

 

cout<<"\n"; 

 

cout<<"La media de los elementos de C[]= " << pro << endl; 

 

 

for (i=1; i<=10; i++){

 

SUMA_S=SUMA_S + pow((C[i]-pro), 2);  

}

 

des=sqrt(SUMA_S/(i-1)); 

 

cout<<"\n";

cout<<"La desviacion estandar de los elementos de C[]= " << des << endl; 

 

}

image.png

Práctica: Menú de Admitancia

#include<iostream>
#include<math.h>
using namespace std;

//Codificación de un programa de 3 opciones que determina la parte real e imaginaria de la admitancia, 
//así como la frecuencia de resonancia para un circuito resonante en paralelo y lo muestra en pantalla. 

int opcion; 

void ADMITANCIA (); 
float R, C, L, W, a, b, c, d; 

void ADMITANCIA_C (); 
float R1, C1, L1, W1, a1, b1, c1, d1; 
float A[10], B[10], D[10]; 


void ADMITANCIA_C_L (); 
float R2, C2, L2, W2, a2, b2, c2, d2; 
float A1[10], B1[10], D1[10];  


int main (){
   
   do {
       cout<<"\n";
       cout<<"MENU"<< endl;
       cout<<"--------------------------"<< endl;
       cout<<" [1] Calculo la admitancia."<< endl; 
       cout<<" [2] Calculo de la admitancia variando C."<< endl; 
       cout<<" [3] Calculo de la admittancia variando C y L."<< endl; 
       cout<<"\n";
       cout<<"Ingrese una opcioon <0>------------>"; cin>>opcion; 
       cout<<"\n"; 
       cout<<"\n";  
           
   switch (opcion){
       
       case 1: {
           cout<<"ADMITANCIA."<< endl; 
           cout<<"----------------------------------"<< endl;
           cout<<"Digite los datos segun se le solicite:"<< endl; 
           cout<<"\n";
           cout<<"1. La resistencia R-------------->"; cin>>R; 
           cout<<"2. La capacitancia C-------------->"; cin>>C;
           cout<<"3. La inductancia L-------------->"; cin>>L;
           
           ADMITANCIA (); 
           
           break;
       }
       
       case 2: {
           cout<<"ADMITANCIA variando C."<< endl; 
           cout<<"Condicion: Ci=5. Cf=10. Pa=1."<< endl; 
           cout<<"Forma: f(x)=f(C)."<< endl;
           cout<<"----------------------------------"<< endl;
           cout<<"Digite los datos segun se le solicite:"<< endl; 
           cout<<"\n";
           cout<<"1. La resistencia R-------------->"; cin>>R1; 
           cout<<"2. La inductancia L-------------->"; cin>>L1;
           
           ADMITANCIA_C (); 
           
           break;
       }
       
       case 3: {
           cout<<"ADMITANCIA variando C Y L."<< endl; 
           cout<<"Condicion 1: Ci=5. Cf=10. Pa=1."<< endl; 
           cout<<"Condicion 2: Li=10. Lf=20. Pa=1."<< endl; 
           cout<<"Forma: f(x, y)=f(C, L)."<< endl;
           cout<<"----------------------------------"<< endl;
           cout<<"Digite los datos segun se le solicite:"<< endl; 
           cout<<"\n";
           cout<<"1. La resistencia R-------------->"; cin>>R2; 
           
           ADMITANCIA_C_L (); 
           
           break;
       }
       
       
   }
   
} while (opcion); 
   
   
   return 0; 
}    
   
void ADMITANCIA (){
   
   W=1/(sqrt(L*C)); 
   a=1/R; 
   b=W*C;
   c=1/(W*L); 
   d=b+c; 
   
   cout<<"\n";
   cout<<"RESULTADOS"<< endl; 
   cout<<"----------------------------------"<< endl;
   cout<<"La frecuencia de resonancia segun los datos indicados es "<< W << endl; 
   cout<<"\n"; 
   cout<<"Respecto a la impedancia:"<< endl; 
   cout<<"-La conductancia es igual a "<< a << endl;
   cout<<"-La susceptancia es igual a "<< d << endl;
   cout<<"\n"; 
   cout<<"Por tanto, la admitancia Y tiene la siguiente forma----> Y = "<< a << " + "<< d << "j"<< endl; 
   cout<<"\n"; 
   
}

void ADMITANCIA_C (){
   
   cout<<"\n";
   cout<<"FRECUENCIA DE RESONANCIA"<< endl; 
   cout<<"-------------------------------------"<< endl;
   cout<<"La frecuencia adquiere los siguientes valores:"<< endl; 
   cout<<"\n";
   
   for (C1=5; C1<=10; C1++){
   
       W1=1/(sqrt(L1*C1)); 
       A[10]= W1; 
       
       cout<< "W["<<C1<<"]= "<< A[10] << endl; 
   }
   
   cout<<"\n";
   cout<<"ADMITANCIA"<< endl; 
   cout<<"---------------------------------------------"<< endl;
   cout<<"Para la parte real o conductancia: "<< endl; 
   cout<<"\n";
   
   for (C1=5; C1<=10; C1++){
       
       a1=1/R1;
       B[10]= a1; 
       
       cout<< "Co["<< C1 <<"]= "<< B[10] << endl; 
       
   }
   
   cout<<"\n";
   cout<<"IMPORTANTE: La parte real se mantiene constante para todas los valores de C."<< endl; 
   cout<<"\n";
   cout<<"Para la parte imaginaria o susceptancia: "<< endl; 
   cout<<"\n";
       
   for (C1=5; C1<=10; C1++){
       
       W1=1/(sqrt(L1*C1)); 
       A[10]= W1; 
         a1=1/R1;
       b1=W1*C1;
       c1=1/(W1*L1); 
       d1=b1+c1;
       B[10]= a1;
       D[10]= d1; 
       
       cout<< "Su["<< C1 <<"]= "<< D[10] << endl; 
       
   }
       
   cout<<"\n";
   cout<<"Por tanto, la admitancia Y tiene las siguientes formas:"<< endl; 
   cout<<"\n";
   
   for (C1=5; C1<=10; C1++){
       
       W1=1/(sqrt(L1*C1)); 
       A[10]= W1; 
         a1=1/R1;
       b1=W1*C1;
       c1=1/(W1*L1); 
       d1=b1+c1;
       B[10]= a1;
       D[10]= d1; 
       
       cout<< "Y["<< C1 <<"]= " << B[10] << " + "<< D[10] << "j"<< endl; 
       
       }
   
}
   
void ADMITANCIA_C_L (){
   
   cout<<"\n";
   cout<<"FRECUENCIA DE RESONANCIA"<< endl; 
   cout<<"-------------------------------------"<< endl;
   cout<<"La frecuencia adquiere los siguientes valores:"<< endl; 

    
   for (C2=5; C2<=10; C2++){
       
       cout<<"\n";
       cout<<"Con capacitancia igual a "<< C2<< endl;
       cout<<"______________________________"<< endl; 
       
       for (L2=10; L2<=20; L2++){
           
           W2=1/(sqrt(L2*C2));
           A1[10]= W2; 
           
           cout<< "W["<<C2<< ", "<< L2 <<"]= "<< A1[10] << endl; 
       }
   }
   
   cout<<"\n";
   cout<<"ADMITANCIA"<< endl; 
   cout<<"---------------------------------------------"<< endl;
   cout<<"Para la parte real o conductancia: "<< endl; 
   cout<<"\n";
   
   for (C2=5; C2<=10; C2++){
       
       a2=1/R2;
       B1[10]= a2;
       
       cout<< "Co["<< C2 <<"]= "<< B1[10] << endl; 
       
   }
   
   cout<<"\n";
   cout<<"IMPORTANTE: La parte real se mantiene constante para todas los valores de C y L."<< endl; 
   cout<<"\n";
   cout<<"Para la parte imaginaria o susceptancia: "<< endl; 
       
   for (C2=5; C2<=10; C2++){
       
       cout<<"\n";
       cout<<"Para capacitancia igual a "<< C2 << endl;
       cout<<"____________________________________"<< endl;  
       
       for (L2=10; L2<=20; L2++){
           
           W2=1/(sqrt(L2*C2)); 
           b2=W2*C2;
           c2=1/(W2*L2); 
           d2=b2+c2;
           A1[10]= W2; 
           B1[10]= a2;
           D1[10]= d2;  
           
           cout<< "Su["<< C2 <<", " << L2 <<"]= "<< D1[10] << endl; 
           
       }
   
   }
   
       
   cout<<"\n";
   cout<<"Por tanto, la admitancia Y tiene las siguientes formas:"<< endl; 
   
   for (C2=5; C2<=10; C2++){
       
       cout<<"\n";
       cout<<"Para capacitancia igual a "<< C2 << endl;
       cout<<"____________________________________"<< endl;  
       
       for (L2=10; L2<=20; L2++){
           
           W2=1/(sqrt(L2*C2)); 
           b2=W2*C2;
           c2=1/(W2*L2); 
           d2=b2+c2;
           A1[10]= W2; 
           B1[10]= a2;
           D1[10]= d2; 
           
        
       cout<< "Y["<< C2<< ", "<< L2 <<"]= " << B1[10] << " + "<< D1[10] << "j"<< endl; 
           
       }
   
   }
   
}

image.png
image.png
bottom of page