// Дадени са N на брой точки в равнината, зададени чрез техните x и y координати и записани във файл.
// Да се зададе вектор на преместване (dx, dy) на точките.
// Да се изчислят новите местоположения на точките и да се запишат отново в друг файл.
#include
// библиотеката fstream.h включва в себе си и класовете на iostream.h
const Nmax=100;
// Функцията чете от файл данни за точките.
// Функцията връща на извикващата част от програмата броя точки M (чрез псевдоним)
// и координатите на точките
void Open_Points(char fname[30], int &M, float X[Nmax], float Y[Nmax]) {
ifstream fin(fname,ios::in); // отваряне на файла за четене
fin>>M; // четене на брой точки
for (int i=0; i
fin>>X[i]>>Y[i]; // четене на X и Y координати за всяка точка
fin.close(); // затваряне на файла
}
// Функцията извежда данните за точките на екрана
void Write_Points(char text[30], int M, float X[Nmax], float Y[Nmax]) {
cout<
for (int i=0; i
cout<
}
// Функцията изчислява новото местоположение на всички точки, преместени по вектор (dx,dy)
void Move_Points(int M, float dx, float dy, float X[Nmax], float Y[Nmax]) {
for (int i=0; i
X[i]+=dx; Y[i]+=dy;
}
}
// Функцията записва данните за точките във файл
void Save_Points(char fname[30], int M, float X[Nmax], float Y[Nmax]) {
ofstream fout(fname,ios::out); // отваряне на файла
fout<
for (int i=0; i
fout<
fout.close(); // затваряне на файла
}
float X[Nmax], Y[Nmax];
float dx, dy;
int N;
char filename[30];
void main () {
cout<<"filename="; cin>>filename; // d:\points.txt - име на файла, където са записани данните
Open_Points(filename, N, X, Y); // чете данните за точките от файла
Write_Points("Original points",N, X, Y); // извежда данните за точките на екрана
cout<<"dx="; cin>>dx; // въвежда вектора на преместване
cout<<"dy="; cin>>dy;
Move_Points(N, dx, dy, X, Y); // преизчислява новото местоположение на точките
Write_Points("Moved points",N, X, Y); // извежда новите данни на точките
cout<<"new filename="; cin>>filename; // d:\points-new.txt
Save_Points(filename, N, X, Y); // записва точките в нов файл
}
===========================================================================================
Файл с входни данни:
d:\points.txt
---------------------------------
5
1 2
3 2
3 6
0 7
1 6
---------------------------------
Съдържание на файла:
ред 1: брой точки
ред 2 и т.н.: x и y координати на всяка точка
Сподели с приятели: |