Programmieren lernen(C++)


Recommended Posts

Im ASB-Olymp

weiß jemand eine methode, mit der man ein bestimmtes zeichen in einem string ersetzen kann?

also beispiel:

"abcabc" und jetzt will ich das zeichen an der 3. stelle durch ein x ersetzen. also müsste dann das rauskommen: "abxabc"

sprache: java

edit hat sich erledigt:

char a = image[y].charAt(x);
String[] sp = new String [2];
sp[1] = image[y].substring(x+1,image[y].length());
sp[0] = image[y].substring(0,x);
image[y]= sp[0] + "" + c + "" + sp[1];

bearbeitet von scr4ever1991

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Postet viiiel zu viel

Hat wer Tips, ob es auch irgendwo im Netz Kurse für Dummies gibt, sie müssten allerdings Deutsch sein, meine Englischkenntnisse reichen leider net aus um damit so etwas komplexes wie c++ zu lernen.

Ich mach nur ein wenig Webstuff - aber meine Tipps für dich wären:

Buch: "Einführung in die Programmierung mit C++" von Bjarne Stroustrup (http://de.wikipedia.org/wiki/Bjarne_Stroustrup)

"Ein Buch für Menschen die hart zu sich selbst sein können, kompetent und überzeugend ins deutsche übersetzt".

(c`t-Magazin 16/2010, Seite 183).

alternativ > http://twitter.com/#!/FuckingDevTips/status/131958909970812928

;)

bearbeitet von cmo

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

  • 2 months later...
blablabla

Hat irgendjemand Ahnung von euch mit C-Programmieren in Eclipse bzw. dem damit verbundenen Debuggen?

Immer, wenn ich debuggen möchte, bricht das Programm den Debugvorgang ab, ohne ersichtlichen Grund. Eigentlich immer, sobald es zur ersten Variable kommt, beispielsweise wenn ich einen Wert einlesen möchte. Woran könnte sowas liegen?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Captain Awesome

Hat irgendjemand Ahnung von euch mit C-Programmieren in Eclipse bzw. dem damit verbundenen Debuggen?

Immer, wenn ich debuggen möchte, bricht das Programm den Debugvorgang ab, ohne ersichtlichen Grund. Eigentlich immer, sobald es zur ersten Variable kommt, beispielsweise wenn ich einen Wert einlesen möchte. Woran könnte sowas liegen?

Eclipse. 18.gif

Da wirst du relativ häufig und böse vor solche Probleme gestellt.

Kannst du ein HELLO WORLD debuggen? (Also ein HELLO WORLD, und davor/danach zb eine Variable erstellen und manipulieren...)

Nur um auszuschließen, dass dein Code den Debugger zum Abschmieren bringt - auch wenn das natürlich nicht passieren sollte.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

blablabla

Ich hab jetzt mal einfach ganz simpel eine scanf-Funktion und eine printf-Funktion eingegeben. Auf dem Bild unten sieht man, wo es stehen bleibt, da kann ich dann nix mehr machen. Bzw. ich bin mir nicht sicher, obs vll. doch so passt, ich aber vll gar nicht weiter weiß.

post-8629-0-60823700-1325872820_thumb.jp

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Im ASB-Olymp

hmmm, komisch - genau da stoppt er, und geht nicht mehr weiter?

was ist, wenn du oben auf den grünen pfeil drückst?

ich arbeite zwar nur mit java in eclipse, aber es ist komisch, dass er in der zeile stehenbleibt, obwohl da anscheinend gar kein breakpoint gesetzt ist :ratlos:

edit: ich habs jetzt probiert, er bleibt wirklich auch ohne breakpoint bei puts() stehen - ka wieso; aber du kannst normal fortsetzen mit dem grünen pfeil oder F8.

im debugger kanns nur vorkommen, dass du keine ausgabe von puts() bekommst, weil du eventuell vorher flushen musst (im normalen ausführen ohne debug gehts ohne probleme) - ist HIER beschrieben

bearbeitet von Kaufi

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

blablabla

Mhm danke, damit kann ich jetzt zumindest mal die einfachen Strings ausgeben. Wenn ich allerdings Variablen eingeben oder Variablen ausgeben möchte, streikt das Programm noch immer und macht rein gar nichts, auch wenn ich mit dem grünen Pfeil weitergehe...

bearbeitet von Evilken

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Captain Awesome

Hm, du musst beim Eingeben von Variablen (also scanf) mit dem Cursor in die Console unten gehn, eingeben & enter drücken soweit ich weiß. Das ist nicht so wie die übliche Windows-Console. Oder hast du das eh gemacht?

Edit: mit Cursor mein ich mit der Maus ... reinklicken, erst dann bist tatsächlich in der Console.

bearbeitet von StepDown

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Weltklassecoach

Gib diese Zeile in deinen Code:

setvbuf(stdout, NULL, _IONBF, 0);

Anscheinend ist CDT für Konsolenprogramme ziemlich unbrauchbar, wenn du den debugger also nicht unbedingt brauchst, dann schreib und kompilier deine Programme lieber in der Konsole (VI lernen hat noch niemandem geschadet ;))

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

blablabla

So, nochmal ein kurzer Zwischenstand:

Ich hab mir jetzt mit VMWare Workstation Scientific Linux raufgespielt. Eclipse raufgegeben, ein paar einfache Programme versucht zu debuggen und da gibts absolut keine Probleme, da werd ich jetzt wohl bleiben, zumindest vorerst. :betrunken:

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

  • 3 weeks later...
blablabla

Hmm, mir hat sich da jetzt unerwartet ein Problem aufgetan, aber ich komm da jetzt nach stundenlanger Suche nicht drauf, woran es liegen könnte, dass mir das Programm jedesmal wieder abstürzt. Ich soll mit dieser Funktion eine zuvor zweidimensionale dynamisch-allokierte Matrix mit einem Wert beschreiben. In der Zeile mit "*arr[j]=wert;" zeigt mir der Debugger, dass da Schluss ist, ich komm allerdings nicht drauf, warum und hätte auch schon einiges ausprobiert.

Weiß jemand von euch woran es liegen könnte?

int FillMatrix (int zeilen, int spalten, double*** arr, double wert) {
if(arr==NULL) {
	return -2;
	}
if(spalten<=0 || zeilen <=0) {
	return -3;
	}
int i;
int j;

for(i=0;i<zeilen;i++) {
	for(j=0;j<spalten;j++) {
		*arr[i][j]=wert;
		}
	}
return 0;
}

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Im ASB-Olymp

Hmm, mir hat sich da jetzt unerwartet ein Problem aufgetan, aber ich komm da jetzt nach stundenlanger Suche nicht drauf, woran es liegen könnte, dass mir das Programm jedesmal wieder abstürzt. Ich soll mit dieser Funktion eine zuvor zweidimensionale dynamisch-allokierte Matrix mit einem Wert beschreiben. In der Zeile mit "*arr[j]=wert;" zeigt mir der Debugger, dass da Schluss ist, ich komm allerdings nicht drauf, warum und hätte auch schon einiges ausprobiert.

Weiß jemand von euch woran es liegen könnte?

int FillMatrix (int zeilen, int spalten, double*** arr, double wert) {
if(arr==NULL) {
	return -2;
	}
if(spalten<=0 || zeilen <=0) {
	return -3;
	}
int i;
int j;

for(i=0;i<zeilen;i++) {
	for(j=0;j<spalten;j++) {
		*arr[i][j]=wert;
		}
	}
return 0;
}

was kommt denn für eine fehlermeldung?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hast du da den Speicher entsprechend erzeugt? Bzw schau mal i,j an in welchem Umlauf es dich aufhaut

Abgesehen davon: double pointer reicht zum Übergeben, nachdem du sowieso Zeiger übergibst.

Und persönlich mappe ich zweidimensionale Felder/Matrizen immer auf einen eindimensionalen Array.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...


  • Folge uns auf Facebook

  • Partnerlinks

  • Unsere Sponsoren und Partnerseiten

  • Wer ist Online

    • Keine registrierten Benutzer online.