Na dvojrozmernej mape rátajte celkovú dĺžku lomenej čiary.
Uvažujte nad reprezentáciou poľa bodov:
- buď dve polia (jedno s x-ovými súradnicami, druhé s y-ovými)
- alebo jedno pole s x ovými súradnicami na nepárnych miestach a y na párnych miestach
- alebo dvojrozmerné pole
Uvažujte nad náročnosťou zistenia dĺžky poľa v C.
Vytvorte funkciu pre určenie vzdialenosti medzi dvoma bodmi.
Využite matematickú knižnicu
math.h
a funkciusqrt()
- pozor na fakt, že
sqrt()
berie ako argumentdouble
a vraciadouble
- uvedomte si vzťah medzi
double
afloat
a automatické konverzie medzi nimi
- pozor na fakt, že
Oboznámte sa s ďalšími spôsobmi deklarácie a inicializácie polí.
- demonštrujte spôsob
int pole[25]
- odporúčaný spôsob je deklarovať dĺžku poľa v
#define
- demonštrujte spôsob
Ďalšie zdroje
Zdrojáky
#include <stdio.h>
#include <math.h>
#define POCET_BODOV 3
double vzdialenost(float bod1x, float bod1y, float bod2x, float bod2y) {
/* tato vzdialenost je velmi velmi zla a nespravna */
return sqrt(pow(bod2x - bod1x, 2) + pow(bod2y - bod1y, 2));
}
int main(void)
{
double celkova_vzdialenost = 0;
int pocet_bodov = 3;
float x[] = { 0, 42, 3 };
float y[] = { 0, 35, 1 };
int i;
for(i = 1; i < pocet_bodov; i++) {
celkova_vzdialenost = celkova_vzdialenost
+ vzdialenost(x[i], y[i], x[i-1], y[i-1]);
}
printf("Celkova vzdialenost je: %f", celkova_vzdialenost);
return 0;
}