Дадени са n на брой точки в равнината, зададени чрез техните X и y координати и записани във файл



Дата13.10.2018
Размер15.9 Kb.
#85122
// Дадени са 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 координати на всяка точка
Каталог: filebank
filebank -> Тема на дипломната работа
filebank -> Доклад на национален дарителски фонд „13 века българия
filebank -> 1 3 в е к а б ъ л г а р и я“ Утвърдил
filebank -> Доклад на национален дарителски фонд „13 века българия
filebank -> Доклад на национален дарителски фонд „13 века българия
filebank -> Зимна сесия – уч. 2015– 2016 г. Начало на изпитите 00 ч. Теоретична механика ІІ ч. Динамика
filebank -> Упражнение №1
filebank -> О т ч е т на проф. Д-р инж. Борислав маринов – декан на геодезическия факултет при уасг пред общото събрание на факултета
filebank -> Техническа механика
filebank -> Дати за поправителната сесия септември 2013 г катедра “Техническа механика”


Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница