3. CT-Praktikum

Aufgaben, Lösungen, Klausuren
Zeckenteppich
Beiträge: 233
Registriert: 20.11.2003 16:09
Contact:

3. CT-Praktikum

Beitrag von Zeckenteppich » 10.01.2005 18:06

hallo alle zusammen

ich hätte mal ne frage zu dem scheiß programm Borland ...
was muss ich eigentlich einstellen damit die include funktion auch funktioniert und beim compilieren nich die fehlermeldung kommt das er die gewünschte datei nich finden kann

ich war schon soweit dass ich teile von fabian seiner version abgeschrieben und ausprobiert hab aber das funzt ebenfalls nich

ich kann ja nich mal v3_graph.c compilieren denn da kommt ebenfalls schon die fehlermeldung das er graph.h nich finden kann obwohl es im selben verzeichnis liegt und der suchpfad auch auf dieses verzeichnis eingestellt is

also ich bin über jede hilfe dieses prob zu lösen zutiefst erfreut weil ich hier sonst noch meinen rechner aus dem fenster schmeis mit dem scheißprog auf der platte
danke und bdd
http://www.good-night.de.lv

\"I drink to prepare for a fight. Tonight I am very prepared.\" - Soda Popinski

Schmarkus
Beiträge: 65
Registriert: 17.06.2004 19:40
Contact:

3. CT-Praktikum

Beitrag von Schmarkus » 10.01.2005 18:12

hast du auch beim den \"Header - Dateien\" das:
ifndef \"headername\" = > am Anfang
endif \"headername\" = > am Ende
stehen???
Mfg Markus

Zeckenteppich
Beiträge: 233
Registriert: 20.11.2003 16:09
Contact:

3. CT-Praktikum

Beitrag von Zeckenteppich » 10.01.2005 18:20

jo das is ja klar
ich hab es auch mit den 2 fertigen dateien v3_graph.h und v3_graph.c probiert und nich mal hat es gefunzt
ich dachte ja auch erst das es ein programmierfehler von mir is aber jetzt bin ich langsam soweit das es eher ein problem mit der dos verträglichkeit von windows gibt

also vom quellcodé her dürfte es kein problem geben es müsste meiner meinung bei irgendwelchen einstellungen hängen
http://www.good-night.de.lv

\"I drink to prepare for a fight. Tonight I am very prepared.\" - Soda Popinski

fabian
Beiträge: 2283
Registriert: 12.11.2003 17:03
Name: Fabian
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2003
Wohnort: München
Contact:

3. CT-Praktikum

Beitrag von fabian » 10.01.2005 18:30

__README.txt:

[quote]Beachten:
---------

- Dateien auf privates Directory kopieren

- Projektfile erzeugen unter \"Projekt/Add Items\".
Im Projektfile müssen die zu verwendenden *.c-Dateien stehen:
. v3_main.c
. v3_frakt.c
. v3_dialo.c
. v3_graph.c sowie zusätzlich die Objektdatei
. egavga.obj

- Graphics Library einschalten unter Menüpunkt: \"Options/Linker/Libraries\"
- \"C++ always\" einschalten unter Menüpunkt: \"Options/Compiler/C++ options\"
[/quote]

und

[quote]ich war schon soweit dass ich teile von fabian seiner version abgeschrieben und ausprobiert hab aber das funzt ebenfalls nich[/quote]

Du hättest es einfach komplett aus der TeX-Quelldatei kopieren können :-)
Le Netaction est mort, vive le Netaction !

Zeckenteppich
Beiträge: 233
Registriert: 20.11.2003 16:09
Contact:

3. CT-Praktikum

Beitrag von Zeckenteppich » 10.01.2005 18:37

