Results 1 to 1 of 1
Thread: ++
Hybrid View
-
1st December 2011 23:44 #1
++
, . ++. Visual C++ 6.0, , . . , izbor1=1 - . , (, double/float) . .
Code:#include<fstream> #include<iostream> #include<iomanip> #include<cassert> using namespace std; char s[64]; void input(double* m, char* NAME, int size); void output(double* m, char* NAME, int size); void shakesort(double* m, char* NAME, int size); void count(double* m, int size); void search(double* m, int size); void menu(); void write(double* m, char* NAME, int size); void read(double* m, char* NAME, int size); fstream fp; void main() { menu(); } void menu() { int izbor, izbor1, size; char* NAME; cout<<endl<<"Read or write a/to file [0/1]: "; cin>>izbor1; if(izbor1==0) { cout<<endl<<"Input Name: "; cin.ignore(); cin.getline(s,64); NAME=new char[strlen(s)+1]; assert(NAME!=NULL); strcpy(NAME, s); int count=0; double buf; fp.open(NAME,ios::in); while(!fp.eof()){ fp>>buf; count++; } fp.close(); size=count-1; } else { cout<<endl<<"Input Name: "; cin.ignore(); cin.getline(s,64); NAME=new char[strlen(s)+1]; assert(NAME!=NULL); strcpy(NAME, s); cout<<endl<<"Size: "; cin>>size; } cout<<size; double* m=new double[size]; do{ do{ cout<<endl<<"Menu"<<endl; cout<<"1.Input: "<<endl; cout<<"2.Output:"<<endl; cout<<"3.Shakesort: "<<endl; cout<<"4.Count: "<<endl; cout<<"5.Search for: "<<endl; cout<<"6.End of program!"<<endl; cin>>izbor; }while(izbor<1 || izbor>6); switch(izbor) { case 1:input(m, NAME, size); cout<<"\a"; break; case 2:output(m, NAME, size); cout<<"\a"; break; case 3:shakesort(m, NAME, size); cout<<"\a"; break; case 4:count(m, size); cout<<"\a"; break; case 5:search(m, size); cout<<"\a"; break; default: cout<<endl<<"End!"<<"\a"<<endl; } }while(izbor!=6); } void write(double* m, char* NAME, int size) { fp.open(NAME,ios::out); fp.flush(); for(int i=0;i<size;i++) fp<<m[i]<<" "; fp.close(); } void read(double* m, char* NAME, int size) { fp.open(NAME,ios::in); fp.flush(); for(int i=0;i<size;i++); fp>>m[i]; fp.close(); } void output(double* m, char* NAME, int size) { cout<<endl<<"Reading file....."; read(m, NAME, size); for(int i=0;i<size;i++) cout<<" "<<m[i]; } void input(double* m, char* NAME, int size) { cout<<endl<<"Creating file..."; cout<<endl<<"Input numbers: "; for(int i=0;i<size;i++) { cout<<endl<<"m["<<i<<"]= "; cin>>m[i]; } write(m, NAME, size); } void shakesort(double* m, char* NAME, int size) { int i; double k; cout<<endl<<"Unsorted array: "; for( i=0;i<size;i++) cout<<" "<<m[i]; int left=0, right=size-1; while(right-left>0) { k=0; for(i=left;i<right;i++) if(m[i]>m[i+1]) { swap(m[i],m[i+1]); k=i; } right=k; k=size-1; for(i=right;i>left;i--) if(m[i-1]>m[i]) { swap(m[i-1],m[i]); k=i; } left=k; } cout<<endl<<"Sorted array: "; for(i=0;i<size;i++) cout<<" "<<m[i]; cout<<endl<<"Writing to file..."; write(m, NAME, size); } void count(double* m, int size) { int p=0; int* mc=new int[size]; double cp; for(int k=0;k<size;k++) mc[k]=1; for(int i=0;i<size;i++) { cp=m[i]; for(int j=i+1;j<size;j++) if(cp==m[j]) mc[i]++; } cout<<endl<<"Sorted array: "; for(i=0;i<size;i++) cout<<setw(3)<<m[i]; cout<<endl<<"Number count: "; for(i=0;i<size;i++) { cout<<setw(3)<<mc[i]; if(i==0 && mc[i]==2) p++; else if(mc[i]==2 && mc[i-1]==1) p++; else if(mc[i]==2 && mc[i-1]==3) p++; } cout<<endl<<"Number of twins: "<<p; } void search(double* m, int size) { double s, pos, po; double* var=new double[size]; for(int i=0;i<size;i++) var[i]=0; cout<<endl<<"Search for closest number: "; cin>>s; for(i=0;i<size;i++) { if(m[i]!=s) if(m[i]>s) var[i]=m[i]-s; else if(m[i]<s) var[i]=s-m[i]; else { cout<<endl<<"Closest number is: "<<s; exit(1); } } pos=100000; for(i=0;i<size;i++) if(pos>var[i]) { pos=var[i]; po=i;} int j=po; cout<<endl<<"Closest number is: "<<m[j]; }E8500 : X3 400e : W3530 : X3430 : i5-760 : i5-2500K : R3 1200 AF : G4400 : i3-6100 : R3 3100 : CMK16GX4M2E3200C16 : TUF B450M-PRO S : WD SN720 : SAPPHIRE HD7950 Vapor-X Modified : AUDIDHH @ HWBOT :




Reply With Quote
Lenovo ThinkPad 15 IdeaPad 15
5th May 2023, 22:16 in