Programmiersprache – die neusten Beiträge

JAVA Arraylist Berechnen mit int und double und Abspeichern von Zwischenwerten?

Hallo Zusammen

Ich muss in einer Aufgabe int und Double Werte miteinander multiplizieren, siehe im Code bei TODO.

import java.util.ArrayList;

public class Einkauf {
	
	private ArrayList<Produkt> produkte = new ArrayList<Produkt>();

	public void addEinkauf(double preis, 
	                        int faktor, 
	                        int menge, 
	                        String name) {
		produkte.add(new Produkt(preis, faktor, menge, name));
	}
	
	public double getPunkte() {
		
// TODO: Punkte des Einkaufs berechnen und zurückgeben
    double punkte;  // sollte richtig sein 
    for (Produkt p : produkte){
        punkte = (preis*menge*faktor); // hier ist ein Fehler 
        produkte.save(punkte);
        return punkte;
    }
	}
}

Es sollen die Treuepunkte wie folgt berechnet werden: Pro CHF Umsatz gibt es einen Punkt. Rappenbeträge werden berücksichtigt: Kostet ein Produkt CHF 3.20, ergibt dies 3.2 Punkte. Zusätzlich kann bei jedem Produkt ein Faktor angegeben werden. Damit kann der Grossverteiler für bestimmte Produkte mehr Punkte ausschütten. Wenn beispielsweise ein Produkt für CHF 3.20 einen Faktor von 10 hat, gibt es für dieses Produkt 32 Punkte.

Für den oben gezeigten Einkauf beträgt das Punkte-Total 207.15.

Sprich, bei jedem Einkauf soll der zwischenwert gespeichert werden.

programmieren, Java, Array, Programmiersprache, Arraylist

JAVA Klassenmethoden- Methoden aufrufen und neue Werte abspeichern. Aber wie?

Hallo Zusammen

Ich brauche bei dem untersten Code Hilfe, weiss leider nicht wo mein Fehler ist..

Aufgabenstellung

Du implementierst eine Plattform, in der Artikel versteigert werden können. Zum Speichern eines Artikels verwendest du die folgende Klasse:

public class Artikel {
   public String name;
   public int preis = 0;
   public int gebote = 0;

   public Artikel(String name, int preis) {
      this.name = name;
      this.preis = preis;
   }
}

Das Attribut name enthält die Beschreibung des Artikels. Das Attribut preis enthält zu Beginn das Mindestgebot und später das bisher höchste Gebot. Die Attribute name und preis werden beide über den Konstruktor gesetzt. Im Attribut gebote wird die Anzahl gültiger Gebote gespeichert. Zu Beginn enthält das Attribut den Wert 0. Ein Gebot ist gültig, wenn eine der folgenden Bedingungen erfüllt ist:

  • Wenn noch kein Gebot abgegeben wurde und der gebotene Betrag mindestens gleich hoch ist wie das Mindestgebot.

Wenn das Gebot höher ist als das bisher höchste Gebot.

Ergänze die Methode so dass sie prüft, ob das übergebene Gebot gültig ist. Bei einem ungültigen Gebot soll nichts gemacht werden. Bei einem gültigen Gebot soll der Preis des Artikels angepasst und die Anzahl gültiger Gebote um eins erhöht werden.

Die Main-Klasse enthält Tests für drei Artikel. Schau dir die Tests an. Wenn du die Methode wie beschrieben erweitert hast, sollte das Programm die folgende Ausgabe machen:

Schrank: Gebote: 0, Preis: 100
Bett: Gebote: 2, Preis: 161
Stuhl: Gebote: 3, Preis: 30

Mein Code sieht folgendermassen aus:
Main Class: 
public class Main {
	
  public static void main(String[] args) {
    
		// In dieser Klasse keine Änderungen machen
		
		Artikel a = new Artikel("Schrank", 100);
		Artikel b = new Artikel("Bett",150);
		Artikel c = new Artikel("Stuhl", 20);
		
		a.biete(99);  // ungültig (Preis unter Minimum)
		b.biete(160);
		b.biete(159); // ungültig (Preis unter höchstem Gebot)
		b.biete(161); 
		c.biete(20);
		c.biete(23);
		c.biete(23);  // ungültig (Preis gleich hoch wie höchstes Gebot)
		c.biete(30);
		
		System.out.println(a.name+": Gebote: "+a.gebote+", Preis: "+a.preis);
		System.out.println(b.name+": Gebote: "+b.gebote+", Preis: "+b.preis);
		System.out.println(c.name+": Gebote: "+c.gebote+", Preis: "+c.preis);
	}
}
Klasse Artikel: 
public class Artikel {
	public String name; //Beschreibung des Artikels 
	public int preis = 0; // enthält erst das Mindestangebot und später das Höchstgebot 
	public int gebote = 0; 
	
	public Artikel(String name, int preis) {
		this.name = name;
		this.preis = preis;
	} 
	
