REŠENJE PRIMERA "TRANSLACIJA TAČAKA"
Tekst:
/*
Date su koordinate N tačaka u ravni. Translirati tačke tako da im težište bude u koordinatnom početku.
Ulaz
U prvoj liniji standardnog ulaza nalazi se prirodan broj n (1≤n≤100). U sledećih n
linija nalaze se po dva realna broja, koji predstavljaju x i y koordinate tačaka.
Izlaz
Na standardnom izlazu prikazati koordinate tačaka posle translacije, za svaku tačku u jednoj liniji njenu
x pa y koordinatu, koordinate odvojiti jednom prazninom i prikazati ih na dve decimale.
Primer
Ulaz
3
0 0
1 0
2 3
Izlaz
-1.00 -1.00
0.00 -1.00
1.00 2.00
*/
Date su koordinate N tačaka u ravni. Translirati tačke tako da im težište bude u koordinatnom početku.
Ulaz
U prvoj liniji standardnog ulaza nalazi se prirodan broj n (1≤n≤100). U sledećih n
linija nalaze se po dva realna broja, koji predstavljaju x i y koordinate tačaka.
Izlaz
Na standardnom izlazu prikazati koordinate tačaka posle translacije, za svaku tačku u jednoj liniji njenu
x pa y koordinatu, koordinate odvojiti jednom prazninom i prikazati ih na dve decimale.
Primer
Ulaz
3
0 0
1 0
2 3
Izlaz
-1.00 -1.00
0.00 -1.00
1.00 2.00
*/
Rešenje u programskom jeziku C
#include <iostream>
#include<stdio.h>
using namespace std;
int main()
{
int n;
cin>>n;
double x[100],y[100];
for(int i=0;i<n;i++){
cin>>x[i]>>y[i];
}
double Tx,Ty;
double zbX=0,zbY=0;
for(int i=0;i<n;i++){
zbX=zbX+x[i];
zbY=zbY+y[i];
}
Tx=zbX/n;
Ty=zbY/n;
for(int i=0;i<n;i++){
printf("%.2f %.2f\n",(x[i]-Tx),(y[i]-Ty));
}
return 0;
}
#include<stdio.h>
using namespace std;
int main()
{
int n;
cin>>n;
double x[100],y[100];
for(int i=0;i<n;i++){
cin>>x[i]>>y[i];
}
double Tx,Ty;
double zbX=0,zbY=0;
for(int i=0;i<n;i++){
zbX=zbX+x[i];
zbY=zbY+y[i];
}
Tx=zbX/n;
Ty=zbY/n;
for(int i=0;i<n;i++){
printf("%.2f %.2f\n",(x[i]-Tx),(y[i]-Ty));
}
return 0;
}
Objašnjenje zadatka
Ovaj program je napisan u C++ i služi za translaciju tačaka u ravni tako da im težište postane u koordinatnom početku. Evo kako program funkcioniše:
- Unos Broja Tačaka:
- Prvo, program učitava broj tačaka n koje će se obraditi.
- Unos Koordinata:
- U sledećem koraku, program koristi nizove x i y za čuvanje x i y koordinata tačaka. Učitava koordinate svake tačke iz standardnog ulaza.
- Izračunavanje Težišta:
- Program koristi promenljive zbX i zbY za sumiranje x i y koordinata svih tačaka. Težište (centar) se računa kao prosečna vrednost koordinata svih tačaka, tj. Tx i Ty su prosečne x i y koordinate.
- Translacija Tačaka:
- Nakon što je izračunato težište, svaka tačka se translira tako što se od njenih originalnih koordinata oduzmu koordinate težišta (Tx i Ty). Rezultat se prikazuje sa dve decimale.
- Ispis Rezultata:
- Na kraju, program koristi printf za formatiranje i ispis koordinata svake tačke nakon translacije, sa dve decimale.