diff options
author | Erich Eckner <git@eckner.net> | 2019-11-06 15:43:23 +0100 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2019-11-06 15:43:23 +0100 |
commit | e754adc4ebc4ada36a615cb363a7cb16a50c8aa5 (patch) | |
tree | d1eb6c9fd80641907731e1f014978bc5af8ce028 | |
download | integriere-e754adc4ebc4ada36a615cb363a7cb16a50c8aa5.tar.xz |
Initialer Commit
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | integriere.pas | 49 |
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. |