Advertisement
FHRL

prótesis biónica 0.0.2

Jun 3rd, 2022 (edited)
1,416
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.58 KB | Software | 0 0
  1. /*Created by Móvil C.
  2.  *project: ""prótesis biónica"" // main
  3.  *Date:03-06-2022
  4.  *Time: 22:45
  5.  *Verton:0.0.2
  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;//Bug de tamanios?,reviza aqui' o en el arreglo.
  22.    
  23.     nodo():dato({nullptr}),tamanioInterno(0){
  24.         anterior=siguiente=ortogonalAnterior=ortogonalSiguiente={this,nullptr};
  25.     };
  26.     nodo(T*datoOriginal):dato({datoOriginal,nullptr}),tamanioInterno(0),ortogonalAnterior({this,nullptr}),ortogonalSiguiente({this,nullptr}){//basura.set(nullptr);
  27.         if(datoOriginal){
  28.             for(;datoOriginal[tamanioInterno];tamanioInterno++);//noRecursivo.
  29.             if(1<tamanioInterno){
  30.                 if(2<tamanioInterno){//3;
  31.                     anterior={new nodo(&datoOriginal[tamanioInterno/2],tamanioInterno/2),nullptr},
  32.                     siguiente={new nodo(datoOriginal,tamanioInterno/2),nullptr};
  33.                 }else anterior={new nodo(&datoOriginal[1],1),nullptr},//2;
  34.                      siguiente={this,nullptr};
  35.             }else anterior=siguiente={this,nullptr};//0 y 1;
  36.         }else anterior=siguiente={this,nullptr};//nullptr->
  37.     };
  38.     nodo(T*datoOriginal,unsigned long int tamanio):dato(datoOriginal[tamanio/2],nullptr),tamanioInterno(tamanio){
  39.         if(tamanioInterno){
  40.             for(tamanio=0;datoOriginal[tamanio];tamanio++){
  41.                 ////
  42.             }
  43.             ////
  44.         }else{////
  45.         }
  46.         anterior=siguiente=ortogonalAnterior=ortogonalSiguiente={this,nullptr};
  47.     }
  48.     //nodo()
  49.     nodo(T*listaOriginal[]):dato({nullptr,nullptr}){
  50.         if(listaOriginal){
  51.             int x;
  52.             for(x=0;listaOriginal[x];x++);
  53.             int *k=new int[x];
  54.             /*int x;// *k=new int[8];
  55.             for(x=0;listaOriginal[x];x++){
  56.                 for(int y=0;listaOriginal[x][y];y++){
  57.                     listaOriginal[x][y];
  58.                 }
  59.             }int *k=new int[x];*/
  60.         }else{}
  61.         /*experimental
  62.         if(listaOriginal){
  63.             stringstream ss;
  64.             T lista[]={nullptr},*auxiliar[]={nullptr};
  65.             for(int i=0;listaOriginal[i];i++,ss.clear()){
  66.                 ss<<listaOriginal,
  67.                 ss>>lista;
  68.                 cout<<ss.rdbuf()<<"rd bufer";
  69.                 for(int j=0;lista[j];j++){
  70.                     (*auxiliar)[j]=new T(lista[j]);
  71.                 }
  72.             }
  73.         }*/
  74.         //{0xejemplo ,new T()->{T0,basura},...,nullptr,basura},{nullptr,basura},
  75.         //{new T()->{T0,basura},basutra} o
  76.         //{new T[x]->{T1,T2,...Tn,basura},basura},{nullptr,basura},{0xejemplo,basura}
  77.         if(listaOriginal){//0xff->
  78.             if(*listaOriginal){//puntero a un arreglo *original is == original[0];
  79.                 stringstream ss;
  80.                 T lista[]={nullptr};
  81.                 for(int i=0;listaOriginal[i];i++,ss.clear()){
  82.                     ss<<listaOriginal[i];
  83.                     cout<<listaOriginal[i];
  84.                     ss>>lista;
  85.                     cout<<lista;
  86.                 }
  87.             }else{
  88.             }
  89.             if(listaOriginal[0]){//arreglo de punteros
  90.             }else{
  91.             }
  92.         }else{//do nothing;
  93.         }
  94.     };
  95.    
  96.     nodo(unsigned long int cantidadElementosArreglo,T*listaOriginal[]):dato({listaOriginal[cantidadElementosArreglo/2],nullptr}){//{7/2=3},{5/2=2},{3/2=1},{1/2=0};x[-1],i=0|x[0],i=1
  97.         if(cantidadElementosArreglo>1){
  98.            
  99.         }else if(cantidadElementosArreglo){
  100.            
  101.         }else{/*echo*/}
  102.     };
  103.    
  104.     nodo(unsigned long int x,unsigned long int y,T*lista[]);
  105.     nodo(unsigned long int tamanio,unsigned long int*tamanioDevectores[],T*lista[]);
  106.    
  107.     nodo(nodo*raizAntigua):dato({raizAntigua->dato,nullptr}),anterior(raizAntigua->anterior),siguiente(raizAntigua->siguiente),ortogonalAnterior(raizAntigua->ortogonalAnterior),ortogonalSiguiente(raizAntigua->ortogonalSiguiente){};
  108. private:
  109.     nodo(T*listaDeDatos[],unsigned long int tamanioDelArreglo):dato({listaDeDatos[tamanioDelArreglo/2],nullptr}){
  110.         if(1<tamanioDelArreglo){
  111.             if(2<tamanioDelArreglo){
  112.                 siguiente[0]=new nodo(listaDeDatos[(tamanioDelArreglo/2)],(tamanioDelArreglo/2));
  113.             }
  114.             anterior[0]=new nodo(listaDeDatos[0],(tamanioDelArreglo/2));
  115.         }else if(tamanioDelArreglo){
  116.             anterior[0]=new nodo(&listaDeDatos[(tamanioDelArreglo/2)]);
  117.         }else{}
  118.     };
  119.     ~nodo(){}  
  120. };
  121. int main(int argc,char*argv[]){///number, *location[]
  122.     stringstream zz;
  123.     cout<<argc<<endl;
  124.     cout<<argv<<endl;
  125.     if(argc){
  126.         cout<<"*"<<(*argv)<<endl
  127.             <<(*argv)[9/2]<<"["<<9/2<<"]"<<endl;//4
  128.         cout<<"0'"<<argv[0]<<"'"<<endl;
  129.         cout<<"1'"<<argv[1]<<"'"<<endl;
  130.         if(argv[2]){cout<<"2'"<<argv[2]<<"'"<<endl;//trow obiusly.
  131.         }else{
  132.             cout<<"2'"<<"is nullptr"<<endl;
  133.         }//static_cast<char>(new char[])
  134.         // axess string => sstream => *type[];
  135.         //argv[2]=*xyz;//new char('c');
  136.         argv[2]=new char('ops!');//,//new char('/0')};
  137.         //cin>>(argv[2]);
  138.         //*(argv[2])=;
  139.        
  140.         zz<<"aqio";
  141.         zz>>argv[2];
  142.         argv[2]="tfhyy";
  143.         cout<<argv[2][2];
  144.         cout<<"2'"<<argv[2]<<"'"<<endl;
  145.         argv[3]=nullptr;
  146.         argv[4]=nullptr;
  147.         //char*ijk=new char[5];
  148.         //ijk="rghujb";
  149.         if(argv[3]){cout<<"3'"<<argv[3]<<"'"<<endl;//trow obiusly.?
  150.         }else{
  151.             cout<<"3'"<<"is nullptr"<<endl;
  152.         }
  153.         //argv[3]=new char('d');
  154.         //cout<<"2'"<<argv[4]<<"'"<<endl;
  155.        
  156.         return main(0,argv);
  157.     }
  158.     return 0;
  159. }
  160. /*arguments.
  161. > main.cpp 2ws
  162. 2
  163. * /storage/emulated/0/Documents/not suport media./proyecto de junio./main.cpp.bc
  164. /[0]
  165. 1
  166. * /storage/emulated/0/Documents/not suport media./proyecto de junio./main.cpp.bc
  167. /[0]
  168. 0
  169. */
  170. /*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.*/
  171.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement