Programmieren – die neusten Beiträge

Java array rückwärts?

package uebung1;
import java.util.Random;
public class Felder {
public int[] fuellen(int o, int l) {
int zahlen[] = new int[l];
Random rnd = new Random();
for (int x = 0; x < zahlen.length; x++) {
zahlen[x] = rnd.nextInt(o + 1);
}
return zahlen;
}
public int[] fuellen(int u, int o, int l) {
int zahlen[] = new int[l];
Random rnd = new Random();
for (int x = 0; x < zahlen.length; x++) {
zahlen[x] = rnd.nextInt(o - u) + u;
}
return zahlen;
}
public void ausgeben(int zahlen[]) {
for (int x = 0; x < zahlen.length; x++) {
if (x == 0) {
System.out.print("[");
}
System.out.print(zahlen[x]);
if (x != zahlen.length - 1) {
System.out.print(", ");
}
if (x == zahlen.length - 1) {
System.out.println("]");
}
}
}
public void ausgebenrueckwaerts(int zahlen[]) {
for (int x = zahlen.length-1; x >= 0; x--) {
if (x == zahlen.length-1) {
System.out.print("[");
}
System.out.print(zahlen[x]);
if (x != 0) {
System.out.print(", ");
}
if (x == 0) {
System.out.println("]");
}
}
}
public void drei_fuenf(int zahlen[]) {
for (int x = 0; x < zahlen.length; x++) {
if (zahlen[x] % 3 == 0 && zahlen[x] % 5 == 0) {
System.out.println("Hello Zahl: " + zahlen[x]);
} else if (zahlen[x] % 3 == 0) {
System.out.println("Fizz Zahl: " + zahlen[x]);
} else if (zahlen[x] % 5 == 0) {
System.out.println("Buzz Zahl: " + zahlen[x]);
}
}
}
public boolean finde(int z, int zahlen[]) {
boolean found = false;
for (int x = 0; x < zahlen.length; x++) {
if (zahlen[x] == z) {
found = true;
break;
}
}
return found;
}
public int finde_pos(int z, int zahlen[]) {
int pos = -1;
for (int i = 0; z != zahlen[i]; i++) {
pos++;
}
pos++;
return pos;
}
public int finde_anz(int z, int zahlen[]) {
int anz = 0;
for (int i = 0; i < zahlen.length; i++) {
if (zahlen[i] == z) {
anz++;
}
}
return anz;
}
}
programmieren, Java

Per Batch Wert aus einem HTML Code auslesen?

Hallo liebe Community!

Ich habe im Forum schon nach Lösungen gesucht, aber leider nur Bruchstücke der Lösung gefunden.

Ich habe schon mehrere Schritte per Batch realisiert, aber der letzte will mir nicht gelingen:

Ich habe ein Programm, welches in verschiedenen Versionen gestartet werden kann, die Version bestimmt sich nach der jeweiligen Datenbank und -version.

Dafür gibt es eine HTML Übersichtsseite die alle Datenbanken mit allen Versionen abbildet. Diese wird automatisch als Textdatei runtergeladen und aktualisiert.

Nun muss ich aus dem HTML Code die Zeile mit der richtigen Datenbank auslesen und anschließend die Version, die weiter hinten steht.

Beispiel

<tr><td class='subtd'>DB1</td><td class='subtd'><nobr><font color=#fc7f2b><img title='Ich bin eine Datenbank' src='logo_ci.svg' width='14' height='14'> VERSIONSNUMMER</font></nobr> <font color=grey title='Letztes Login (Monat.Jahr) auf dieser Datenbank'>XXX</font> </td></tr>

<tr><td class='subtd'>DB2</td><td class='subtd'><nobr><font color=#fc7f2b><img title='Ich bin eine Datenbank' src='logo_ci.svg' width='14' height='14'> VERSIONSNUMMER</font></nobr> <font color=grey title='Letztes Login (Monat.Jahr) auf dieser Datenbank'>XXX</font> </td></tr>

HINWEIS die Versionsnummer ist immer gleich aufgebaut, aber unterschiedlich lang XX.X.XXX ODER X.XX.XXXX

Ich würde mich riesig über eine Erklärung zur Lösung freuen, weil ich was dazu lernen möchte.

Computer, programmieren, Batch, cmd, PowerShell, Regulärer Ausdruck

Can't import image?

Hallo,

ich erstelle gerade einen kleinen Algorithmus, bei dem man ein Bild einfügt, welches dann anhand der Stärke der Pixel in Graustufen eingeteilt wird und dann das Bild in einer anderen Art ausgibt.

Ich nutze zum Lesen der Bilder das PIL-Modul.

Ich bin eigentlich schon fast fertig, aber da kommt die Fehlermeldung, dass das Modul etwas nicht importieren kann.

Schaut es euch selbst an:

Microsoft Windows [Version 10.0.19043.1237]
(c) Microsoft Corporation. Alle Rechte vorbehalten.
C:\Users\User\AppData\Local\Programs\Algoritmika\vscode\data\extensions\algoritmika.algopython-20211015.95910.0\temp>C:/Users/User/AppData/Local/Programs/Algoritmika/algovenv/Scripts/activate.bat
(algovenv) C:\Users\User\AppData\Local\Programs\Algoritmika\vscode\data\extensions\algoritmika.algopython-20211015.95910.0\temp>cd c:/Users/User/OneDrive/Dokumente/Soundaufnahmen
(algovenv) c:\Users\User\OneDrive\Dokumente\Soundaufnahmen>C:/Users/User/AppData/Local/Programs/Algoritmika/algovenv/Scripts/python.exe c:/Users/User/OneDrive/Dokumente/Soundaufnahmen/test.py
Traceback (most recent call last):
 File "c:/Users/User/OneDrive/Dokumente/Soundaufnahmen/test.py", line 1, in <module>
  from PIL import image
ImportError: cannot import name 'image' from 'PIL' (C:\Users\User\AppData\Local\Programs\Algoritmika\algovenv\lib\site-packages\PIL\__init__.py)
(algovenv) c:\Users\User\OneDrive\Dokumente\Soundaufnahmen>

Falls ihr auch Fehler beim Code seht, könnt ihr es mir auch gern mitteilen, da ich noch ziemlich neu bin.

Computer, Technik, Programm, programmieren, Image, Informatik, Python, Technologie, Algorithmus

Python: Kleinsten Wert mit dem größten Wert innerhalb einer Liste tauschen?

Ich habe folgende Methode:

def tausche_wertung(bester_Termin):
       bester_Termin[min], bester_Termin[max] = bester_Termin[max], bester_Termin[min]
       return bester_Termin

Dabei ist "bester_Termin" ein Ergebnis aus einem folgendem Code, der also immer unterschiedlich ausfällt (gearbeitet wurde mit datetime):

print("Bitte geben Sie die Namen oder Bezeichnungen der Mitglieder ein, die zum Treffen kommen sollen (Anmerkung: mit Komma getrennt)")
mitglieder = [name.strip() for name in input().split(",")]

print("Bitte geben Sie die mögliche Termine ein (Anmerkung: mit Komma getrennt und im Format TT.MM.JJJJ)")
termine = [[datetime.strptime(datum.strip(),"%d.%m.%Y"),0] for datum in input().split(",")]


for mitglied in mitglieder:
   for termin in termine:
       termin[1] += int(input(f"Wie gut passt {termin[0]:%A, der %d.%m.%Y} für {mitglied}? (0 = passt gut, 1= passt mäßig, 2 = passt schlecht oder beispielsweise in Noten): "))
   print()

# Den Durchschnitt aller Termine auflisten.
print("Durchschnitt pro Termin:")
for termin in termine:
   print(f"{termin[0]:%A, der %d.%m.%Y}: {termin[1]/len(mitglieder):.2f}")

# Den best-passendsten Termin raussuchen. Anmerkung: Wenn es mehrmals den gleichen Durchschnitt gibt, wird der früheste Termin ausgeben.
bester_Termin = min(termine, key=lambda termin:termin[1])

Als beispiel-print kommt folgendesheraus:

[datetime.datetime(3, 1, 1, 0, 0), 3]

In diesem Fall, war der dritte Termin der beste und die 1 war die kleinste Eingabe der 1. Person für irgendeinen Termin, die zweite 1 war die kleinste Eingabe der 4. Person, wieder für irgendeinen Termin und die beiden 0en waren von Person 2. und 3. schon für den dritten Termin eingeben und automatisch der kleinste Wert.

Die Liste wird also von Groß zu Klein aufgelisten sehe ich das richtig? Denn die vorliegende Liste wäre hier quasi [Person1., Person 4., Person 2., Person 3.] und nicht von 1-4 aufwärts?

Ausgabe:

Mein Ziel ist es erstmal die Werte für den besten Termin nur mit einer anderen Eingabe zu tauschen, wenn nicht bereits die kleinste Wertung für den Termin vorliegt. Das ist hier ja bereits gegeben, wenn ich es richtig sehe, denn die beiden 0en bleiben gleich.

Anschließend will ich, dass das Programm ausgibt wie oft ein Wechsel der Bewertung möglich ist, d.h. wenn es bereits die kleinste bzw. beste Wertung ist (0 ist hier die beste) wird nicht getauscht, ebenso wenn es nicht möglich ist, da alle Wertungen gleich waren o.ä.

Und dann soll das Programm, wenn möglich, noch ausgeben bei welchem Mitglied getauscht wurde, in diesem Fall bei Person 1.

Erläuterung Anhand Beispiel:

Mittwoch, der 01.01.0003 Termin ist der passendste, und Person 1 hat da eine 2, welche man mit der 1 der Wertung des ersten Termins tauschen kann.

Wunschprint: Es ist ein Wechsel der Bewertung möglich, und das bei Person 1

oder noch besser aber kein Zwang, wenn es zu kompliziert ist:

Es ist der Wechsel der Wertung des 3. mit der des 1. Termins bei Person 1 möglich.
Bild zum Beitrag
Computer, programmieren, Informatik

Meistgelesene Beiträge zum Thema Programmieren