Advertisement
FHRL

prótesis biónica 0.0.6

Jun 13th, 2022 (edited)
1,445
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.42 KB | Source Code | 0 0
  1. /*Created by Móvil C.
  2.  *project: ""prótesis biónica"" // main
  3.  *Date:13-06-2022
  4.  *Time: 22:15
  5.  *Verton:0.0.6
  6.  */
  7. #include<stdlib.h>
  8. #include<string.h>
  9. #include<sstream>//sstream
  10. using namespace std;
  11. template <typename T>
  12. typedef struct nodo{//has lo correcto.
  13.     #define TAMANIO_STRUCT_NODO sizeof(nodo)/2
  14.     #define TAMANIO_T sizeof(T)/2
  15.    
  16.     nodo*anterior[TAMANIO_STRUCT_NODO]={this,nullptr},
  17.         *siguiente[TAMANIO_STRUCT_NODO]={this,nullptr},
  18.         *ortogonalAnterior[TAMANIO_STRUCT_NODO]={this,nullptr},
  19.         *ortogonalSiguiente[TAMANIO_STRUCT_NODO]={this,nullptr};//new nodo[4];
  20.     T*dato[TAMANIO_T]={nullptr};//arreglo de punteros
  21.     unsigned long int tamanioInterno=0,
  22.                       tamanioOrtogonal=0;//Bug de tamanios?,reviza aqui' o en el arreglo.
  23.    
  24.     nodo():dato({nullptr}),tamanioInterno(0){
  25.         anterior=siguiente=ortogonalAnterior=ortogonalSiguiente={this,nullptr};
  26.     };
  27.     nodo(T*datoOriginal):dato({datoOriginal,nullptr}),tamanioInterno(0),ortogonalAnterior({this,nullptr}),ortogonalSiguiente({this,nullptr}){//basura.set(nullptr);
  28.         if(datoOriginal){
  29.             for(;datoOriginal[tamanioInterno];tamanioInterno++);//noRecursivo.
  30.             if(1<tamanioInterno){
  31.                 if(2<tamanioInterno){//3;
  32.                     anterior={new nodo(&datoOriginal[tamanioInterno/2],tamanioInterno/2),nullptr},
  33.                     siguiente={new nodo(datoOriginal,tamanioInterno/2),nullptr};
  34.                 }else anterior={new nodo(&datoOriginal[1],1),nullptr},//2;
  35.                      siguiente={this,nullptr};
  36.             }else anterior=siguiente={this,nullptr};//0 y 1;
  37.         }else anterior=siguiente={this,nullptr};//nullptr->
  38.     };
  39.     nodo(T*datoOriginal,unsigned long int tamanio):tamanioInterno(tamanio),ortogonalAnterior({this,nullptr}),ortogonalSiguiente({this,nullptr}){
  40.         if(datoOriginal)
  41.             dato={&datoOriginal[tamanio/2],nullptr};
  42.         else dato=nullptr;
  43.         if(1<tamanioInterno){
  44.             if(2<tamanioInterno){//3;
  45.                 anterior={new nodo(&datoOriginal[tamanioInterno/2],tamanioInterno/2),nullptr},
  46.                 siguiente={new nodo(datoOriginal,tamanioInterno/2),nullptr};
  47.             }else anterior={new nodo(&datoOriginal[1],1),nullptr},//2;
  48.                  siguiente={this,nullptr};
  49.         }else anterior=siguiente={this,nullptr};//0 y 1;
  50.     }
  51.     nodo(T*listaOriginal[],unsigned long int x,unsigned long int yIndependientes[x]):tamanioInterno(x){
  52.         if(listaOriginal){
  53.             if(listaOriginal[x/2]){
  54.                 //new nodo(listaOriginal[x/2][yIndependientes[x/2]/2]);
  55.                 if(listaOriginal[x/2][yIndependientes[x/2]/2]){
  56.                     *dato[0]=listaOriginal[x/2][yIndependientes[x/2]/2];
  57.                    
  58.                     anterior={new nodo(listaOriginal,x,yIndependientes),nullptr};
  59.                     siguiente={new nodo(listaOriginal,x,yIndependientes),nullptr};
  60.                    
  61.                     ortogonalAnterior={new nodo(listaOriginal,x,yIndependientes),nullptr};
  62.                     ortogonalSiguiente={new nodo(listaOriginal,x,yIndependientes),nullptr};
  63.                    
  64.                 }else{}
  65.                 ///
  66.             }else{
  67.                 ///
  68.             }
  69.             ///
  70.         }else{///
  71.         }
  72.     };
  73.     nodo(T*listaOriginal[]):dato({nullptr,nullptr}),tamanioInterno(0),ortogonalAnterior({this,nullptr}),ortogonalSiguiente({this,nullptr}){
  74.         ///x[0][0]==*x[0]==**x ///(listOriginal[0]==*listOriginal) ///listaOriginal
  75.         if(listaOriginal){
  76.             int x;
  77.             for(x=0;listaOriginal[x];x++);
  78.             int y[x];
  79.             for(int i=0;i<x;x++)
  80.                 for(y[x]=0;listaOriginal[x][y[x]];y[x]++);//no recursive
  81.             dato[0]={&listaOriginal[x/2][y[x]/2],nullptr};
  82.             ////
  83.         }else{}
  84.         ////
  85.         /*experimental
  86.         if(listaOriginal){
  87.             stringstream ss;
  88.             T lista[]={nullptr},*auxiliar[]={nullptr};
  89.             for(int i=0;listaOriginal[i];i++,ss.clear()){
  90.                 ss<<listaOriginal,
  91.                 ss>>lista;
  92.                 cout<<ss.rdbuf()<<"rd bufer";
  93.                 for(int j=0;lista[j];j++){
  94.                     (*auxiliar)[j]=new T(lista[j]);
  95.                 }
  96.             }
  97.         }*/
  98.         //{0xejemplo ,new T()->{T0,basura},...,nullptr,basura},{nullptr,basura},
  99.         //{new T()->{T0,basura},basutra} o
  100.         //{new T[x]->{T1,T2,...Tn,basura},basura},{nullptr,basura},{0xejemplo,basura}
  101.         if(listaOriginal){//0xff->
  102.             if(*listaOriginal){//puntero a un arreglo *original is == original[0];
  103.                 stringstream ss;
  104.                 T lista[]={nullptr};
  105.                 for(int i=0;listaOriginal[i];i++,ss.clear()){
  106.                     ss<<listaOriginal[i];
  107.                     cout<<listaOriginal[i];
  108.                     ss>>lista;
  109.                     cout<<lista;
  110.                 }
  111.             }else{
  112.             }
  113.             if(listaOriginal[0]){//arreglo de punteros
  114.             }else{
  115.             }
  116.         }else{//do nothing;
  117.         }
  118.     };
  119.     nodo(T*listaDeDatos[],unsigned long int x,unsigned long int y):tamanioInterno(x),dato({listaDeDatos[tamanioInterno/2],nullptr}){
  120.         if(1<tamanioInterno){
  121.             if(2<tamanioInterno){
  122.                 siguiente[0]=new nodo(listaDeDatos[(tamanioInterno/2)],(tamanioInterno/2));
  123.             }
  124.             anterior[0]=new nodo(listaDeDatos[0],(tamanioInterno/2));
  125.         }else if(tamanioInterno){
  126.             anterior[0]=new nodo(&listaDeDatos[(tamanioInterno/2)]);
  127.         }else{}
  128.     };
  129.    
  130.     nodo(unsigned long int x,unsigned long int y,T*lista[]);
  131.     nodo(unsigned long int tamanio,unsigned long int*tamanioDevectores[],T*lista[]);
  132.    
  133.     nodo(nodo*raizAntigua):dato({raizAntigua->dato,nullptr}),anterior(raizAntigua->anterior),siguiente(raizAntigua->siguiente),ortogonalAnterior(raizAntigua->ortogonalAnterior),ortogonalSiguiente(raizAntigua->ortogonalSiguiente){};
  134.    
  135.     ~nodo(){}  
  136. };
  137. int main(int argc,char*argv[]){///number, *location[]
  138.     stringstream zz;
  139.     cout<<argc<<endl;
  140.     cout<<argv<<endl;
  141.     if(argc){
  142.         cout<<"*"<<(*argv)<<endl
  143.             <<(*argv)[9/2]<<"["<<9/2<<"]"<<endl;//4
  144.         cout<<"0'"<<argv[0]<<"'"<<endl;
  145.         cout<<"1'"<<argv[1]<<"'"<<endl;
  146.         if(argv[2]){cout<<"2'"<<argv[2]<<"'"<<endl;//trow obiusly.
  147.         }else{
  148.             cout<<"2'"<<"is nullptr"<<endl;
  149.         }//static_cast<char>(new char[])
  150.         // axess string => sstream => *type[];
  151.         //argv[2]=*xyz;//new char('c');
  152.         argv[2]=new char('ops!');//,//new char('/0')};
  153.         //cin>>(argv[2]);
  154.         //*(argv[2])=;
  155.        
  156.         zz<<"aqio";
  157.         zz>>argv[2];
  158.         argv[2]="tfhnju70j8yy";
  159.         cout<<argv[2][8];
  160.         cout<<"2'"<<argv[2]<<"'"<<endl;
  161.         argv[3]=nullptr;
  162.         argv[4]=nullptr;
  163.         //char*ijk=new char[5];
  164.         //ijk="rghujb";
  165.         if(argv[3]){cout<<"3'"<<argv[3]<<"'"<<endl;//trow obiusly.?
  166.         }else{
  167.             cout<<"3'"<<"is nullptr"<<endl;
  168.         }
  169.         //argv[3]=new char('d');
  170.         //cout<<"2'"<<argv[4]<<"'"<<endl;
  171.        
  172.         return main(0,argv);
  173.     }
  174.     return 0;
  175. }
  176. /*arguments.
  177. > main.cpp 2ws
  178. 2
  179. * /storage/emulated/0/Documents/not suport media./proyecto de junio./main.cpp.bc
  180. /[0]
  181. 1
  182. * /storage/emulated/0/Documents/not suport media./proyecto de junio./main.cpp.bc
  183. /[0]
  184. 0
  185. */
  186. /*argc será el número de cadenas apuntadas por argv.  Esto será (en la práctica) 1 más el número de argumentos, ya que prácticamente todas las implementaciones antepondrán el nombre del programa a la matriz.*/
  187.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement