c programmieren

Foren-Suche
Alter Haudegen: Ist seit mindestens 5 Jahren bei GG.de registriertAlter Haudegen: Ist seit mindestens 3 Jahren bei GG.de registriertLoyalist: Ist seit mindestens einem Jahr bei GG.de dabeiBronze-Reporter: Hat Stufe 6 der Reporter-Klasse erreichtKommentierer: Hat 100 EXP mit Comments verdientVorbild: Hat mindestens 100 Kudos erhaltenSammler: Hat mindestens 50 Spiele in seiner SammlungProfiler: Hat sein Profil komplett ausgefüllt
Zenturio_Kratos (12 Trollwächter, 1162 EXP)
Bis zu den griechischen Kalenden.
User ist offline. Zuletzt gesehen vor 15 Wochen 6 Tagen Offline
Beigetreten: 12.9.2009
Inhalte: 26

hallo, kennt sich hier zufällig jemand mit c aus, ich muss morgen ein programm abgeben komme aber nicht weiter.

hier wäre die aufgebenstellung

Schreiben Sie ein Programm, das einen Buchstaben als Input übernimmt und den dazu gehörenden Großbuchstaben ausgibt. Das Programm soll dabei logisch in Funktionen gegliedert sein und diese Umwandlung über Bitoperationen erreichen.
Input

Das Programm gibt "Please enter a character: " aus und erwartet die Eingabe eines einzelnen Buchstaben.
Output

Das Programm gibt zuerst drei Bit-Repräsentationen in jeweils einer Zeile aus:

* Input:

"Input: [8 Bit]\n"

* verwendete Bitmaske:

"Bitmask: [8 Bit]\n"

* Output:

"Output: [8 Bit]\n"

Danach gibt das Programm das Ergebnis der Umwandlung in einer weiteren Zeile aus: "Your result: [Ergebnis]\n"

Die Texte inklusive eckigen Klammern werden durch die entsprechenden Werte ersetzt.
Funktion

Durch die interne Repräsentation von Zeichen in einem char können Klein- auf Großbuchstaben durch die Anwendung einer Bitmaske geändert werden. Ihr Program muss mindestens zwei Funktionen (außer der Hauptfunktion) beinhalten:
Umwandlung in Großbuchstaben

Wenn es sich bei dem übergebenen Zeichen um einen Kleinbuchstaben handelt, wird durch eine Bitoperation der entsprechende Großbuchstabe gefunden und retourniert. Handelt es sich um keinen Kleinbuchstaben, wird das ursprüngliche Zeichen wieder retourniert.
Bitweise Ausgabe

Diese Funktion gibt die Bitrepräsentation eines übergebenen Zeichens auf der Konsole aus.
Fehlerbehandlung

Das Programm reagiert auf Falscheingaben (kein Kleinbuchstabe) in dem es die Eingabe unverändert wieder ausgibt. Keinerlei explizite Fehlermeldung sowie keine alternativen Abläufe sind erwünscht. Daraus ergibt sich auch, dass bei einer leeren Eingabe (also nur ein '\n') auch die Ausgabe ein '\n' bleibt.
Beispielausgaben
Erfolgsfall

Please enter a character: a
Input: 01100001
Bitmask: 11011111
Output: 01000001
Your result: A

Fehlerfall

Please enter a character: B
Input: 01000010
Bitmask: 11011111
Output: 01000010
Your result: B

Please enter a character: +
Input: 00101011
Bitmask: 11011111
Output: 00101011
Your result: +

Spezifikation

* Erlaubte Bibliotheken
o stdio.h
* Struktur
o eine eigene Funktion zur bitweisen Ausgabe
o eine eigene Funktion zur Änderung des Buchstaben
* Funktion
o Die Umrechnung hat mittels Bitrepräsentationen zu erfolgen
* Output
o Alle Ausgaben haben auf stdout zu erfolgen

____________________________________

Auf den Alkohol - die Ursache und die Lösung aller Probleme!
Homer Jay Simpson