danke für die info aber das probiere ich schon die ganze zeit und
[quote]
Projektfile erzeugen unter \"Projekt/Add Items\".
[/quote]
funzt bei mir auch ni so einfach da müsste ich erstmal wissen wie ich eins erstelle
und andere projekte umbasteln haut bei mir auch ni hin (das liegt wahrsch au daran das ich mit dem prog immernoch nich klar komme aber das is nen anderes thema)
http://www.good-night.de.lv

\"I drink to prepare for a fight. Tonight I am very prepared.\" - Soda Popinski

Jimi
Beiträge: 21
Registriert: 25.11.2003 18:50

3. CT-Praktikum

Beitrag von Jimi » 10.01.2005 19:40

das projekt wird erstellt in dem man einfach auf \'Projekt öffnen\' geht, sich einen namen ausdenkt; alles am gewünschten Ort, fertsch! ; \'open\' = \'new\'

Zeckenteppich
Beiträge: 233
Registriert: 20.11.2003 16:09
Contact:

3. CT-Praktikum

Beitrag von Zeckenteppich » 10.01.2005 22:58

ak danke schön
beste nachricht des tages :-O

schönen abend wünsche ich euch noch allen zusammen
http://www.good-night.de.lv

\"I drink to prepare for a fight. Tonight I am very prepared.\" - Soda Popinski

meddle
Beiträge: 487
Registriert: 18.10.2004 17:46
Contact:

3. CT-Praktikum

Beitrag von meddle » 10.01.2006 14:18

mein apfelmännchen ist mit c compiliert nur schwarz-weiß. bei mingw siehts dagegen richtig klasse aus...

Woran kann das liegen?

Waschhausernst
Beiträge: 137
Registriert: 03.11.2004 17:07
Contact:

3. CT-Praktikum

Beitrag von Waschhausernst » 10.01.2006 15:17

kann mir jemand erklären, wieso mir der das sagt:

Code: Alles auswählen

V3_MAIN.C:17: error: `main\' must return `int\'
V3_MAIN.C:17: error: return type for `main\' changed to `int\'
Wer den Hopfen nicht ehrt, ist das Bierchen nicht wert.

Quentin
Beiträge: 501
Registriert: 28.02.2005 12:10

3. CT-Praktikum

Beitrag von Quentin » 10.01.2006 15:41

weil die main() nun mal vom Typ int sein muss.
Probiers einfach mit int main () und dann solltes gehen.
\"Ihr versaut mir die Ozonschicht!\"

Waschhausernst
Beiträge: 137
Registriert: 03.11.2004 17:07
Contact:

3. CT-Praktikum

Beitrag von Waschhausernst » 10.01.2006 15:43

hab ich auch danach :-)
nur steht in dem script, von dem alten prof, was der leon auf seine seite gepackt hat, dass int vom typ void ist.... liegt das an den verschiedenen compilern?
Wer den Hopfen nicht ehrt, ist das Bierchen nicht wert.

Quentin
Beiträge: 501
Registriert: 28.02.2005 12:10

3. CT-Praktikum

Beitrag von Quentin » 10.01.2006 15:47

Geht beides weils nicht so streng standartisiert ist. Hier wie auch unter C89 ist muss die main nen Int wert als z.B. Fehlercode zurück senden
\"Ihr versaut mir die Ozonschicht!\"

Waschhausernst
Beiträge: 137
Registriert: 03.11.2004 17:07
Contact:

3. CT-Praktikum

Beitrag von Waschhausernst » 10.01.2006 15:59

aha.
jetz hab ich beim linken ein problem:

Code: Alles auswählen

