Guest User

Untitled

a guest
May 21st, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.18 KB | None | 0 0
  1. //Laboratornay rabota 4 studenta EVM 1-1 ‚ дЁ­  ђгб« ­ 
  2.  
  3. #include <iostream.h>
  4. #include <fstream.h>
  5. #include <stdlib.h>
  6. #include <conio.h>
  7. #include <iomanip.h>
  8. const int m=5, n=6 ;
  9. ifstream fin ;
  10. ofstream fout;
  11. char c[6][81] ;
  12. void main()
  13. {clrscr();
  14. fin.open("lr1.dat" );
  15. if (!fin) {cout<<"Oshibka pri otkritii faila dannix"; exit(1);}
  16. fout.open("lr1.res" );
  17. if (!fout) {cout<<"Oshibka pri otkritii faila rezultatov"; exit(1);}
  18. float a[m][n]; // opredelenie chislovogo massiva dl9 xranenia
  19. //isxodnix dannix
  20. float b[2][(m+1)/2]; //opredelenie formiruego massiva (vidilenie pam9ti)
  21.  
  22. int i,j;
  23. void vvod (float a[m][n]); // prototip funkcii vvod()
  24. void p ( float a[m][n] ); // prototip funkcii p()
  25. void obr(float a[m][n],float b[2][(m+1)/2]); // prototip funkcii obr()
  26. vvod(a);
  27. p(a);
  28. obr(a,b);
  29. fout<<"\n\n\nNew array:\n";
  30. for(i=0;i<2;i++) // v novom massive 2-e stroki
  31. {
  32. fout<<'\n'; //kazhda9 stroka znacheniy massiva vivoditc9
  33. //s novoi stroki faila
  34. for(j=0;j<(m+1)/2;j++)
  35. fout<<setw(12) // setw ( int n) - manipyl9tor vivoda s parametrom dl9
  36. //ystanovki pol9 vivoda vivodimogo znacheni9,
  37. // prototipi manipul9torov naxod9ts9 v faile iomanip.h
  38. <<b[i][j] ;
  39. }
  40. fout.close();
  41. }
  42.  
  43. // opredelenie funkcii vvod()
  44. void vvod (float a[m][n])
  45. {
  46. int i,j;
  47. for(i=0;i<6;i++)
  48. {
  49. fin.getline(c[i], 82,'\n');
  50. if(i<4) fout<<c[i]<<endl;
  51. }
  52. for(i=0;i<m;i++)
  53. for(j=0;j<n;j++)
  54. fin >> *(*( a+i)+j);
  55. fin.close();
  56. }
  57. // opredelenii funkcii p()
  58. void p ( float a[m][n] )
  59. {
  60. int i,j;
  61. for(i=0;i<m;i++)
  62. {
  63. fout<<'\272';
  64. for(j=0;j<n;j++)
  65. switch(j)
  66. {
  67. case 0: case 1: case 3:case 4: fout.width(10); fout.setf(ios::left|ios::fixed);
  68. fout.precision(5);
  69. fout<<a[i][j]<<'\272';
  70. break;
  71. case 2: fout.width(10); fout.setf(ios::scientific);
  72. fout.precision(4);
  73. fout<<a[i][j]<<'\272';
  74. break;
  75. case 5: fout.width(10); fout.precision(4);
  76. fout<<a[i][j]<<"\272\n";
  77. break;
  78. }
  79. if (i==m-1) fout<<c[5]<<endl;
  80. else fout<<c[4]<<endl;
  81. }
  82. }
  83. // opredelenie funkcii obr()-funkcii formirovani9 massiva b
  84. // pervie 2-a parametra eto parametra-massiva dl9 peredachi v funkciu
  85. //massiva s isxodnimi dannimi i sfornirovannogo massiva
  86.  
  87. void obr (float a[m][n],float b[2][(m+1)/2])
  88. {
  89. int i,j,k,kol,imin,imax;
  90. float pr,min,max,st,s;
  91. kol=0;pr=1;
  92. for(i=0;i<m;i+=2)
  93. {
  94. s=0;k=0;
  95. for(j=0;j<n;j++)
  96. if(a[i][j]>0)
  97. {
  98. s+=a[i][j];
  99. k++;
  100. kol++;
  101. }
  102. if(s!=0)
  103. pr*=s;
  104. b[0][i/2]=s;
  105. b[1][i/2]=k;
  106. }
  107. fout<<"\n Pr= "<<pr <<" ,Kol= "<<kol<<endl;
  108. imin=imax=0;
  109. min=max=b[0][0];
  110. for(j=0;j<(m+1)/2;j++)
  111. if (b[0][j]<min)
  112. {
  113. min=b[0][j];
  114. imin=2*j;
  115. }
  116. else if (b[0][j]>max)
  117. {
  118. max=b[0][j];
  119. imax=2*j;
  120. }
  121. fout << "\n imin= "<<imin <<" ,imax= "<<imax<<endl;
  122. if (imin!=imax)
  123. {
  124. for(j=0;j<n;j++)
  125. {
  126. st=a[imin][j];
  127. a[imin][j]=a[imax][j];
  128. a[imax][j]=st;
  129. }
  130. fout<<"\n Massiv posle perestanovki:\n";
  131. for(j=0;j<4;j++)
  132. fout<<c[j]<<endl;
  133. p(a);
  134. }
  135. else fout <<"Stroki sovpali"<<endl;
  136. }
Add Comment
Please, Sign In to add comment