From 324e498c63145c6612ba8142ddd4e59670108582 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20Luka=20=C5=A0ijanec?= Date: Wed, 1 Jun 2022 03:24:04 +0200 Subject: proj3 --- "fiz/naloga/numeri\304\215no.c" | 63 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) (limited to 'fiz/naloga/numerično.c') diff --git "a/fiz/naloga/numeri\304\215no.c" "b/fiz/naloga/numeri\304\215no.c" index c1ca08c..9ef948b 100644 --- "a/fiz/naloga/numeri\304\215no.c" +++ "b/fiz/naloga/numeri\304\215no.c" @@ -35,7 +35,11 @@ "način izdelave animacije: podan naj bo samo en argument - animacija - TOLE NE DELA\n" \ " - delajo se datoteke animacija0000.ppm, animacija0001.ppm, ...\n" \ " - parametri se sinusoidno spreminjajo po vdelanih konstantah.\n" \ - " - slike lahko recimo s ffmpeg(1) nato pretvorite v videoposnetek." + " - slike lahko recimo s ffmpeg(1) nato pretvorite v videoposnetek\n" \ + "DODATEK :: izračun za eno točko:\n" \ + " - 1. argument je 'enkrat', 2. R, 3. x, 4. y, 5. kotov \n" \ + " - x in y koordinati sta v metrih. program izpiše eno vrstico\n" \ + " - v vrstici so i, j in k komponente polja in absolutna vrednost.\n" enum oblika { PGM, PPM, @@ -208,6 +212,8 @@ void handler (int s __attribute__((unused))) { int main (int argc, char ** argv) { if (argv[1] && !strcmp(argv[1], "animacija")) goto animacija; + if (argv[1] && !strcmp(argv[1], "enkrat")) + goto enkrat; if (argc < 8) error(1, 0, UVOD, argv[0] ? argv[0] : "./numerično"); long double R = strtold(argv[1], NULL); @@ -251,6 +257,61 @@ int main (int argc, char ** argv) { if (oblika != ANIMACIJA) return nariši(R, I, n, razmak, koliko, kotov, oblika, med_tuljavama, zamik_izven_osi, R2, I2, stdout); +enkrat: + if (argc != 6) { + fprintf(stderr, "preveri vnos!\n"); + return 59; + } + long double radij = strtold(argv[2], NULL); + long double x = strtold(argv[3], NULL); + long double y = strtold(argv[4], NULL); + unsigned število_kotov = strtol(argv[5], NULL, 10); + struct vektor Rpolovic = { + .i = radij/2, + .j = 0, + .k = 0 + }; + struct vektor merilno_mesto = { // krajevni vektor + .i = x, + .j = y, + .k = 0 + }; + struct vektor B = + seštej( + množi( + množi( + tuljava( + radij, + število_kotov, + seštej( + merilno_mesto, + Rpolovic + ) + ), + 1 + ), + 1 + ), + množi( + množi( + tuljava( + radij, + število_kotov, + seštej( + merilno_mesto, + množi( + Rpolovic, + -1 + ) + ) + ), + 1 + ), + 1 + ) + ); + printf("%Lf\t%Lf\t%Lf\t%Lf", B.i, B.j, B.k, absolutno(B)); + return 0; animacija: signal(SIGTERM, handler); signal(SIGINT, handler); -- cgit v1.2.3