brauche hilfe zum lösen einer aufgabe
-
Ich komme leider mit einer Aufgabenstellung überhaupt nicht klar.
Das Aufgabenblatt ist hier: https://www-docs.tu-cottbus.de/theoretische-informatik/btuauth/semester/2011/einfuehrung_programmierung/Uebung_7.pdf
es ist die Aufgabe 4.
Wir haben im Unterricht gelernt, dass man auch selber bibliotheken anlegen und diese benutzen kann, das ist alles was ich weiß, aber damit kann ich die aufgabe nicht lösen.
ich wäre für jede hilfe sehr dankbar!!!
-
1. Ich kann die Aufgabenstellung nicht sehen, da man sich einloggen muss.
2. Du solltest schon mit einer konkreteren Frage kommen als "Ich komme damit nicht klar". Was hast du denn bereits gemacht/versucht? Woran genau scheiterst du?
-
upps, stimmt, danke. gibt es eine Möglichkeit hier Bilder einzufügen? dann könnte ich einen screenshot machen es als Bild speichern und hochladen? Das Problem ist, dass ich die Aufgabenstellung nicht ganz verstehe. Wenn ich die Aufgaben hochladen kann und diese sichtbar sind kann ich ja nochmal genauer schreiben woran ich scheitere....
-
Kannst die Aufgabenstellung irgendwo hochladen und dann hier verlinken. Z.B. RapidShare
-
Nee, kann er die Aufgabenstellung nicht hochladen.
Er kann sie ja noch nicht mal abschreiben.
Aber er kann ja wohl erwarten, dass ihr eine gut geputzte Glaskugel besitzt.
-
icarus2 schrieb:
Kannst die Aufgabenstellung irgendwo hochladen und dann hier verlinken. Z.B. RapidShare
Noch einfacher :D: http://www.imagebanana.com/ oder http://imageshack.us/
-
oder noch zeitaufwändiger
:
Implementieren Sie die Funktion myprintf, welche in der Datei myio.h deklariert ist. Die Funktion erwartet als Parameter eine natürliche Zahl n und eine natürliche Zahl b und gibt die Darstellung von n zur Basis b auf die Standardausgabe aus. Als mögliche Basen sind 2, 8, 10 und 16 zugelassen. Geben Sie eine rekursive Lösung an! Die Funktion soll nur natürliche Zahlen für n und b zulassen. Ein Aufruf der Funktion myprintf mit einer nichtzulässigen Basis sollte nicht akzeptiert und der Nutzer mit einer entsprechenden Nachricht darauf hingewiesen werden.Durch die Anweisungsfolge
unsigned n = 185;
unsigned b = 2;
myprintf(n,b);
printf("\n");
b = 7;
myprintf(n,7);
printf("\n");
b = 8;
myprintf(n,b);
printf("\n");
b = 10;
myprintf(n,10);
printf("\n");
b = 16;
myprintf(n,b);
n = -37;
b = 2;
myprintf(n,b);
printf("\n");sollte
10111001
base 7 not supported
271
185
B9
Assertion failed: n>=0, file myio.c, line ?ausgegeben werden.
*Abzugeben sind drei Dateien (myio.h, myio.c und eine c-Datei mit dem Hauptprogramm, das obige Anweisungsfolge enthält).
so ist also die Aufgabenstellung.Ich habe jetzt in diesen paar Tagen auch sehr viel gemacht(aber auch viel mit Hilfe muss ich sagen). Mein Problem ganz zu Beginn, als ich den Beitrag eröffnete war es, dass ich nicht wirklich wusste was man von mir will.
Also nun bin ich zwar weiter, aber mir werden Fehlermeldungen angezeigt, wobei ich nicht vertshe, warumalso hier meine Datei MYIO.H
#ifndef MYIO_H #define MYIO_H void myprintf(int n, int b); #endif
hier MYIO.C
#include "myio.h" #include <assert.h> #include <stdio.h> void myprintf(int n, int b) { assert(n>=0); if(b==2||b==8||b==10||b==16) { int k; k=(n%b); if(n!=0) { n=(n/b); myprintf(n,b); putchar('0'+k); } } else { printf("base %i not supported",b); } }
und hier das Hauptprogramm
#include <stdio.h> #include "myio.h" int main(){ int n = 185; int b = 2; myprintf(n,b); printf("\n"); b = 7; myprintf(n,7); printf("\n"); b = 8; myprintf(n,b); printf("\n"); b = 10; myprintf(n,10); printf("\n"); b = 16; myprintf(n,b); n = -37; b = 2; myprintf(n,b); printf("\n"); }
als Fehlermeldung wird; undefined reference to myprintf angezeit, woher kommt das woran liegt das, könntet ihr mir da vielleicht weiterhelfen?????
-
Welche IDE benutzt du und hast du myio.c deinem Projekt hinzugefügt?
-
_matze schrieb:
Welche IDE benutzt du und hast du myio.c deinem Projekt hinzugefügt?
wie kann ich es denn dem Programm hinzufügen?
Und was ist eine IDE?
-
IDE bedeutet "Integrated Development Environment", auf Deutsch Entwicklungsumgebung. Etwas einfacher gesagt ist das das Programm, mit dem du Programme schreibst.
Beispiele sind Microsoft Visual Studio, CodeBlocks, Eclipse etc. Welche nutzt du?
-
Achsoo, ich benutze meistens Code-Blocks und manchmal notepadd++
-
Du musst auch bedenken, das bei Ziffer-Werten über 9, Buchstaben genommen werden.
Alsomyprintf(10,16);
ergibt ein 'A' und keinen ':'
-
XDX schrieb:
Achsoo, ich benutze meistens Code-Blocks und manchmal notepadd++
"undefined reference" bedeutet, dass du zwar den Prototypen zu der Funktion deklariert hast (das Ding im Header), dir aber die Definition fehlt. Das heißt, myio.c wird wohl gar nicht kompiliert und gelinkt. In einer IDE musst du deine .c-Datei einfach dem Projekt hinzufügen. Dann erledigt die IDE die Arbeit für dich. Wenn du ohne arbeitest, musst du eventuell mal dein Makefile anpassen.
-
dankesehr! also, da wir diese Hausaufgabe so abgeben müssen, also diese 3 Dateien einzeln hochladen müssen, glaube ich, dass das mit dem projekt hinzufügen nicht okay wäre, oder was meint ihr?
und wie passe ich den make-file an??? wäre echt super lieb wenn ihr mir helfen könntet :S
-
Bei Codeblocks ist das sehr einfach,
zunächst mal ein C-Grundgerüst erstellen
File > New > Project > Console application > C > Projektnamen vergeben > OK
jetzt hast du schon mal main.c
dann 2x via
File > New > Empty File
deine beiden zusätzlichen Dateien ins Projekt einfügen (du wirst extra danach gefragt) und Codeblocks compiliert dann immer alle 3 Dateien zusammen, fertig.
-
Hi, wenn ich das programm so teste wei es jetzt hier gepostet wurde bekomme ich die Fehlermeldung:
" ;9Assertion failed: n>=0,file myio.c, line 12 "This application has requested the Runtime to terminate it in an unusual way.
Please contact the application´s team for more information.Könnte mir vielleicht jemand sagen wie dieser Fehler zustande kommt?
Eigentlich müsste er ja B9 und nich ;9 ausgeben da man ja die basis 16 wählt ?
(Verwende notepad++ und Mingw compiler )
-
Das habe ich dir doch schon angedroht
Das liegt daran, dass die Buchstaben nicht direkt auf die Ziffern folgen.
Du kannst dich ja mal über ASCII schlau machen.
-
ich hab die selbe Aufgabe und habe das jetzt auch mal so probiert nur das bei mir statt:
10111001
base 7 not supported
271
185
B9
Assertion failed: n>=0, file myio.c, line ?das:
10111001
base 7 not supported
271
185
B9
n must be a natural numberausgegeben werden soll.
Nun die Frage wo ich das im Quelltext ändern muss damit sich die Ausgabe verändert?
-
achso ich nutze übrigens codeblocks...
-
Hast du ein
assert(n>=0);
in deinem Code?