Dieser User unterstützt GG seit sechs Jahren mit einem Abonnement.Alter Haudegen: Ist seit mindestens 5 Jahren bei GG.de registriertGold-Jäger: Hat 75 Erfolge erreicht -- Wahnsinn!Gold-Gamer: Hat den GamersGlobal-Rang 20 erreichtFROGG: Als "Friend of GamersGlobal" darf sich bezeichnen, wer uns 25 Euro spendet.Alter Haudegen: Ist seit mindestens 3 Jahren bei GG.de registriertMeister-Poster: Sammelte 5000 EXP durch ForumspostsDebattierer: Hat 5000 EXP durch Comments erhaltenDieser User hat uns zur Yakuza 0 Aktion mit einer Spende von 25 Euro unterstützt.Dieser User hat an der Weihnachtsfeier 2016 teilgenommenDieser User hat uns an Weihnachten 2016 mit einer Spende von 100 Euro unterstützt.Dieser User hat uns an Weihnachten 2016 mit einer Spende von 50 Euro unterstützt.Dieser User hat uns an Weihnachten 2016 mit einer Spende von 25 Euro unterstützt.Silber-Jäger: Hat Stufe 10 der Jäger-Klasse erreichtDieser User hat uns zur TGS 2016 Aktion mit einer Spende von 50 Euro unterstützt.Dieser User hat uns zur TGS 2016 Aktion mit einer Spende von 25 Euro unterstützt.
Olphas (24 Trolljäger, 47216 EXP)
hackt sich durch San Francisco
User ist offline. Zuletzt gesehen vor 1 Stunde 9 Minuten Offline
Beigetreten: 18.7.2009
Inhalte: 11

Was genau ist denn jetzt die Frage? Einzelne Fragen könnte ich vielleicht heut abend mal nachschauen, wenn ich zu Hause bin (mein C ist etwas eingerostet, aber vieles von dem oben hab ich in der einen oder anderen Form sicher schon mal geschrieben) aber das ganze Programm wollt ich dann doch nicht zum Feierabend schreiben.

Generell kannst Du erstmal die Binärzahl für die Ausgabe erzeugen. Die Funktion dazu müsste die Zahl am besten nach dem Divisionsrestverfahren in einzelne Bits zerlegen, die dann in einem Array oder String gespeichert werden. Den Output sollst Du vermutlich ebenfalls berechnen statt einfach die eine Stelle auszutauschen.

Für die Änderung des Buchstabens macht man sich einerseits zu Nutze, dass chars im Prinzip Zahlen sind, die für ihren ASCII-Code stehen und andererseits, dass sie genau 32 auseinanderliegen (zB. A:65, a: 97). Das heißt der einzige Unterschied ist das 32er-Bit. Die Bitmaske ist so ausgelegt, dass bei einem bitweise & alle Stellen gleich bleiben, bis auf das 32 Bit. Das ist danach immer 0, da sie bei Kleinbuchstaben vorher 1 war und 1&0 0 ergibt. Wenn ich mich richtig erinnere, wurde das in etwa so geschrieben: 'a' &32 , aber da möcht ich gleich nicht drauf schwören, es ist wirklich schon lang her. Das heißt aus einer 97 wird so eine 65 und so weiter. Um sicherzustellen, dass nur Kleinbuchstaben bearbeitet werden kann man z.B. abfragen, ob der char-Wert zwischen >=97 und <=122 ist.

Das ist so das, was mir spontan einfällt, ich schau später noch mal rein, wenn ich zu Hause bin.

Jetzt ist erstmal noch ein bisschen PHP/SQL/HTML/javascript/Ajax dran.

Ich hoffe ich hab jetzt nicht totalen Stuß erzählt. Wenn man nach C nur noch andere Programmiersprachen wie java, VB oder PHP macht, verlernt man erstaunlich viel die Kleinigkeiten, die in den späteren Sprachen alle nebenher durch Funktionen oder Klassen erledigt werden die es schon vorgefertigt gibt.

