Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Suche » Suchergebnis » Hallo Gast [Anmelden|Registrieren]
Zeige Beiträge 1 bis 9 von 9 Treffern
Autor Beitrag
Thema: Objektorientierung vs. (z.B.) Prozeduale Programmierung
Robert93

Antworten: 1
Hits: 6.511
Objektorientierung vs. (z.B.) Prozeduale Programmierung 20.08.2021 00:17 Forum: Praktische Informatik


Meine Frage:
Hallo Leute,

möglicherweise ist die Frage die ich hier gleich stelle kompletter nonsense aber ich würde das schon gerne grundsätzlich verstehen:

Ich habe in der Vergangenheit C gelernt und nun habe ich mit JAVA angefangen.
Ebenso meine ich auch verstanden zu haben welche Philosophie hinter objektorientierter Programmierung steckt.

Meine Frage ist nun:
Welchen "Vorteil" erkauft man sich nun bei der Benutzung von OOP?
Steckt mehr dahinter als einfach nur "platzsparender" zu programmieren?

Gibt es Programme die nur mit OOP programmierbar sind und dafür absolut unmöglich wenn es prozedual geschrieben wird?
Oder vielleicht doch, aber mit immensen aufwand? (Also mehr Code-Zeilen?)



Meine Ideen:
Bitte diese Frage aus Sicht eines kompletten Anfängers betrachten.
Meine Zeiten mit C liegen lange zurück und auch da nur absolute basics.
Thema: Pong Geschwindigkeit des Balls
Robert93

Antworten: 3
Hits: 3.720
07.08.2018 15:56 Forum: Informatik in der Schule


@Marco: Okay danke, sowas ähnliches habe ich mir schon irgendwie gedacht. Wie löse ich denn dann dieses Problem? Wie würdest du das machen? Danke für deine Hilfe smile
Thema: Pong Geschwindigkeit des Balls
Robert93

Antworten: 3
Hits: 3.720
Pong Geschwindigkeit des Balls 07.08.2018 10:58 Forum: Informatik in der Schule


Meine Frage:
Hallo Leute,
Eigentlich nur ne kurze Frage:

ich habe hier ein Pong Spiel in Java programmiert, dass weitestgehend auch funktioniert. Allerdings wollte ich die Geschwindigkeit des Balls ändern. Diese wird über die BallMovement Klasse eingestellt. Und zwar unten bei der 4:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
package pack1;

import java.util.Timer;
import java.util.TimerTask;

public class BallMovement {
Timer move;
	public BallMovement() {
		move = new Timer();
		move.scheduleAtFixedRate(new TimerTask() {
			
			@Override
			public void run() {
				
				Var.ballx += Var.balldirx;
				Var.bally += Var.balldiry;
				
			}
		}, 0, 4);
	}

}


Ich habe die 4 mit einer Variable v (die in der Variablen Klasse Var steht) ausgetauscht. Also:

code:
1:
2:
3:
4:
5:
6:
7:
8:
	public void run() {
				
				Var.ballx += Var.balldirx;
				Var.bally += Var.balldiry;
				
			}
		}, 0, Var.v);
	}



Wenn ich den int Wert der Variable v in der Variablen Klasse manuell ändere, also: v=4, v=3, v=2 usw. dann ändert sich auch die Geschwindigkeit des Balles wie gewühscht. Nun wollte ich das mit der Kollision verbinden. Sobald eine Kollision mit einem Schläger stattfindet soll der Ball schneller werden (also Var.v--).

Hier die Kollisionsklasse:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
package pack1;

import java.util.Timer;
import java.util.TimerTask;

public class BallKollision {
Timer Kollision;
	public BallKollision() {
		Kollision = new Timer();
		Kollision.scheduleAtFixedRate(new TimerTask() {

			@Override
			public void run() {

				if(Var.bally+50 >= Var.screenheight) {
					Var.balldiry =-1;
				}
				
				if(Var.bally <= 0) {
					Var.balldiry = 1;
				}
				
				if(Var.ballx + 20 >= Var.screenwidth) {
					
					Var.ballx = Var.screenwidth/2 -10;
					Var.bally = Var.screenheight/2 -10;
					
					Var.balldirx = -1;
					Var.playerPoints +=1;
					
				}
				
				if(Var.ballx <= 0 ) {
					Var.ballx = Var.screenwidth/2 -10;
					Var.bally = Var.screenheight/2 -10;
					
					Var.balldirx = 1;
					Var.gegnerPoints +=1;
					
				}
				
				if(Var.ballx < Var.x + 25 && Var.ballx > Var.x && Var.bally-20 <= Var.y + 150 && Var.bally > Var.y) {
                                        Var.v--;
					Var.balldirx = 1;
				}
				
				if(Var.ballx < Var.gegnerx && Var.ballx > Var.gegnerx -20 && Var.bally-20 <= Var.gegnery + 150 && Var.bally > Var.gegnery) {
                                        Var.v--;
					Var.balldirx = -1;
				}
				
				
			}
			
		}, 0, 4);
	}

}


Die Kollsion funktioniert auch ohne Probleme. Und auch wenn ich v in der Konsole ausgebe, wird diese bei jeder Kollision um 1 verringert. Aber die Geschwindigkeit des Balls ändert sich nicht. Und das verstehe ich nicht. Kann mir jemand helfen?

Meine Ideen:
---
Thema: Programmieren mit 30 lernen / Informatik mit 30 studieren
Robert93

Antworten: 3
Hits: 5.342
RE: Programmieren mit 30 lernen / Informatik mit 30 studieren 07.08.2018 10:19 Forum: Off-Topic


Grundsätzlich ist es nie zu spät mit dem Programmieren anzufangen!
Jedoch möchte ich hier ein paar Punkte anmerken, über die du dir aufjedenfall noch Gedanken machen solltest:

1.) Du bist in einem Alter bei dem du dir offensichtlich Gedanken machst, wie du deine Familie ernähren kannst. Du hast bereits ein Studium abgeschlossen und bereits eine neue AUsbildung angefangen. Aus deiner Frage heraus lese ich, dass du dich für Informatik interessierst, weil du dich in der Verangenheit mal mit Phyton beschäftigt hast und dir Spaß gemacht hat. Leider muss ich sagen, dass viele Menschen Programmieren und Informatik gleichsetzen. Zu einem Informatikstudium gehört jedoch viel mehr dazu als "nur" spaß am Programmieren zu haben. Hast du Spaß am analytischen Denken? Wie viel Spaß hast du an Mathe? Anhand deines beschriebenen Karrierewegs hast du dich schon seit längerer Zeit kaum mit Mathe beschäftigt. Im Studium kommt dass dann sehr überwältigend. Viele brechen das Studium dann deswegen ab. Könntest du dir sowas leisten, falls sowas auch bei dir eintreten könnte?

2.) Du schriebst "Womit soll man anfangen, wenn das Ziel ist, mit dem Programmieren so schnell wie möglich verdienen zu können? Web mit HTML/CSS/Javascript?"
Ich denke da gibt es sicherlich Experten hier im Forum die dazu noch einiges sagen können. Karrieretechnisch kenne ich mich da nicht so aus. Aber ich habe das Gefühl, dass du einfach nur programmieren und damit geld verdienen möchtest. Da würde ich dir empfehlen eine Ausbildung als Programmierer anzufangen. Da programmierst du tatsächlich von Anfang an und musst nicht die ganze Theorie die ein Studium mit sich bringt mitnehmen. Diese Emphlung beruht auf deine Aussage, dass du schnell mit Programmieren Geld verdienen möchtest. Da ist ein Informatik Studium meines erachtens too much.

3.) Duales oder Fernstudium
Mach eine Pro/Contra Liste.
Bei Dual verdienst du aufjedenfall von Anfang an Geld. Aber dieser Weg schluckt auch sehr viel Zeit. Wenn du nicht in der Uni bist, bist du auf der Arbeit. Und wenn du nicht auf der Arbeit bist, dann in der Uni. Im dualen Studium bist du nämlich verpflichtet die Vorlesungen zu besuchen. Ergo: Du siehst deine Familie meist nur Abends.
Bei einem Fernstudium verdienst du in der Regel nichts. Es kann sogar sehr teurer werden, da du die ganzen Materialien etc dir selbst besorgen musst. Vorteil wäre natürlich, dass du viel Zuhause bei deiner Familie sein kannst.


Alles in allem:
Für mich hört sich das nach einer wichtigen Entscheidung in deinem Leben an.
Also solltest du dir da wirklich eine Menge Gedanken reinstellen, und nicht einfach 3 Fragen in einem Forum stellen und hoffen dass dir jemand diese Arbeit abnimmt.
Am besten du sprichst mit deiner Familie. Wenn sie dir für deine Wünsche und Träume grünes Licht geben, dann steht dir nichts im Wege Augenzwinkern
Thema: #define & integer
Robert93

Antworten: 3
Hits: 4.426
07.10.2016 16:54 Forum: Informatik in der Schule


Okay Danke.
Ist #define dann nur eine Art Sicherheit um den konstanten Wert nicht zu überschreiben?
Weil theoretisch wenn man gut aufpasst könnte man das ja auch mit den int variablen vermeiden oder?
Das mit dem Präprozessor ist mit to high..
Thema: #define & integer
Robert93

Antworten: 3
Hits: 4.426
#define & integer 07.10.2016 16:14 Forum: Informatik in der Schule


Meine Frage:

Hallo Leute,

