summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2019-11-06 15:43:23 +0100
committerErich Eckner <git@eckner.net>2019-11-06 15:43:23 +0100
commite754adc4ebc4ada36a615cb363a7cb16a50c8aa5 (patch)
treed1eb6c9fd80641907731e1f014978bc5af8ce028
downloadintegriere-e754adc4ebc4ada36a615cb363a7cb16a50c8aa5.tar.xz
Initialer Commit
-rw-r--r--.gitignore2
-rw-r--r--integriere.pas49
2 files changed, 51 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..78f0b96
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+integriere
+*.o
diff --git a/integriere.pas b/integriere.pas
new file mode 100644
index 0000000..1e5be05
--- /dev/null
+++ b/integriere.pas
@@ -0,0 +1,49 @@
+program integriere;
+
+uses
+ sysUtils, lowlevelunit;
+
+var
+ Kanal,momentan: integer;
+ Grenzen: array of extended;
+ Datei: textFile;
+ s: ansistring;
+ x,y: extended;
+
+begin
+
+ if (paramcount<>2) or not fileExists(paramstr(1)) then begin
+ writeln('Usage: '+paramstr(0)+' Harmonischengrenzen.csv Kanal');
+ halt(1);
+ end;
+
+ Kanal:=strToInt(paramstr(2));
+
+ setLength(Grenzen,0);
+ assignFile(Datei, paramstr(1));
+ reset(Datei);
+ while not eof(Datei) do begin
+ readln(Datei, s);
+ if erstesArgument(s)<>intToStr(Kanal) then
+ continue;
+ setLength(Grenzen, length(Grenzen)+1);
+ Grenzen[length(Grenzen)-1]:=strToFloat(s);
+ end;
+ closeFile(Datei);
+
+ y:=0;
+ momentan:=0;
+ while not eof do begin
+ readln(s);
+ x:=strToFloat(erstesArgument(s));
+ if (momentan<length(Grenzen)) and (x>Grenzen[momentan]) then begin
+ writeln(intToStr(momentan),' ',myFloatToStr(y));
+ inc(momentan);
+ y:=0;
+ end;
+ erstesArgument(s);
+ y:=y+strToFloat(s);
+ end;
+ writeln(intToStr(momentan),' ',myFloatToStr(y));
+
+end.