Programovací jazyk C: cvičenie 2

  • 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 funkciu sqrt()

    • pozor na fakt, že sqrt() berie ako argument double a vracia double
    • uvedomte si vzťah medzi double a float a automatické konverzie medzi nimi
  • 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

Ď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;
}

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *