Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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:

Geschrieben

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.

Geschrieben

Hier ist ein Rechner mit Punkt vor Strich funktion, allerdings mehr als 250 Zeilen musst halt überflüssiges rauslöschen (ascii codes etc.)

:D:D:D

//*****************************************************************

//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.)

Geschrieben

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!!! :P

Bdanke mich im vorraus

MfG markusX

Geschrieben

Hier hab ich noch mal ein Programm (diesmal mit Zeigern!! :D:D:D )

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

Geschrieben

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

Geschrieben

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ß.

Geschrieben

<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>

Geschrieben

hm

1. es gibt (leider) zeiger in C

2. danke für die beispiele, ich warte auf weitere zahlreiche :D

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

Geschrieben

<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>

Geschrieben

<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>

Geschrieben

<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>

Geschrieben

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?

Geschrieben

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

Geschrieben

<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>

Geschrieben

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 :D:D:D:D

trotz allem schreibt dir das ein absoluter C++ Freak

Hasi

Geschrieben

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

Geschrieben

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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

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

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...