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



Дата19.02.2017
Размер12.88 Kb.
#15308
// Дадени са N на брой точки в равнината, зададени чрез техните x и y координати, и записани във файл.

// Всеки 3 последователни точки образуват триъгълник.

// Да се изчислят лицата на триъгълниците чрез векторно произведение.
#include

#include

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<

}
// Функцията изчислява лицето на триъгълника по зададени координати на точките

float Area_vector(float x1, float y1, float x2, float y2, float x3, float y3) {

float s=((x1-x2)*(y3-y2)-(x3-x1)*(y1-y2))/2;

return fabs(s); // fabs() - функцията връща абсолютната стойност на реален параметър

}
float X[Nmax], Y[Nmax], S[Nmax-2];

int N;


char filename[30];
void main () {

cout<<"filename="; cin>>filename; // d:\points.txt - име на файла, където са записани данните

Open_Points(filename, N, X, Y); // чете данните за точките от файла

Write_Points("Points:",N, X, Y); // извежда данните за точките на екрана

cout<<"Results:\n";

for (int i=0; i

S[i]=Area_vector(X[i],Y[i],X[i+1],Y[i+1],X[i+2],Y[i+2]); // изчислява лицето на i-тия триъгълник

cout<<"S["<

}

}

Файл с входни данни:



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
отнасят до администрацията

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