Linking...
C:\\Programme\\MinGWStudio\\MRT\\Debug\\V3_GRAPH.o: In function `Z9InitGraphdddd\':
C:\\Programme\\MinGWStudio\\MRT\\V3_GRAPH.C:52: undefined reference to `initgraph\'
C:\\Programme\\MinGWStudio\\MRT\\V3_GRAPH.C:53: undefined reference to `graphresult\'
C:\\Programme\\MinGWStudio\\MRT\\V3_GRAPH.C:55: undefined reference to `grapherrormsg\'
C:\\Programme\\MinGWStudio\\MRT\\V3_GRAPH.C:61: undefined reference to `getmaxx\'
C:\\Programme\\MinGWStudio\\MRT\\V3_GRAPH.C:62: undefined reference to `getmaxy\'
C:\\Programme\\MinGWStudio\\MRT\\Debug\\V3_GRAPH.o: In function `Z8SetPointdd6tColor\':
C:\\Programme\\MinGWStudio\\MRT\\V3_GRAPH.C:80: undefined reference to `putpixel\'
C:\\Programme\\MinGWStudio\\MRT\\Debug\\V3_GRAPH.o: In function `Z10CloseGraphv\':
C:\\Programme\\MinGWStudio\\MRT\\V3_GRAPH.C:86: undefined reference to `closegraph\'
collect2: ld returned 1 exit status
ich habe aber, wie in der anleitung beschrieben, diese binarys libbgi.a und graphics.h in mingw ersetzt und auch die bedingte übersetzung eingefügt,,, muss ich noch etwas berücksichtigen?
Wer den Hopfen nicht ehrt, ist das Bierchen nicht wert.

Quentin
Beiträge: 501
Registriert: 28.02.2005 12:10

3. CT-Praktikum

Beitrag von Quentin » 10.01.2006 16:04

sieht aus als hättest du nicht alle header drinnen, speziell die v3_graph. Überprüf das mal noch. Und schon muss ich auch los hab jetzt nämlich das Praktikum. Wenns nicht klappt schreibs nochmal rein. Achso schau mal nach ob du für standardverzeichnis oder \"name.h\" für lokales verzeichnis im include teil hast
\"Ihr versaut mir die Ozonschicht!\"

Waschhausernst
Beiträge: 137
Registriert: 03.11.2004 17:07
Contact:

3. CT-Praktikum

Beitrag von Waschhausernst » 10.01.2006 23:36

also das apfelmännchen leuchtet auf dem bildschirm - endlich.
wie habt ihr das eigentlich mit der farbzuweisung gemacht?
wenn ich

Code: Alles auswählen

(iterationsanzahl % 15) + 1
schreibe, und bei iterationsanzahl größer imax die farbe schwarz - also 0 - vergebe, wiederholen sich die farben an den \"zipfeln\" des apfelmännchens ja ständig.
is das ok so?
kann man das mit dem modulo operator auch noch besser lösen?
- Editiert von Waschhausernst am 11.01.2006, 00:15 -
- Editiert von Waschhausernst am 11.01.2006, 00:17 -
Wer den Hopfen nicht ehrt, ist das Bierchen nicht wert.

fabian
Beiträge: 2283
Registriert: 12.11.2003 17:03
Name: Fabian
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2003
Wohnort: München
Contact:

3. CT-Praktikum

Beitrag von fabian » 11.01.2006 09:39

[quote]schreibe, und bei iterationsanzahl größer imax die farbe schwarz - also 0 - vergebe, wiederholen sich die farben an den \"zipfeln\" des apfelmännchens ja ständig.[/quote]
Ja, mehr Farben gibt es eben nicht, und man will ja nicht auf die Darstellung jenseits von 15 Stufen verzichten.
[quote]kann man das mit dem modulo operator auch noch besser lösen?[/quote]
Ist doch OK so? habe schon schlimmeres gesehen á la:

Code: Alles auswählen

if (iterationsanzahl > 15) {iterationsanzahl = 1}
... Naja, eine kuerzere Variable wuerde es vielleicht auch tun :-)
Le Netaction est mort, vive le Netaction !

Waschhausernst
Beiträge: 137
Registriert: 03.11.2004 17:07
Contact:

3. CT-Praktikum

Beitrag von Waschhausernst » 11.01.2006 09:53