____________________________________

Ohne Arme keine Kekse!

Alter Haudegen: Ist seit mindestens 5 Jahren bei GG.de registriertAlter Haudegen: Ist seit mindestens 3 Jahren bei GG.de registriertLoyalist: Ist seit mindestens einem Jahr bei GG.de dabeiBronze-Reporter: Hat Stufe 6 der Reporter-Klasse erreichtKommentierer: Hat 100 EXP mit Comments verdientVorbild: Hat mindestens 100 Kudos erhaltenSammler: Hat mindestens 50 Spiele in seiner SammlungProfiler: Hat sein Profil komplett ausgefüllt
Zenturio_Kratos (12 Trollwächter, 1162 EXP)
Bis zu den griechischen Kalenden.
User ist offline. Zuletzt gesehen vor 15 Wochen 6 Tagen Offline
Beigetreten: 12.9.2009
Inhalte: 26

danke für deine hilfe, verstehe zwar was gemeint ist habe aber erst vorige woche mit c begonnen, glaub nicht dass ich nen brauchbaren quellcode schaffe

____________________________________

Auf den Alkohol - die Ursache und die Lösung aller Probleme!
Homer Jay Simpson

Alter Haudegen: Ist seit mindestens 5 Jahren bei GG.de registriertAlter Haudegen: Ist seit mindestens 3 Jahren bei GG.de registriertLoyalist: Ist seit mindestens einem Jahr bei GG.de dabeiBronze-Reporter: Hat Stufe 6 der Reporter-Klasse erreichtKommentierer: Hat 100 EXP mit Comments verdientVorbild: Hat mindestens 100 Kudos erhaltenSammler: Hat mindestens 50 Spiele in seiner SammlungProfiler: Hat sein Profil komplett ausgefüllt
Zenturio_Kratos (12 Trollwächter, 1162 EXP)
Bis zu den griechischen Kalenden.
User ist offline. Zuletzt gesehen vor 15 Wochen 6 Tagen Offline
Beigetreten: 12.9.2009
Inhalte: 26

vielleicht kannst du mir bei dem problem weiterhelfen, wie bekomme ich aus einem eingegeben buchstaben zB a eine binärzahl?

____________________________________

Auf den Alkohol - die Ursache und die Lösung aller Probleme!
Homer Jay Simpson

Dieser User unterstützt GG seit sechs Jahren mit einem Abonnement.Alter Haudegen: Ist seit mindestens 5 Jahren bei GG.de registriertAlter Haudegen: Ist seit mindestens 3 Jahren bei GG.de registriertSilber-Jäger: Hat Stufe 10 der Jäger-Klasse erreichtDieser User hat uns an Weihnachten 2011 mit einer Spende von 11 Euro unterstützt.GG-Supporter: hat einmalig 10 Euro gespendetBronze-Jäger: Hat Stufe 5 der Jäger-Klasse erreichtVielspieler: Hat 250 Spiele in seine Sammlung eingetragenLoyalist: Ist seit mindestens einem Jahr bei GG.de dabeiBronze-Reporter: Hat Stufe 6 der Reporter-Klasse erreichtStar: Hat 1000 Kudos für eigene News/Artikel erhaltenFleißposter: Hat 200 EXP mit Forumsposts verdientKommentierer: Hat 100 EXP mit Comments verdientVorbild: Hat mindestens 100 Kudos erhaltenTop-News-Schreiber: Hat mindestens 5 Top-News geschriebenSammler: Hat mindestens 50 Spiele in seiner Sammlung
floxyz (16 Übertalent, 4853 EXP)
Guten Tag!
User ist offline. Zuletzt gesehen vor 2 Stunden 5 Minuten Offline
Beigetreten: 21.5.2009
Inhalte: 42
Zenturio_Kratos schrieb:

vielleicht kannst du mir bei dem problem weiterhelfen, wie bekomme ich aus einem eingegeben buchstaben zB a eine binärzahl?