	public void biete(int gebot) {
	  // TODO: Methode implementieren
	  while ((gebote==0 && gebot>preis) || (gebote>0 && gebot>preis)){
	  if ((gebote==0) && (gebot>=preis)) {
            artikel.preis==gebot;
            gebote++;
	      }
	  
	  if (gebote>0 && (preis>gebot){
	      preis==gebot; 
	      gebote++;
    }
    } 
    }
	}

Java, Programmiersprache

C++: Wie kann ich eine Abfrage für die Wiederholung meines Programms einbauen?

Ich habe einen C++-Programmcode geschrieben, welcher zwei Zahlen addiert oder subtrahiert.

Nach der Ausgabe habe ich eine Abfrage eingebaut, welche abfragt, ob man noch eine weitere Addition/Subtraktion durchführen oder das Programm beenden möchte.

Leider funktioniert das nicht, obwohl es dies eigentlich tun sollte.

Ich komme nicht mehr weiter. Vielleicht kann jemand von euch mir helfen.

Hier der C++-Code:

#include <iostream>

using namespace std;

int entscheidung() {
  cout << "Hallo" << endl;
  cout << "1 zum addieren zweier Zahlen" << endl;
  cout << "2 zum subtrahieren zweier Zahlen" << endl;
  cout << "" << endl;

  int a;
  cin >> a;
  cout << "" << endl;
  cout << "" << endl;

  return a;
}

int rechner(int a) {
  if (a == 1) {
    cout << "Eingabe zweier Zahlen" << endl;
    cout << "Diese werden addiert" << endl;
    cout << "" << endl;

    int zahl1, zahl2;
    cin >> zahl1;
    cin >> zahl2;

    int zwischenergebnis = zahl1 + zahl2;
    cout << "" << endl;
    cout << zahl1 << " + " << zahl2 << " = ";

    return zwischenergebnis;
  }
  else if (a == 2) {
    cout << "Eingabe zweier Zahlen" << endl;
    cout << "Diese werden addiert" << endl;
    cout << "" << endl;

    int zahl1, zahl2;
    cin >> zahl1;
    cin >> zahl2;

    int zwischenergebnis2 = zahl1 - zahl2;
    cout << "" << endl;
    cout << zahl1 << " - " << zahl2 << " = ";

    return zwischenergebnis2;
  }
  else {
    cout << "---FEHLER---" << endl;
  }
}

int main() {
  int zahl = entscheidung();
  int a = rechner(zahl);
  cout << a << endl;
  cout << "" << endl;
  cout << "Moechten Sie weiter machen?" << endl;
  cout << "Geben Sie die Zahl 1 ein zum --FORTSETZEN-- !" << endl;
  cout << "Gebens Sie die Zahl 0 ein zum --STOPPEN--  !" << endl;

  int b;
  cin >> b;

  if (b == 1) {
    cout << "" << endl;
    return entscheidung();
  }
  else {
    cout << "ENDE" << endl;
    return 0;
  }
}
Cplusplus, CPP, Programmiersprache

Python Pickle Vokabeltrainer?

Hallo,

ich will einen simplen Vokabeltrainer mit python programmieren. Um die Vokabeln die vom user eingeben werden zu speichern verwende ich pickle. Leider werden ohne Fehlermeldung keine Vokabeln in der von mir angelegten Datei gespeichert.

import random
import pickle



class Entry:
    def __init__(self, deutsch, englisch):
        self.deutsch = deutsch
        self.englisch = englisch


    def toString(self):
        return self.deutsch + " - " + self.englisch
        
eintraege = [Entry("hallo", "hello")]


def save():
    with open('vocabulary.pkl', 'wb') as voc_pkl:
        pickle.dump(eintraege, voc_pkl)


save()
 
with open('vocabulary.pkl', 'rb') as voc_pkl:
    eintraege = pickle.load(voc_pkl)



def eingabe():
    while True:
        deutsch = input("Deutsches Wort: ")
        if deutsch == "#fertig":
            return
        englisch = input("Englisches Wort: ")
        if englisch == "#fertig":
            return
        eintraege.append(Entry(deutsch, englisch))
        save()
        
def abfrage():
    while True:
        i = random.randint(0,len(eintraege)-1)
        englisch = input("Englische Übersetzung von " + eintraege[i].deutsch + ": ")
        if(englisch == "#fertig"):
            return
        if eintraege[i].englisch == englisch:
            print("korrekt!")
        else:
            print("leider falsch. Richtige Antwort: " + eintraege[i].englisch)
            
def printall():
    for eintrag in eintraege:
        print(eintrag.toString())
        
while True:
    befehl = input("Befehl: ")
    if befehl == "eingabe":
        eingabe()
    elif befehl == "abfrage":
        abfrage()
    elif befehl == "beenden":
        break
    elif befehl == "ausgabe":
        printall()
    else:
        print("keine bekannte Ausgabe. Tippe: eingabe, abfrage, ausgabe oder beenden.")
Programmiersprache, Python

Meistgelesene Beiträge zum Thema Programmiersprache