[quote]... Naja, eine kuerzere Variable wuerde es vielleicht auch tun :-)[/quote]
....ich habs hier auch nur des Verständnisses halber so benannt - im prog heißt sie bei mir it ;-)

beim apfelmännchen mag das ja noch gehen, aber ich finde, dass die juliamenge damit ziemlich grottig aussieht... sieht im allgemeinen bei mir ziemlich verschoben aus:
[IMG]http://img218.imageshack.us/img218/9531/julia1sp.th.jpg[/IMG]
sieht das bei dir auch so komisch aus? sind nur 10 iterationen, da ich mal mit nem bild von ner website vergleichen wollte...
Wer den Hopfen nicht ehrt, ist das Bierchen nicht wert.

Quentin
Beiträge: 501
Registriert: 28.02.2005 12:10

3. CT-Praktikum

Beitrag von Quentin » 11.01.2006 10:50

Sieht doch ganz gut aus. Ist bei mir zwar etwas detailierter aber solange das Apfelmännchen und Julia bei 75 Iterationen gut aussehen ist das den Betreuern eh egal. Die wollen nur xmin/max und ymin/max verändern um dann mit ihren Vorlagen zu vergleichen.
\"Ihr versaut mir die Ozonschicht!\"

fabian
Beiträge: 2283
Registriert: 12.11.2003 17:03
Name: Fabian
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2003
Wohnort: München
Contact:

3. CT-Praktikum

Beitrag von fabian » 11.01.2006 10:59

Das sieht in der Tat nicht OK aus; es sollte symmetrisch sein. Lass mal deine gesamte Funktion zur Ermittlung des Farbwertes sehen...
In http://et.netaction.de/et/file/download.php?id=352 ist naemlich ein Fehler eingebaut, der ziemlich aehnliche (falsche) Ergebnisse liefert :-)
Le Netaction est mort, vive le Netaction !

Waschhausernst
Beiträge: 137
Registriert: 03.11.2004 17:07
Contact:

3. CT-Praktikum

Beitrag von Waschhausernst » 11.01.2006 11:55

genau das meine ich ja auch....
hier meine funktion:

Code: Alles auswählen

/*--- Interne Funktion: Farbwert bestimmen ---------------------------------*/
/* ... GetColorValue (...) ... */
tColor GetColorValue(int it, int itmax) 
{
	int farbwert;			//Farbe
	if(it > itmax) {		//Wenn Iteration Gebiet nicht verlassen hat
		farbwert = 0;		//Farbe Schwarz
	}else {
		farbwert = (it % 14) + 1;
	}
	switch(farbwert) {
			case(0): farbe = black; break;
			case(1): farbe = blue; break;
			case(2): farbe = green; break;
			case(3): farbe = cyan; break;
			case(4): farbe = red; break;
			case(5): farbe = magenta; break;
			case(6): farbe = brown; break;
			case(7): farbe = white; break;
			case(8): farbe = gray; break;
			case(9): farbe = lightblue; break;
			case(10): farbe = lightgreen; break;
			case(11): farbe = lightcyan; break;
			case(12): farbe = lightred; break;
			case(13): farbe = lightmagenta; break;
			case(14): farbe = lightyellow; break;
			case(15): farbe = brightwhite; break;
			default: farbe = black;
	}
	return farbe;
}
Wer den Hopfen nicht ehrt, ist das Bierchen nicht wert.

Quentin
Beiträge: 501
Registriert: 28.02.2005 12:10

3. CT-Praktikum

Beitrag von Quentin » 11.01.2006 12:11

Meckert dein Compiler nicht wegen dem Rückgabetyp der Funktion? (weils ja nen enum ist)
Also das switch case construct sieht richtig aus.
Die Bedingung für Schwarz hätt ich allerdings auf == gesetzt da du ja sicherlich als Abbruchbedingung für dein GetItera imax angegeben hast, deswegen kanns ja nie größer werden.Und für die Farben farbwert % 15 oder 16 ... oder spricht da was dagegen?
\"Ihr versaut mir die Ozonschicht!\"

fabian
Beiträge: 2283
Registriert: 12.11.2003 17:03
Name: Fabian
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2003
Wohnort: München
Contact:

3. CT-Praktikum

Beitrag von fabian » 11.01.2006 12:14

Das ganze switch-Konstrukt kannst Du dir schonmal sparen, da in graph.h tColor als enumerationstyp vereinbart wurde und somit ein Cast reicht:

Code: Alles auswählen

return (tColor) farbe;
(Das hatte ich in meiner X11-Version anders gemacht, da die Xlib die Farbe als string will)

In der if-Bedingung sollte es wohl >= heissen, oder gleich it == itmax, da Du ja wohl nach itmax Schritten abbrechen wirst. Ist aber im Prinzip nicht so wichtig, dann ist das effektive itmax eben um eins abweichend.

Ansonsten siehts eigentlich OK aus (auch wenn Du 2 Farben verschenkst mit %14).
Le Netaction est mort, vive le Netaction !

rainyx
Beiträge: 261
Registriert: 24.10.2004 20:37
Contact:

3. CT-Praktikum

Beitrag von rainyx » 11.01.2006 16:03

Er verschenkt eine Farbe, richtig müsste es %15 heissen, denn dann werden die Farben 1 bis 15 genutzt. Das switch-case-Konstrukt ist auch nicht völlig überflüssig, denn wir sollten (mit switch-case) eine Möglichkeit vorsehen, die Farbreihenfolge selbst zu wählen.
Always learn from history, to be sure you make the same mistakes again

Waschhausernst
Beiträge: 137
Registriert: 03.11.2004 17:07
Contact:

3. CT-Praktikum

Beitrag von Waschhausernst » 11.01.2006 17:27

[quote]Das ganze switch-Konstrukt kannst Du dir schonmal sparen, da in graph.h tColor als enumerationstyp vereinbart wurde und somit ein Cast reicht:
Code:
1 return (tColor) farbe;[/quote]
danke für den tip, wusste gar nicht, dass ich das so casten kann/muss.

das switch - case lass ich mal wegen aufgabenstellung drinn.
imho verschenke ich gar keine farbe, da der rest maximal 14 ist und plus 1 ja dann die 16.te farbe ergibt.
rest 0 plus 1 ist die zweite farbe.
die erste hab ich ja schon in der if bedingung vergeben.


[quote]Die Bedingung für Schwarz hätt ich allerdings auf == gesetzt da du ja sicherlich als Abbruchbedingung für dein GetItera imax angegeben hast, deswegen kanns ja nie größer werden.[/quote]
stimmt, hatte ich gar ni drann gedacht... :-O

erklärt aber immer noch nicht, wieso meine juliamenge so komisch aussieht.... (?)
Wer den Hopfen nicht ehrt, ist das Bierchen nicht wert.

fabian
Beiträge: 2283
Registriert: 12.11.2003 17:03
Name: Fabian
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2003
Wohnort: München
Contact:

3. CT-Praktikum

Beitrag von fabian » 11.01.2006 18:14

[quote]switch-case-Konstrukt ist auch nicht völlig überflüssig, denn wir sollten (mit switch-case) eine Möglichkeit vorsehen, die Farbreihenfolge selbst zu wählen.[/quote]
OK, war bei uns damals noch nicht so. Troztdem wuerde ich das anders machen, denn wenn es jetzt geandert werden soll, muss das Programm neu kompiliert werden. Man koennte es recht einfach machen, indem man die Zuordnungen in einem Array speichert, welches zur Laufzeit veraendert werden kann.
[quote]erklärt aber immer noch nicht, wieso meine juliamenge so komisch aussieht.... [/quote]
In der Tat. Das Problem liegt wohl woanders..
Le Netaction est mort, vive le Netaction !

Gesperrt

Zurück zu „3. und 4. Semester“