MarkusX Geschrieben 28. Juni 2001 Geschrieben 28. Juni 2001 hallo, kurz den Stand der Dinge bei uns im Betrieb wird kein C programmiert! In der Berufsschule jedoch haben wir C Unterricht, welcher jedoch "für die Katz" ist! Der Lehrer chekkt es selber nciht! nun steht es an, zum Jahresende sollten wir ein lauffähiges C-Programm schreiben was alles beihnhaltet was bisher in C-Unterricht so drankam also eigendlich alles ein/ausgabe - bis hin zu Pointern. Ich bin im Moment aus Zeitlichen Gründen nicht in der lage mioch nebenher reinzuklemmen und alles wieder aufzufrischen da ich im Moment sehr viel mit Linux zu tun habe. Ich hoffe auf gute Tipps von Euch. Ich bin nicht der Faule Typ, ich habe mit Sicherheit vor alles in meinem Urlaub nachzuholen aber im Moment ist es unmöglich wenn ich nicht in 10 Tagen ein programm habe, bin ich echt aufgeschmissen. Maximal 250 Zeilen Quellcode und welche Programmart also was das Programm machen soll ist ganz egal. Da ich so unter Zeitdruck bin ist das mein einziger Ausweg! MfG Markus Ich hoffe Ihr könnt mir ein paar seiten mit Beispielen oder sowas empfehlen oder eure alten quellcodes senden... :confused: Zitieren
Tachyoon Geschrieben 28. Juni 2001 Geschrieben 28. Juni 2001 Vorschlag: Eine einfache Adressverwaltung (ja, ich weiß: "Wie kreativ!") kann dabei ziemlich viel abdecken, ist vom Verständis nicht allzu schwer und einzelne Beispiele müßte es auch geben. Zitieren
capitanx Geschrieben 28. Juni 2001 Geschrieben 28. Juni 2001 Hier ist ein Rechner mit Punkt vor Strich funktion, allerdings mehr als 250 Zeilen musst halt überflüssiges rauslöschen (ascii codes etc.) //***************************************************************** //Autor: //Datum: 2001-05-10 //Name: rechner2.cpp //System: Borland Compiler Ver. 5.00 //Aufgabe: Erstellung eines Rechners, bei dem man beliebig viele // Variablen und Rechenoperatoren eingeben kann. //***************************************************************** #include <iostream.h> #include <conio.h> void anfang(); void hilfefunktion(); float plus(float); float minus(float); float mal(float); float durch(float); float hoch(float); float eingabe(); void verteiler(); char operant; int counter; float eingabe() { float zahl; cin >> zahl; if (zahl < 10) counter = counter + 2; if (zahl >= 10 && zahl < 100) counter = counter + 3; if (zahl >= 100 && zahl < 1000) counter = counter + 4; if (zahl >= 1000 && zahl < 10000) counter = counter + 5; if (zahl >= 10000 && zahl < 100000) counter = counter + 6; if (zahl >= 100000 && zahl < 1000000) counter = counter + 7; if (zahl >= 1000000 && zahl < 10000000) counter = counter + 8; if (zahl >= 10000000 && zahl < 100000000) counter = counter + 9; if (zahl >= 100000000) counter = counter + 10; return zahl; } //eingabe float hoch(float Zahl1) { int Zahl2, i; float teilergebnis, erg2; Zahl2 = (int)eingabe(); erg2 = Zahl1; teilergebnis = Zahl1; cin >> operant; if (Zahl2 == 0) return teilergebnis = 1; else { if (operant == '/' || operant == '*' || operant == '^') { if (operant == '^') { for (i = 1; i < Zahl2; i++) erg2 = erg2 * Zahl1; teilergebnis = hoch(erg2); } //if if (operant == '*') { for (i = 1; i < Zahl2; i++) erg2 = erg2 * Zahl1; teilergebnis = mal(erg2); } //if if (operant == '/') { for (i = 1; i < Zahl2; i++) erg2 = erg2 * Zahl1; teilergebnis = durch(erg2); } //if } //if else for (i = 1; i < Zahl2; i++) teilergebnis = teilergebnis * Zahl1; return teilergebnis; } //else } //hoch float durch(float Zahl1) { float Zahl2, teilergebnis, erg2; Zahl2 = eingabe(); cin >> operant; if (operant == '*' || operant == '/' || operant == '^' && operant != '=') { if (operant == '*') { erg2 = Zahl1 / Zahl2; teilergebnis = mal(erg2); } //if if (operant == '/') { erg2 = Zahl1 / Zahl2; teilergebnis = durch(erg2); } //if if (operant == '^') teilergebnis = Zahl1 / hoch(Zahl2); } //if else teilergebnis = Zahl1 / Zahl2; return teilergebnis; } //durch float mal(float Zahl1) { float Zahl2, teilergebnis, erg2; Zahl2 = eingabe(); cin >> operant; if (operant == '*' || operant == '/' || operant == '^' && operant != '=') { if (operant == '*') { erg2 = Zahl1 * Zahl2; teilergebnis = mal(erg2); } //if if (operant == '/') { erg2 = Zahl1 * Zahl2; teilergebnis = durch(erg2); } //if if (operant == '^') teilergebnis = Zahl1 * hoch(Zahl2); } //if else teilergebnis = Zahl1 * Zahl2; return teilergebnis; } //mal float minus(float Zahl1) { float Zahl2, teilergebnis; Zahl2 = eingabe(); cin >> operant; if (operant == '*' || operant == '/' || operant == '^') { if (operant == '*') teilergebnis = Zahl1 - mal(Zahl2); if (operant == '/') teilergebnis = Zahl1 - durch(Zahl2); if (operant == '^') teilergebnis = Zahl1 - hoch(Zahl2); } //if else teilergebnis = Zahl1 - Zahl2; return teilergebnis; } //minus float plus(float Zahl1) { float Zahl2, teilergebnis; Zahl2 = eingabe(); cin >> operant; if (operant == '*' || operant == '/' || operant == '^') { if (operant == '*') teilergebnis = Zahl1 + mal(Zahl2); if (operant == '/') teilergebnis = Zahl1 + durch(Zahl2); if (operant == '^') teilergebnis = Zahl1 + hoch(Zahl2); } //if else teilergebnis = Zahl1 + Zahl2; return teilergebnis; } //plus void verteiler() { float endergebnis = 0; int i = 0, xpos, ypos; if (i == 0) { i++; operant = '+'; } //if cout << " " << char(201); for (i = 0; i <= 35; i++) cout << char(205); cout << char(187) << "\n"; cout << " " << char(186) << " Rechner"; cout << " " << char(186) << "\n"; cout << " " << char(200); for (i = 0; i <= 35; i++) cout << char(205); cout << char(188) << "\n\n\n\n\n"; cout << " " << char(218); for (i = 0; i <= 45; i++) cout << char(196); cout << char(191) << "\n"; cout << " Ihre Eingabe: " << char(179); cout << " "; cout << char(179) << "\n"; cout << " " << char(192); for (i = 0; i <= 20; i++) cout << char(196); cout << char(194); for (i = 0; i <= 16; i++) cout << char(196); cout << char(194); cout << char(196) << char(196) << char(196) << char(196) << char(196) << char(196); cout << char(217) << "\n"; cout << " Ergebnis: "; cout << char(179); cout << " "; cout << char(179) << "\n "; cout << char(192); for(i = 0; i <= 16; i++) cout << char(196); cout << char(217); cout << "\n\n [bitte alle Zeichen und Zahlen OHNE Return und Space eingeben]"; xpos = 3; ypos = 21; gotoxy(xpos, ypos); cout << "Verfuegbare Operanten: PLUS(+), MINUS(-), MAL(*), GETEILT(/) und HOCH(^)\n\n"; cout << " Zum Zeigen des Ergebnises bitte 'ISTGLEICH(=)' eingeben."; xpos = 18; ypos = 9; gotoxy(xpos, ypos); do { switch(operant) { case '+' : endergebnis = plus(endergebnis); break; case '-' : endergebnis = minus(endergebnis); break; case '*' : endergebnis = mal(endergebnis); break; case '/' : endergebnis = durch(endergebnis); break; case '^' : endergebnis = hoch(endergebnis); break; } //switch } while(operant != '='); xpos = 41; ypos = 11; gotoxy(xpos, ypos); cout << endergebnis; xpos = 27; ypos = 17; gotoxy(xpos, ypos); cout << "<<< Weiter mit TASTE >>>"; getch(); } //verteiler void hilfefunktion() { int i; clrscr(); cout << " "; cout << char(201); for (i = 0; i <= 20; i++) cout << char(205); cout << char(187) << "\n"; cout << " " << char(186); cout << " HILFE VER.0.2b " << char(186) << "\n"; cout << " "; cout << char(200); for (i = 0; i <= 20; i++) cout << char(205); cout << char(188) << "\n\n"; cout << "Hier wird einmal der Hilfetext stehen!\n"; cout << "um zurueckzukehren, <TASTE> drueken! "; getch(); clrscr(); } //hilfefunktion void anfang() { char auswahl; int i; clrscr(); do { cout << "\n " << char(201); for (i = 0; i <= 50; i++) cout << char(205); cout << char(187); cout << "\n " << char(186); cout << " Autor: , Germany"; cout << " " << char(186) << "\n"; cout << " " << char(186); cout << " Datum: 10.05.2001"; cout << " " << char(186) << "\n"; cout << " " << char(186); cout << " Testsystem: PII/333MHz, 192MB RAM, MS-DOS6.2"; cout << " " << char(186) << "\n"; cout << " " << char(200); for (i = 0; i <= 50; i++) cout << char(205); cout << char(188) << "\n\n"; cout << " Dieses Programm ist wie ein Taschenrechner. \n\n\n"; cout << " "; cout << char(201); for (i = 0; i <= 20; i++) cout << char(205); cout << char(187) << "\n"; cout << " " << char(186); cout << " RECHNER VER.3.8 " << char(186) << "\n"; cout << " "; cout << char(200); for (i = 0; i <= 20; i++) cout << char(205); cout << char(188) << "\n\n\n\n\n"; cout << "\nWeiter mit <W> (Hilfe mit <H> ) "; cin >> auswahl; if (auswahl == 'h' || auswahl == 'H') hilfefunktion(); } while(auswahl != 'W' && auswahl != 'w'); } //anfang void main(void) { char nochmal; anfang(); clrscr(); do { clrscr(); verteiler(); clrscr(); cout << "\n\n\n\n"; cout << " Noch eine Berechnung durchfueren?\n"; cout << " ([j]a / [n]ein) "; cout << " "; cin >> nochmal; counter = 0; } while(nochmal != 'n'); } //main ein weiterer Vorschlag: ne Verkettete liste (mit strukturen etc.) Zitieren
MarkusX Geschrieben 28. Juni 2001 Autor Geschrieben 28. Juni 2001 bin dir schonmal sehr dankbar .. gib es im internet auch eine art beispieldatenbank? es sollte ein Pointer vorhanden sein. für weitere Tips und Programme jeglicher Art wäre ich Euch sehr dankbar!!! Bdanke mich im vorraus MfG markusX Zitieren
capitanx Geschrieben 28. Juni 2001 Geschrieben 28. Juni 2001 Sorry Ausgabe auf dem Bildschirm sieht setsam aus (ABER DER RECHNER FUNST!) Zitieren
capitanx Geschrieben 28. Juni 2001 Geschrieben 28. Juni 2001 Hier hab ich noch mal ein Programm (diesmal mit Zeigern!! ) Danach langt es aber! //********************************************************** //Autor: CapitanX //Datum: 2001-05-21 //Name: VERK_LISTE.cpp //System: Borland C++ Compiler (Ver. 5.01) //Aufgabe: Eine Erstellung einer verketteten Liste // zur dynamischen Erfassung von Vor- und // Nachnamen von Personen mit Löschfunktion //********************************************************** #include <iostream.h> //fuer cout, cin #include <conio.h> //fuer getch und clrscr #include <stddef.h> //fuer NULL // +++++++++++++++++++++++++++++++++++++++++ // + ACHTUNG! + // + Eine Adresse eines Zeigers ist gleich + // + dem Zeiger auf einen Zeiger! + // +++++++++++++++++++++++++++++++++++++++++ struct Listenelement { char *Nachname; char *Vorname; Listenelement *next; }; //beendet struct char Menuewahl() { char eingabe; do { clrscr(); cout << "N A M E N S V E R W A L T U N G:\n\n"; cout << "Menue:\n"; cout << "Namen eingeben: n\n"; cout << "Namen loeschen: l\n"; cout << "Namen anzeigen: a\n"; cout << "ENDE : e\n\n"; cout << "Bitte waehlen SIE: "; cin >> eingabe; } while(!((eingabe == 'n') || (eingabe == 'l') || (eingabe == 'a') || (eingabe == 'e') || (eingabe == 'N') || (eingabe == 'L') || (eingabe == 's') || (eingabe == 'S') || (eingabe == 'A') || (eingabe == 'E'))); return eingabe; } //Menuewahl void neuen_Namen_eingeben(struct Listenelement *Name) { clrscr(); cout << "Bitte geben Sie den Nachnamen ein: "; Name->Nachname = new char; cin >> Name->Nachname; cout << "\nBitte geben Sie den Vornamen ein: "; Name->Vorname = new char; cin >> Name->Vorname; Name->next = NULL; } //neuen_Namen_eingeben void heange_Namen_ans_Listenende(struct Listenelement **Anfang) { struct Listenelement *akt_Pos; struct Listenelement *Person; Person = new struct Listenelement; neuen_Namen_eingeben(Person); if(*Anfang == NULL) *Anfang = Person; else { akt_Pos = *Anfang; while(akt_Pos->next != NULL) { akt_Pos = akt_Pos->next; } //while akt_Pos->next = Person; } //else } //heange_Namen_ans_Listenende void zeige_alle_Namen(struct Listenelement **Anfang) { struct Listenelement *akt_Pos; int zaehler = 0; if(*Anfang == NULL) { clrscr(); cout << "keine Eintraege vorhanden!!!"; getch(); } //if else { clrscr(); cout << "N A M E N S L I S T E:\n\n"; cout << "(NR. NAME, VORNAME)\n\n"; akt_Pos = *Anfang; do { zaehler++; cout << zaehler << ". "; cout << akt_Pos->Nachname << ", " << akt_Pos->Vorname << "\n"; akt_Pos = akt_Pos->next; } while(akt_Pos != NULL); getch(); } //else } //zeige_alle_Namen void loesche_Namen(struct Listenelement **Anfang) { struct Listenelement *akt_Pos, *loesch_Pos; int Nummer, i; if(*Anfang == NULL) { clrscr(); cout << "Aus einer leeren Liste koennen keine Daten\n"; cout << "geloescht werden!!!"; getch(); } //if else { akt_Pos = *Anfang; zeige_alle_Namen(&akt_Pos); cout << "\nBitte geben Sie die Loeschposition ein: "; cin >> Nummer; if(Nummer == 1) { for(i = 1; i <= 1; i++) akt_Pos = akt_Pos->next; *Anfang = akt_Pos; } //if else { akt_Pos = *Anfang; loesch_Pos = *Anfang; for(i = 1; i < Nummer-1; i++) akt_Pos = akt_Pos->next; for(i = 1; i < Nummer; i++) loesch_Pos = loesch_Pos->next; akt_Pos->next = loesch_Pos->next; delete loesch_Pos; } //else } //else } //loesche_Namen void main(void) { struct Listenelement *Listenanfang = NULL; //Liste exsistiert noch nicht bool Ende = false; do { switch(Menuewahl()) { case 'n' : heange_Namen_ans_Listenende(&Listenanfang); break; case 'N' : heange_Namen_ans_Listenende(&Listenanfang); break; case 'l' : loesche_Namen(&Listenanfang); break; case 'L' : loesche_Namen(&Listenanfang); break; case 'a' : zeige_alle_Namen(&Listenanfang); break; case 'A' : zeige_alle_Namen(&Listenanfang); break; case 'e' : Ende = true; break; case 'E' : Ende = true; break; } //switch } while (!Ende); } //main Zitieren
Poldi Geschrieben 28. Juni 2001 Geschrieben 28. Juni 2001 aber das ist doch c++ ... ich denke das sollte in c sein?! weil in c gibbet doch kein cout ... mußt du dann quasi durch printf ersetzen ... hoffenltich liest dein lehrer nicht in diesem forum rum ... lol Zitieren
Crush Geschrieben 28. Juni 2001 Geschrieben 28. Juni 2001 Also ich wollte herkömmlich mal das hier als Aufgabe machen: Eine Ver- und Entschlüsselungsroutine. Das tolle dabei ist, man kann sich irgendeinen wahnsinnigen sinnlosen Algorhythmus ausdenken der halt beim Entschlüsseln in derselben Reihenfolge rückwärts auch wieder zum selben Ergebnis führt. Dann kann man sich noch überlegen, ob das mit einer Datei, einen Ordner oder sonstwas laufen soll. Eigentlich ist das fast 0 Aufwand und sieht toll aus. Außerdem kann man mit so tollen Worten wie Kryptographie und Algorhythmus (hoffentlich schreibt man´s auch so) um sich werfen! Außerdem muß es sich um C++ handeln, da bei C eh keine Pointer existierten soweit ich weiß. Zitieren
gajUli Geschrieben 28. Juni 2001 Geschrieben 28. Juni 2001 <BLOCKQUOTE><font size="1" face="Verdana, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von Crush: <STRONG>... da bei C eh keine Pointer existierten soweit ich weiß.</STRONG> Zitieren
MarkusX Geschrieben 29. Juni 2001 Autor Geschrieben 29. Juni 2001 hm 1. es gibt (leider) zeiger in C 2. danke für die beispiele, ich warte auf weitere zahlreiche 3. wo ist der unterschied cout und printf? liefert mir doch noch 2-3 eurer C-programme, welche möglichst viel beinhalten! besten Dank im vorraus! MarkusX Zitieren
Defender Geschrieben 29. Juni 2001 Geschrieben 29. Juni 2001 <BLOCKQUOTE><font size="1" face="Verdana, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von EisenUli: <STRONG> *ARGLJEURGS* Uli</STRONG> Zitieren
Hasi Geschrieben 30. Juni 2001 Geschrieben 30. Juni 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von Crush: <STRONG>Außerdem muß es sich um C++ handeln, da bei C eh keine Pointer existierten soweit ich weiß.</STRONG> Zitieren
MarkusX Geschrieben 1. Juli 2001 Autor Geschrieben 1. Juli 2001 oder hat mir jemand von euch eine Seite mit beispielprogrammen für C ??? das ist echt superwichtig! Ich bedanke mich und hoffe auf Euch! Zitieren
Tachyoon Geschrieben 2. Juli 2001 Geschrieben 2. Juli 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR> 3. wo ist der unterschied cout und printf? Zitieren
Hasi Geschrieben 2. Juli 2001 Geschrieben 2. Juli 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von MarkusX: <STRONG>2. danke für die beispiele, ich warte auf weitere zahlreiche </STRONG> Zitieren
gajUli Geschrieben 2. Juli 2001 Geschrieben 2. Juli 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von Tachyoon: <STRONG> cout << "Text" ; ist für einfache, unformatierte Textausgabe printf("Text %d Text",variable); ist für formatierte Textausgabe.</STRONG> Zitieren
Crush Geschrieben 2. Juli 2001 Geschrieben 2. Juli 2001 Na und, meine Programme laufen, C hat mich eh nicht interessiert ich konnte so gleich ins volle Einsteigen und bisher habe ich ALLES ohne fremde Hilfe zum Laufen gebracht. Ob C nun Zeiger hat oder nicht ist mir eh Wurscht. Es interessiert heute keinen mehr wie man das Ziel erreicht, sondern nur DASS! Außerdem besitze ich nur C++ Compiler warum sollte ich versuchen mit einem Ferrari auf der Autobahn mit 30 Km/h vor mich hinzutuckern? Zitieren
MarkusX Geschrieben 2. Juli 2001 Autor Geschrieben 2. Juli 2001 nein, bin ich nicht. Du kannst gerne einmal rumfragen wie gut unser Lehrer unterrichten kann. Ich vertrete sonst immer die Seite der Lehrer und stehe hinter Ihnen wenn es darum geht das Sie Ihren Stoff rüberbringen sollen. Beispiel Hardware Sachen allgemein usw. Da sitzt echt ganze Klasse zusammen und zeigt einem anderen etwas kooperativem Lehrer noch so manche Tricks. Aber bei C ist das 0 der Fall. Der Lehrer teilt mehr oder weniger die Blätter aus, geht sie mit uns durch und sagt da macht was draus. Nur das wir dann entweder keine zeit haben oder auf unseren Problemen sitzenbleiben müssen bringt uns halt ziemlich wenig! 2 aus unserer Klasse proggen C jeden Tag im Betrieb und diese 2 sind unsere einzige Ansprechstelle. Ich finde du kannst nicht einfach sagen, dass meine "Aktion" Scheiße ist, da ich nicht der jenige bin der nicht selbstständig arbeiten kann oder ständig nachfragt. Jedoch ist es nun einmal der Fall und ich dachte Ihr könntet mir weiterhelfen worauf ich immer noch setzte. Beispielprogramme oder Onlinedatenbanken mit Beispielen sind hier herzlich willkommen. Ich hoffe meine Situation hier somit klargestellt zu haben. MfG & schönen Abend MarkusX Zitieren
gajUli Geschrieben 2. Juli 2001 Geschrieben 2. Juli 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von Crush: <STRONG> Außerdem besitze ich nur C++ Compiler warum sollte ich versuchen mit einem Ferrari auf der Autobahn mit 30 Km/h vor mich hinzutuckern?</STRONG> Zitieren
Hasi Geschrieben 3. Juli 2001 Geschrieben 3. Juli 2001 Nochmal zum Thema Autobahn, also wenn du sagst C ist so was wie ein sagen wir mal Audi TT was ist dann Assembler fuer dich, das ist ja wohl ziemlich die simple gestricksteste (ich glaub ihr wisst wie ich das mein) Programmiersprache aber es die Programmiersprache mit der man alles aber auch wirklich alles machen kann, in diesem Fall muesste Assembler mein ehemaliger Polo sein, der selbst in seinem letzten Jahr immer stabil lief, wenn man weiss was man tut, denn das ist dass aller wichtigste nein wir wollen nicht sagen dass C++ ein Ferrari ist, ich wuerde so definieren C++ : Win98 C:Win 95 Assembler:Linux trotz allem schreibt dir das ein absoluter C++ Freak Hasi Zitieren
MarkusX Geschrieben 3. Juli 2001 Autor Geschrieben 3. Juli 2001 bitte zurück zum thema, habt ihr noch was für mich? wäre echt klasse. ich kann mich sonst echt bald von der brücke werfen ich verspreche euch mich auch sobald es zeitmäßig klappt dahinterzuklemmen! danke Zitieren
gajUli Geschrieben 3. Juli 2001 Geschrieben 3. Juli 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von MarkusX: bitte zurück zum thema, habt ihr noch was für mich? Zitieren
MarkusX Geschrieben 3. Juli 2001 Autor Geschrieben 3. Juli 2001 schön für dich uli! bist wahrscheinlich auch einer der alten Garde oder auf jeden Fall einer von denen, die die "nein mach alles selber" meinung vertreten! wie oft denn noch? ich habe im moment keien zeit und ich sehe das ich hier keine hilfe bekomme! keine weiteren kommentare mehr, da sonst das post geschlossen/gelöscht wird! wwc2k+1 sotb Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.