Jeder Buchstabe (char) ist intern als ganze Zahl (integer) gespeichert. Wenn du dir jetzt eine Funktion schreibst die einen int in binär umwandelt (gibts ja durchaus schöne Algorithmen, zum Beispiel mit modulo) dann kannst du das leicht erreichen mit nicht mehr als 10 Zeilen Code, bzw. kannst du das direkt in die main einarbeiten (ist nicht unbedingt schön, aber ok) und dann die binäre Zahl in einem Array abspeichern (da es ja für binäre Zahlen keinen Datentyp gibt).

____________________________________

„Twenty years from now you will be more disappointed by the things that you didn't do than by the ones you did do. So throw off the bowliness. Sail away from the safe harbor. Catch the trade winds in your sails. Explore. Dream. Discover.„ --Mark Twain

Follow me on https://twitter.com/floxyz_

Betatester: War bei der Closed Beta von GamersGlobal (März bis Mai 2009) dabeiPartner: Macht eine Fan- oder andere Site, die uns gefälltAlter Haudegen: Ist seit mindestens 5 Jahren bei GG.de registriertGG-Gründungsfan: Hat in 2009 einmalig 25 Euro gespendetAlter Haudegen: Ist seit mindestens 3 Jahren bei GG.de registriertMeister-Tester: Hat 10 Spiele-/Technik-Tests veröffentlichtGG-Supporter: hat einmalig 10 Euro gespendetTop-Verlinker: Linkt mit Grafik auf GamersGlobal.deVielspieler: Hat 250 Spiele in seine Sammlung eingetragenBronze-Archivar: Hat Stufe 5 der Archivar-Klasse erreichtLoyalist: Ist seit mindestens einem Jahr bei GG.de dabeiBronze-Reporter: Hat Stufe 6 der Reporter-Klasse erreichtTester: Hat 5 Spiele- oder Hardwaretests veröffentlichtScreenshot-Geselle: Hat 500 Screenshots hochgeladenDatenbank-Geselle: Hat 100 Steckbriefe angelegtStar: Hat 1000 Kudos für eigene News/Artikel erhalten
Havoc (16 Übertalent, 4742 EXP)
User ist offline. Zuletzt gesehen vor 7 Wochen 3 Tagen Offline
Beigetreten: 16.3.2009
Inhalte: 104

Mir war gerade langweilig. Ich habe dir mal kurz ein Beispielprogramm geschrieben, dass eine char Variable in Binärcode ausgibt:

Havoc schrieb:

#include <stdio.h>

void CharToBin (const char c)
{
printf ("%c in binary: ", c);

for (int i = 7; i >= 0; i--)
{
if ((1 << i) & c)
printf ("1");
else
printf ("0");
}

printf ("\n");
}

int main (int argc, char *argv[])
{
char c = 'a';

CharToBin (c);

getchar ();

return 0;
}

Alter Haudegen: Ist seit mindestens 5 Jahren bei GG.de registriertAlter Haudegen: Ist seit mindestens 3 Jahren bei GG.de registriertLoyalist: Ist seit mindestens einem Jahr bei GG.de dabeiBronze-Reporter: Hat Stufe 6 der Reporter-Klasse erreichtKommentierer: Hat 100 EXP mit Comments verdientVorbild: Hat mindestens 100 Kudos erhaltenSammler: Hat mindestens 50 Spiele in seiner SammlungProfiler: Hat sein Profil komplett ausgefüllt
Zenturio_Kratos (12 Trollwächter, 1162 EXP)
Bis zu den griechischen Kalenden.
User ist offline. Zuletzt gesehen vor 15 Wochen 6 Tagen Offline
Beigetreten: 12.9.2009
Inhalte: 26

danke, jetzt komm ich weiter, hat mir echt geholfen lol

____________________________________

Auf den Alkohol - die Ursache und die Lösung aller Probleme!
Homer Jay Simpson

Kommentar hinzufügen

Neuen Kommentar abgeben
(Antworten auf andere Comments bitte per "Antwort"-Knopf.)