Programmieren – die besten Beiträge

Batch - Mehrere CSV Dateien in einer for /f durchsuchen?

Ja, ich bin noch immer am Batch. Es ist für mich quasi zu einer Art Herausforderung geworden und ich möchte ein einigermaßen laufendes Script hinkriegen.

Nun habe ich gleich mehrere Probleme:
Ich kann in einer .csv Datei wohl lediglich 4 Spalten nach rechts hin schreiben, danach geht nichts mehr. Ist es da irgendwie möglich, mehr als nur 4 Spalten zu schreiben?

Ich habe quasi als eingang in die csv Datei einmal "EAN", "Location", "Produkt Titel" sowie "Anzahl". Eigentlich hätte ich gerne noch ein paar mehr Informationen zu den Produkten in die csv zu schreiben, quasi noch eine Information, wie das Produkt gelagert ist, quasi "Lagerungsmethode", in die je nach Menüpfad/ Auswahl entweder "Ebay", "Shop", "Service", oder "Storage" rein soll. Ich weiß nicht ob man meiner Idee folgen kann, aber so wäre es eventuell einfacher, denn dann könnte ich alle Informationen in eine einzige .csv Datei schreiben. Bisland wähle ich im Menü vorerst immer aus, welche Lagerungsmethode ich haben will und je nachdem speichert er die Informationen dann in unterschiedliche .csv Dateien.

Daher die Frage, ob es im Bereich

	for /f "useback tokens=1-4 delims=[];" %%a in ("%appdata%\crs\storage1.csv") do (
    if "%%~a"=="%search.EAN%" (

möglich ist da in die suche mehrere csv Dateien einzubeziehen, zB.

	for /f "useback tokens=1-4 delims=[];" %%a in ("%appdata%\crs\storage1.csv";"%appdata%\crs\storage2.csv") do (
    if "%%~a"=="%search.EAN%" (

oder ob es einfacher wäre die Daten in eine .csv Datei zu schreiben und in der Übersicht alles nach Lagerungsmethoden zu filtern?

Ich hoffe ihr könnt mir folgen :D

Computer, programmieren, Batch, cmd, batch-trick

Korrektheitsbeweis Algorithmus?

Hallo liebe Community,

ich habe eine Aufgabe bekommen in welcher ich Pseudocode entwickeln soll. Meinem Algorithmus wird ein Array an Zahlen gegeben A[1, n] mit n Einträgen. Ich soll in diesem Array die Senken zählen. Eine Senke ist dabei eine Position i [2, n - 1] für die folgendes gilt: A[i - 1] > A[i] < A[i + 1].

Meiner Auffasung nach bedeutet das nun, dass z.B. das Array [1, 3, 2, 4, 3, 5] zwei Senken hat. Nämlich einmal der dritte Eintrag und der fünfte Eintrag.

Mein Pseudocode sieht folgendermaßen aus:

Input: A[1, n] mit n Einträgen
Output: Anzahl der Senken

counter := 0
for j := 2 to n - 1 do
  val := A[j]
  if val < A[j - 1] and val > A[j + 1] do
    counter := counter + 1

Mein Java Code dazu sieht folgendermaßen aus:

public static int countSenken(int[] arr) {
  int counter = 0;
  for (int i = 1; i < arr.length - 1; i++) {
    int val = arr[i];
    if (val < arr[i - 1] && val < arr[i + 1]) {
      counter++;
    }
  }
}

Nun soll ich die Korrektheit meines Algorithmus' beweisen. Wir haben das schonmal an dem Beispiel des Insertionsort Algorithmus' gemacht. Die herangehensweise ist ja eigentlich, dass man eine Schleifeninvariante aufstellt und diese dann mittels Induktion beweist. Mein Problem ist jetzt aber, dass ich diese Schleifeninvariante nicht aufstellen kann. Beim Insertionsort, da beweist man ja die Sortiertheit und da verändert sich ja das Array. Aber bei diesem Algorithmus jetzt da verändert sich das Array ja gar nicht.

Ich weiß halt, dass n >= 3 sein muss damit der Algorithmus überhaupt funktioniert. Kann mir vielleicht jemand einen Ansatz geben wie ich die Korrektheit beweise?

Ich wäre euch allen sehr dankbar :)

Computer, Schule, Mathematik, programmieren, Informatik, Algorithmus, Algorithmen und Datenstrukturen

Meistgelesene Beiträge zum Thema Programmieren