Advertisement
TShiva

Дашино

Dec 21st, 2014
354
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.68 KB | None | 0 0
  1. #include<iostream>
  2. #include<math.h>
  3. #include<string.h>
  4. using namespace std;
  5. struct stud
  6. {
  7.     char* name;
  8.     int bal;
  9. };
  10. struct payment
  11. {
  12.     char* name; // ÔÈÎ ÷åëîâåêà â âèäå ñòðîêè
  13.     char* date;     // äàòà â âèäå ñòðîêè ôîðìàòà dd.mm.yy
  14.     int sum;        // ñóììà ïëàòåæà
  15. };
  16.  
  17. char*task7(char* input,int N)
  18. {
  19.     char*s=0;
  20.     s=new char[N];
  21.     for(int i=0;i<N;i++) s[i]=input[i];
  22.     cout<<s;
  23.     return s;
  24. }
  25. int find1(char*input)
  26. {
  27.     int num=0;
  28.     int len=strlen(input)+1;
  29.     for (int i=0;i<len;i++)
  30.         if (input[i]=='1') num++;
  31.     return num;
  32. }
  33. int find2(char*input)
  34. {
  35.     int num=0;
  36.     int len=strlen(input)+1;
  37.     for (int i=0;i<len;i++)
  38.         if (input[i]=='2') num++;
  39.     return num;
  40. }
  41. int find3(char*input)
  42. {
  43.     int num=0;
  44.     int len=strlen(input)+1;
  45.     for (int i=0;i<len;i++)
  46.         if (input[i]=='3') num++;
  47.     return num;
  48. }
  49. char*task8(char* input)
  50. {
  51.     int length=0;
  52.     length=strlen(input)+find1(input)*3+find2(input)*2+find3(input)*2;
  53.     char*result=new char[length+1];
  54.     int j=0;
  55.     int len=strlen(input)+1;
  56.     for (int i=0;i<len;i++)
  57.     {       switch(input[i])
  58.             {
  59.                 case '1':
  60.                     result[j]='o'; j++;
  61.                     result[j]='d'; j++;
  62.                     result[j]='i';j++;
  63.                     result[j]='n';j++;
  64.                
  65.                     break;
  66.                 case '2':
  67.                     result[j]='d'; j++;
  68.                     result[j]='v'; j++;
  69.                     result[j]='a';j++;
  70.                
  71.                     break;
  72.                 case '3':
  73.                     result[j]='t'; j++;
  74.                     result[j]='r'; j++;
  75.                     result[j]='i';j++;
  76.                
  77.                     break;
  78.                 default:
  79.                     result[j]=input[i];
  80.                     j++;
  81.             }
  82.        
  83.     }
  84.     result[j++]=0;
  85.     cout<<result;
  86.     return result;
  87. }
  88. char*task9(char *input)
  89. {
  90.     int i;
  91.     int M=strlen(input);
  92.     for (i=0;input[i];i++)
  93.         if (input[i]!=' ') break;//íàøëè 1 ñèìâîë íå ïðîáåë
  94.     int j;
  95.     for (j=i;input[j];j++)
  96.         if (input[j]==' ') break;//èíäåêñ 1 ïðîáåëà ïîñëå 1 ñëîâà
  97.     int k;
  98.     for(k=M-1;input[k];k--)
  99.         if (input[k]!=' ') break;//ïîñëåäíèé ñèìâîë ïîñëåäíåãî ñëîâà
  100.     int e;
  101.     for (e=k-1;input[e];e--)
  102.         if (input[e]==' ') break;// ïðîáåë ïåðåä ïåðâûì ñèìâîëîì ïîñëåäíåãî ñëîâà
  103.     char * res=new char[M+1];
  104.     int t;
  105.     int length_input=0;
  106.     int flag1=i-1;// äî ñîþäà ïèøåì ïðîáåëû â íà÷àëå
  107.     int flag2=i+k-e;// äî ñþäà ïèøåì ïîñëåäíåå ñëîâî
  108.     int flag3=i+k-j+1; // äî ñþäà ïèøåì âñþ ñòðîêó ïîäðÿä
  109.     int flag4=i+k-j+1+j-i;//äî ñþäà ïèùåì 2 ñëîâî
  110.     //cout<<"i="<<i;
  111.     if (i!=0)
  112.     {
  113.         for (t=0;t<=flag1;t++) //çàïèñàëè ïðîáåëû â íà÷àëî ñòðîêè
  114.         {
  115.             res[t]=' ';
  116.             length_input++;
  117.         }
  118.     }
  119.     e++;
  120.     for (t=length_input;t<=flag2;t++) //çàïèñàëè ïîñëåäíåå ñëîâî
  121.     {
  122.         res[t]=input[e];
  123.         e++;
  124.         length_input++;
  125.     }
  126.    
  127.     //res[length_input]='0';
  128.     length_input--;
  129.  
  130.     for(t=length_input;t<flag3;t++)//ïèøåì îñòàëüíóþ ñòðîêó
  131.     {
  132.         res[t]=input[j];
  133.         j++;
  134.         length_input++;
  135.     }
  136.     //cout<<length_input<<" "<<flag4<<" "<<i;
  137.     for (t=length_input;t<=flag4;t++)//ïèøåì ïåðâîå ñëîâî
  138.     {
  139.         res[t]=input[i];
  140.         //cout<<res[t];
  141.         i++;
  142.         length_input++;
  143.     }
  144.    
  145.     if (k!=M)
  146.     {
  147.             for (t=length_input;t<=M;t++) //çàïèñàëè ïðîáåëû â êîíåö ñòðîêè
  148.         {
  149.             res[t]=' ';
  150.             length_input++;
  151.         }
  152.     }
  153.  
  154.     res[M]=0;
  155. for (i=0;i<M;i++)cout<<res[i];
  156. return res;
  157. }
  158. char*task10(char*input)
  159. {
  160.     int length=strlen(input);
  161.     char*mas_simv=new char[length];
  162.     char symbol;
  163.     bool flag;
  164.     int j=0;
  165.     for (int i=0;i<length;i++)
  166.     {
  167.         symbol=input[i];
  168.         flag=false;
  169.         for (int k=0; k<length;k++)
  170.             if (mas_simv[k]==symbol) flag=true;
  171.         if (flag==false)
  172.         {
  173.             int count=0;
  174.             for (int t=0;t<length;t++)
  175.                 if (input[t]==symbol) count++;
  176.             mas_simv[j]=symbol;
  177.             j++;
  178.             cout<<symbol<<"="<<count<<endl;
  179.         }  
  180.     }
  181.     delete mas_simv;
  182. return 0;
  183. }
  184. char*task11(char*input)
  185. {
  186.     char *result=0;
  187.     int k=strlen(input);
  188.     result=new char [(k+1)/2];
  189.     int j=0;
  190.     for(int i=0;i<k;i+=2,j++)
  191.     {
  192.         result[j]=input[i];
  193.     }
  194.     result[j]=0;
  195.     cout<<result;
  196.     delete result;
  197.     return 0;
  198. }
  199. char**task12(char**mas,int B)
  200. {
  201.     char**result;
  202.     result=new char*[B];
  203.     int i;
  204.     for (i=0;i<=B;i++)
  205.     {
  206.         int p=0;
  207.         int j=0;
  208.         int k=strlen(mas[i]);
  209.         for (j=0;j<k;j++)
  210.             if (mas[i][j]==' ') break;// íàøëè ïðîáåë ïîñëå ôàìèëèè  íó è ïåðåä èìåíåì êîòîðûé
  211.         int flag=j;
  212.         result[i]=new char[k+1];// ñùçäàëè â êîíå÷íîì ìàññèâå ñòðîêó äëèíîé êàê ýòà
  213.         result[i][p]=mas[i][j+1];//çàñóíóëè òóäà 1 áóêâó èìåíè
  214.         j++;
  215.         p++;
  216.         result[i][p]='.';
  217.         p++;
  218.         int q;
  219.         for ( q=j;q<k;q++)
  220.             if (mas[i][q]==' ') break;// èùåì ïðîáåë ïåðåä îò÷åñêòâîì
  221.         result[i][p]=mas[i][q+1];//îïÿòü êîðî÷å áóêâó ïèøåì
  222.         p++;
  223.         result[i][p]='.';
  224.         p++;
  225.         /*for (j=0;j<k;j++)
  226.             if (mas[i][j]==' ') break;*/// ïîòîì îïÿòü èùåì ãäå ôàìèëèÿ çàêàí÷èâàåòñÿ è îïÿòü çàïèñûâàåñ â ðåçóëüòàò òàì äàëüøå
  227.         int m=0;
  228.         for (m=p,j=0;j<flag;j++,m++)
  229.             result[i][m]=mas[i][j];
  230.         result[i][m]=0;
  231.     }
  232.     for (int i=1;i<=B;i++)//âûâîäèì
  233.     {
  234.         cout<<result[i];
  235.         cout<<endl;
  236.     }
  237.     return result;
  238. }
  239. int* task13(int *p,int B)
  240. {
  241.     int len=0;
  242.     for(int i=0;i<B;i++)
  243.         if ((p[i]%2)==0) len++;
  244.     if (len==0)
  245.     {
  246.         int *q=0;
  247.         cout<<"No chetnyx chisel";
  248.         return q;
  249.     }
  250.     else
  251.     {
  252.         int *q=0;
  253.         q=new int[len];
  254.         int j=0;
  255.         for(int i=0;i<B;i++)
  256.         if ((p[i]%2)==0)
  257.         {
  258.             q[j]=p[i];
  259.             j++;
  260.         }
  261.         for(j=0;j<len;j++)
  262.             cout<<q[j]<<" ";
  263.         return q;
  264.     }
  265.  
  266. }
  267. int task14(int*p,int B)
  268. {
  269.     int length=B;
  270.     int*mas_simv=new int[length];
  271.     int symbol;
  272.     bool flag;
  273.     int j=0;
  274.     for (int i=0;i<length;i++)
  275.     {
  276.         symbol=p[i];
  277.         flag=false;
  278.         for (int k=0; k<length;k++)
  279.             if (mas_simv[k]==symbol) flag=true;
  280.         if (flag==false)
  281.         {
  282.             mas_simv[j]=p[i];
  283.             j++;
  284.         }  
  285.     }
  286.     for(int i=0;i<j;i++)
  287.             cout<<mas_simv[i]<<" ";
  288.     delete mas_simv;
  289. return 0;
  290. }
  291.  
  292.  
  293. int task15(char**mas,int B)
  294. {
  295.     stud* people=new stud[B];
  296.     for (int i=1;i<=B;i++)
  297.     {
  298.         people[i].name=new char[2];
  299.         people[i].name=" ";
  300.         people[i].bal=0;
  301.     }
  302.     int i=0;
  303.     int tek_uk=1;
  304.     for (i=1;i<=B;i++)
  305.     {
  306.         int length_data=strlen(mas[i]);
  307.         int j=0;
  308.         int j1=0;
  309.         bool flag=true;
  310.         bool flag_exist=false;
  311.         for (j1=0;j1<length_data;j1++)//èùåì ïðîáåë
  312.         {
  313.             if (mas[i][j1]==' ') break;
  314.         }
  315.         for (j=j1+1;j<length_data;j++)//èùåì ïðîáåë
  316.         {
  317.             if (mas[i][j]==' ') break;
  318.         }
  319.         //òåïåðü j óêàçûâàåò íà ïðîáåë ïîñëå ÔÈÎ
  320.             char*data=new char [j];//ïîìåñòèëè ôèî â data
  321.             int p=0;
  322.             for(p=0;p<j; p++)
  323.                 data[p]=mas[i][p];
  324.             data[p]=0;
  325.             //ñ÷èòûâàåì áûëëû ñî ñòðîêè
  326.             int t=0;
  327.             for ( t=j+1;t<length_data;t++)//èùåì ïðîáåë îïÿòü
  328.             if(mas[i][t]==' ') break;
  329.                            
  330.             char mark[4];
  331.             for(int y=0;y<length_data;y++)
  332.                 {
  333.                     mark[y]=mas[i][t];
  334.                     t++;
  335.                 }          
  336.             int data_bal=atoi(mark);
  337.             flag_exist=false;
  338.             for(int k=1;k<=B;k++)//õîäèì ïî ñòðîêàì â ìàññèâå ñòðóêòóð è èùåì åñòü îí òàì óæå èëè íåò 
  339.             {
  340.                 if (strcmp(people[k].name,data)==0)
  341.                 {
  342.                     flag_exist=true;
  343.                     people[k].bal= people[k].bal+data_bal;
  344.                 }
  345.             }
  346.                 if (flag_exist==false) //åñëè ýòîãî ÷åëîâåêà â ñïèñêå èòîãîâîì åùå íåò
  347.                 {
  348.                     people[tek_uk].name=new char[j];//âûäåëèëè ïàìÿòü ïîä èìÿ â ïîëå
  349.                     people[tek_uk].name=data;//çàïèñàëè èìÿ
  350.                     people[tek_uk].bal=data_bal;
  351.                     tek_uk++;
  352.                 }          
  353.     }
  354.     int max=people[1].bal;
  355.     for(int i=2;i<tek_uk;i++)
  356.         if (max<people[i].bal) max=people[i].bal;
  357.     for (int i=1;i<tek_uk;i++)
  358.         if (max==people[i].bal) cout<<people[i].name<<" "<<people[i].bal<<endl;
  359.     int l=0;
  360.         cout<<"l=";
  361.     cin>>l;
  362.     //delete[]people;
  363.  
  364.    
  365.    
  366. return 0;
  367. }
  368. payment* task16_1(int B)
  369. {
  370.     int const M=8;
  371.     const int N=500;
  372.     payment *mas=new payment[B];
  373.     for (int i=0;i<B;i++)
  374.     {
  375.         mas[i].name=new char[N];
  376.         mas[i].date=new char[M];
  377.     }
  378.     for (int i=0;i<B;i++)
  379.     {
  380.         char input[100];
  381.         cin.ignore(1);
  382.         cin.getline(input,N);
  383.         strcpy(mas[i].name,input);
  384.         cin.getline(input,N);
  385.         strcpy(mas[i].date,input);
  386.         cin>>mas[i].sum;
  387.     }
  388.     for(int i=0;i<B;i++)
  389.         cout<<mas[i].name<<" "<<mas[i].date<<" "<<mas[i].sum<<endl;
  390.     /*for (int i=0;i<B;i++)
  391.     {
  392.         delete[]mas[i].name;
  393.         delete[]mas[i].date;
  394.         delete []mas;
  395.     }*/
  396. return mas;
  397. }
  398. void task17(int B, char symbol)
  399. {
  400.     int const M=8;
  401.     const int N=500;
  402.     payment *mas=new payment[B];
  403.     for (int i=0;i<B;i++)
  404.     {
  405.         mas[i].name=new char[N];
  406.         mas[i].date=new char[M];
  407.     }
  408.     for (int i=0;i<B;i++)
  409.     {
  410.         char input[100];
  411.         cin.ignore(1);
  412.         cin.getline(input,N);
  413.         strcpy(mas[i].name,input);
  414.         cin.getline(input,N);
  415.         strcpy(mas[i].date,input);
  416.         cin>>mas[i].sum;
  417.     }
  418.     for(int i=0;i<B;i++)
  419.         if(mas[i].name[0]==symbol) cout<<mas[i].name<<" "<<mas[i].date<<" "<<mas[i].sum<<endl;
  420.  
  421. }
  422. int main()
  423. {
  424.     //const int N=500;
  425.     //char input[N];
  426.     /**cout<<"Put the line"<<endl;
  427.     cin.getline(input,N);*/
  428. //  task7(input,N);
  429.     //task8(input);
  430.     //task9(input);
  431.     //task10(input);
  432.     //task11(input);
  433.     //task12(mas,B);
  434.     //int B;
  435.     //cout<<"Put the number of elements"<<endl;
  436.     //cin>>B;
  437.     //int *p=0;
  438.     //p=new int[B];
  439.     //for (int i=0;i<B;i++)cin>>p[i];
  440.     ////task13(p,B);
  441.     //task14(p,B);
  442.     int B;
  443.     cout<<"Put the number of elements"<<endl;
  444.     cin>>B;
  445.     /*char**mas=0;
  446.     mas=new char*[B];
  447.     for (int i=0;i<=B;i++)
  448.     {
  449.         mas[i]=new char[N];
  450.         cin.getline(mas[i],N);
  451.     }
  452.     task15(mas,B);*/
  453.     //task16_1(B);
  454.     char symbol;
  455.     cout<<"put symbol";
  456.     cin>>symbol;
  457.     task17(B,symbol);
  458.         return 0;
  459. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement