Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Laboratornay rabota 4 studenta EVM 1-1 ‚ дЁ ђгб«
- #include <iostream.h>
- #include <fstream.h>
- #include <stdlib.h>
- #include <conio.h>
- #include <iomanip.h>
- const int m=5, n=6 ;
- ifstream fin ;
- ofstream fout;
- char c[6][81] ;
- void main()
- {clrscr();
- fin.open("lr1.dat" );
- if (!fin) {cout<<"Oshibka pri otkritii faila dannix"; exit(1);}
- fout.open("lr1.res" );
- if (!fout) {cout<<"Oshibka pri otkritii faila rezultatov"; exit(1);}
- float a[m][n]; // opredelenie chislovogo massiva dl9 xranenia
- //isxodnix dannix
- float b[2][(m+1)/2]; //opredelenie formiruego massiva (vidilenie pam9ti)
- int i,j;
- void vvod (float a[m][n]); // prototip funkcii vvod()
- void p ( float a[m][n] ); // prototip funkcii p()
- void obr(float a[m][n],float b[2][(m+1)/2]); // prototip funkcii obr()
- vvod(a);
- p(a);
- obr(a,b);
- fout<<"\n\n\nNew array:\n";
- for(i=0;i<2;i++) // v novom massive 2-e stroki
- {
- fout<<'\n'; //kazhda9 stroka znacheniy massiva vivoditc9
- //s novoi stroki faila
- for(j=0;j<(m+1)/2;j++)
- fout<<setw(12) // setw ( int n) - manipyl9tor vivoda s parametrom dl9
- //ystanovki pol9 vivoda vivodimogo znacheni9,
- // prototipi manipul9torov naxod9ts9 v faile iomanip.h
- <<b[i][j] ;
- }
- fout.close();
- }
- // opredelenie funkcii vvod()
- void vvod (float a[m][n])
- {
- int i,j;
- for(i=0;i<6;i++)
- {
- fin.getline(c[i], 82,'\n');
- if(i<4) fout<<c[i]<<endl;
- }
- for(i=0;i<m;i++)
- for(j=0;j<n;j++)
- fin >> *(*( a+i)+j);
- fin.close();
- }
- // opredelenii funkcii p()
- void p ( float a[m][n] )
- {
- int i,j;
- for(i=0;i<m;i++)
- {
- fout<<'\272';
- for(j=0;j<n;j++)
- switch(j)
- {
- case 0: case 1: case 3:case 4: fout.width(10); fout.setf(ios::left|ios::fixed);
- fout.precision(5);
- fout<<a[i][j]<<'\272';
- break;
- case 2: fout.width(10); fout.setf(ios::scientific);
- fout.precision(4);
- fout<<a[i][j]<<'\272';
- break;
- case 5: fout.width(10); fout.precision(4);
- fout<<a[i][j]<<"\272\n";
- break;
- }
- if (i==m-1) fout<<c[5]<<endl;
- else fout<<c[4]<<endl;
- }
- }
- // opredelenie funkcii obr()-funkcii formirovani9 massiva b
- // pervie 2-a parametra eto parametra-massiva dl9 peredachi v funkciu
- //massiva s isxodnimi dannimi i sfornirovannogo massiva
- void obr (float a[m][n],float b[2][(m+1)/2])
- {
- int i,j,k,kol,imin,imax;
- float pr,min,max,st,s;
- kol=0;pr=1;
- for(i=0;i<m;i+=2)
- {
- s=0;k=0;
- for(j=0;j<n;j++)
- if(a[i][j]>0)
- {
- s+=a[i][j];
- k++;
- kol++;
- }
- if(s!=0)
- pr*=s;
- b[0][i/2]=s;
- b[1][i/2]=k;
- }
- fout<<"\n Pr= "<<pr <<" ,Kol= "<<kol<<endl;
- imin=imax=0;
- min=max=b[0][0];
- for(j=0;j<(m+1)/2;j++)
- if (b[0][j]<min)
- {
- min=b[0][j];
- imin=2*j;
- }
- else if (b[0][j]>max)
- {
- max=b[0][j];
- imax=2*j;
- }
- fout << "\n imin= "<<imin <<" ,imax= "<<imax<<endl;
- if (imin!=imax)
- {
- for(j=0;j<n;j++)
- {
- st=a[imin][j];
- a[imin][j]=a[imax][j];
- a[imax][j]=st;
- }
- fout<<"\n Massiv posle perestanovki:\n";
- for(j=0;j<4;j++)
- fout<<c[j]<<endl;
- p(a);
- }
- else fout <<"Stroki sovpali"<<endl;
- }
Add Comment
Please, Sign In to add comment