ich bin ein totaler Frischling in Sachen programmierung und habe das Buch "C als erste Programmiersprache" angefangen zu bearbeiten.
Zu Beginn habe ich die Datentypen Int, float etc kennengelernt.
Jetzt wurde in dem Buch die Konstante #define vorgestellt.
Nur den Sinn verstehe ich dabei nicht wirklich.
Es war ein Beispielcode dabei:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
/* Datei: zins.c */
#include <stdio.h>

//#define LAUFZEIT     10
//#define GRUNDKAPITAL 1000.00
//#define ZINS         5.0

int LAUFZEIT = 10;
float GRUNDKAPITAL = 1000.00;
float ZINS = 5.0;

int main (void)
{
   int jahr;            /* Vereinbarung von jahr als int-Variable */
   double kapital = GRUNDKAPITAL;
   
   printf ("Zinstabelle fuer Grundkapital %7.2f EUR\n",                     
            GRUNDKAPITAL);
   printf ("Kapitalstand zum Jahresende:\n");
   for (jahr = 1; jahr <= LAUFZEIT; jahr = jahr + 1) 
   {
      printf ("\nJahr: -\t", jahr);
      kapital = kapital * (1 + ZINS/100.);
      printf ("Kapital: %7.2f EUR", kapital);
   }
   printf ("\n\nAus %7.2f EUR Grundkapital\n", GRUNDKAPITAL);
   printf ("wurden in %d Jahren %7.2f EUR\n", LAUFZEIT, kapital);
   return 0;
}



Ich habe spaßeshalber mal die #define's auskommentiert und mit den Datentypen int und float ersetzt.
Siehe da, das Programm funktioniert immer noch einwandfrei.

Was also bringt #define denn nun?

Meine Ideen:
Vielen Dank schonmal im vorraus.
Thema: String aus anderer Klasse
Robert93

Antworten: 4
Hits: 4.524
28.08.2014 21:23 Forum: Praktische Informatik


Hallo euler,

top danke! Das war mein Problem. Noch etwas rumgeschraubt an der ganzen Sache und jetzt funktionierts einwandfrei.

Tolle Sache, das hier. Danke euch Augenzwinkern
Thema: String aus anderer Klasse
Robert93

Antworten: 4
Hits: 4.524
27.08.2014 20:14 Forum: Praktische Informatik


Danke, hat funktioniert. Jedenfalls womit ich ein Problem hatte.
Das Programm läuft allerdings immer noch nicht wie gewünscht^^
Ich werde mal noch etwas damit rumspielen.
Danke dennoch für die Hilfe Augenzwinkern Hat mich etwas weiter gebracht smile
Thema: String aus anderer Klasse
Robert93

Antworten: 4
Hits: 4.524
String aus anderer Klasse 25.08.2014 21:44 Forum: Praktische Informatik


Meine Frage:
Hey Leute,
ich bin neu in der Programmierwelt, habe mir ein Java-Buch gekauft und arbeite mich Stück für Stück in Java ein.
Bin momentan in der OO-Programmierung angelangt, und hatte mir überlegt ein Mini-Quiz zu programmieren.
Dabei wollte ich unbedingt boolean mit reinschreiben, da ich damit etwas rumspielen wollte, da ich vorher noch nichts damit gemacht habe.
Aber irgendwie lässt sich ein String Wert aus dem Objekt e1 nicht herauslesen! Hoffe ihr könntet eventuell kurz drüberschauen und mir die Fehler erklären die ich gemacht habe? smile
Danke euch.

Meine Ideen:
Hier die Codes:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
public class ProgrammStarten  {
    public static void main(String[] args)  {

    Quiz starten = new Quiz();
    starten.starteQuiz();
  }//end main
}//end class


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
import java.util.*;

public class Eingabe  {
  void antworteingabe()  {
  Scanner sc = new Scanner(System.in);

  System.out.println("etwas Eingeben");

  String eingabe = sc.next();
  }//end antworteingabe
}//end class


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
public class Antwort  {

boolean antwort1 = false;

void quizantwort()  {
  if(antwort1 == true)  {
  System.out.println("Das war die richtige Antwort");
  }//end if
  else{
  System.out.println("Diese Antwort ist nicht richtig");
  }//end else
}//end quizantwort
}//end class


Und hier das Hauptprogramm:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
public class Quiz  {

    public void starteQuiz()  {

    Eingabe e1 = new Eingabe();
    Antwort a1 = new Antwort();

    System.out.println("Willkommen zum Quiz");
    System.out.println("Wer war...?");

    e1.antworteingabe();

    if(e1.eingabe == "1")  {
    a1.antwort1 = true;
    a1.quizantwort();
    }//end if
  }//end starteQuiz
}//end class
Zeige Beiträge 1 bis 9 von 9 Treffern