Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Mr.Schrotti
Anmeldungsdatum: 05.12.2007 Beiträge: 13
|
Verfasst am: 05.12.2007, 19:03 Titel: Text von oben Links nach unten Rechts |
|
|
Hi,
wir haben am Montag in der Schule mit QBasic angefangen. Ist ja im Prinzip nicht so schwer. Nun Haben wir als Hausaufgabe auf ein Programm zu schreiben was unseren Namen von oben Links nach unten Rechts (schräg) anzeigt. Hab kein plan wie man sowas realisieren könnte :/
Gruß Mr.Schrotti |
|
Nach oben |
|
|
Stephan
Anmeldungsdatum: 05.10.2004 Beiträge: 358 Wohnort: Hessen - 20km Nördlich von Frankfurt am Main
|
Verfasst am: 05.12.2007, 20:05 Titel: |
|
|
Es ist doch recht unwarscheinlich,
das euer Lehrer euch Hausaufgaben aufgibt,mit Befehlen,die ihr nicht Gelernt habt.
Schau doch mal deine Unterlagen durch,da findest du bestimmt die Lösung,
wie du text an eine Bestimmte location printest.
Viel Glück _________________ 'Wir schätzen die Zeit erst, wenn uns nicht mehr viel davon geblieben ist.'
Leo Tolstoi |
|
Nach oben |
|
|
Mr.Schrotti
Anmeldungsdatum: 05.12.2007 Beiträge: 13
|
Verfasst am: 05.12.2007, 21:11 Titel: |
|
|
wir haben noch keine Zettel oder dergleichen bekommen. Die 1. Hausaufgabe (einen Währungsrechner programmieren) habe ich hinbekommen aber das mit derm Text n nich so wirklich. Hatte das in der Schule schon angefangen und hatte es einfach so gemacht.
Print "A"
Print " B"
Print " C"
...
...
allerdings meinte er dann das sei so nicht richtig.
Gruß Mr.Schrotti |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 05.12.2007, 21:14 Titel: |
|
|
wenn du selbst noch was dabei lernen willst, suche in der MonsterFAQ nach LOCATE... Auch FOR-Schleifen solltest du dir mal anschauen. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 05.12.2007, 21:18 Titel: |
|
|
Hallo,
auch wenn wir normalerweise keine fremden Hausaufgaben erledigen, will ich dir mal eine "Inspiration" liefern, wenn du tatsächlich keine Informationen vorliegen hast...
Code: | DIM n AS STRING
DIM x AS INTEGER, y AS INTEGER, z AS INTEGER
INPUT "Name: ", n
CLS
x = 1: y = 1: z = 1
DO
LOCATE y,x: PRINT MID$(n,z,1)
x=x+1
y=y+1
z=z+1
IF z>LEN(n) THEN z=1
LOOP UNTIL x>80 OR y>24
SLEEP
END |
Meintest du sowas?
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
Mr.Schrotti
Anmeldungsdatum: 05.12.2007 Beiträge: 13
|
Verfasst am: 05.12.2007, 21:32 Titel: |
|
|
Hab grad gegoogelt und es kompliziert in etwa so gemacht:
Locate X, Y: Print "H"
Locate X, Y: Print "A"
aber da scheint das da oben einfacher zu sein aber verstehen tuh ichs noch nich so wirklich. Naja haben auch grade mal eine stunden Informatik gehabt.
Gruß Mr.Schrotti
edit: Copy&Past kann ich eh nicht machen da ich Linux user bin und Qbasic in einer Dos Box laufen hab und iwie geht da kein Copy&Past |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4609 Wohnort: ~/
|
Verfasst am: 05.12.2007, 22:21 Titel: |
|
|
Im Texteditor speichern und unter QBASIC neu laden? _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 06.12.2007, 17:34 Titel: |
|
|
kommt qb mit linux'schen files zurecht?
windows' notepad denkt nicht dran, dass ein CR ein CRLF ist
deine "komplizierte" lösung ist garnet mal so "dumm", wenn mans per schleife erledigt
sebastians lösung macht eben das... in x,y stehen die koordinaten, an die wird hingeLOCATEd, und in z die position im text, an der mit mid$ ein einzelnes zeichen (die eins am schluss) rausextrahiert und gePRINTed wird
ich will AUCH in info programmieren xD _________________ MFG
Flo
Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.
zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich. |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4609 Wohnort: ~/
|
Verfasst am: 06.12.2007, 18:44 Titel: |
|
|
Mit dem richtigen Textverarbeitungsprogramm kannst du auch windows-like abspeichern. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
Mr.Schrotti
Anmeldungsdatum: 05.12.2007 Beiträge: 13
|
Verfasst am: 06.12.2007, 23:10 Titel: |
|
|
Flo hat Folgendes geschrieben: | kommt qb mit linux'schen files zurecht?
windows' notepad denkt nicht dran, dass ein CR ein CRLF ist
deine "komplizierte" lösung ist garnet mal so "dumm", wenn mans per schleife erledigt
sebastians lösung macht eben das... in x,y stehen die koordinaten, an die wird hingeLOCATEd, und in z die position im text, an der mit mid$ ein einzelnes zeichen (die eins am schluss) rausextrahiert und gePRINTed wird
ich will AUCH in info programmieren xD |
ich würde viel lieber eine sprache lernen mit der ich später mal was anfangen kann und das ist Qbasic in meinen augen nicht wirklich. |
|
Nach oben |
|
|
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 07.12.2007, 12:03 Titel: |
|
|
Also ich weiß, dass edit.com problos mit Linuxfiles klarkommt, und edit.com hatte in 1.0 ja qbasic.exe mit Editor-Parameter aufgerufen (deswegen war edit.com ja auch immer so schön klein ._.).
Ne Sprache mit der du später was anfangen kannst?
Da bist du hier goldrichtig: FreeBASIC.
Nachdem du mit Pointer, Sockets, pseudoOOP und all den ganzen Libs umgehen kannst, bist du perfekt gerüstet für C(++) & co. |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2510 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 07.12.2007, 23:43 Titel: |
|
|
Ein wichtiger Punkt ist natürlich noch, ob das Ganze sehr einfach im Textmodus oder ob es sogar grafisch erfolgen soll. Auf jeden Fall ist das Ganze ein klarer Fall einer SUB-Routine. Habe das Ganze im Textmodus einmal implementiert:
http://beilagen.dreael.ch/QB/DIAGSC_T.BAS
@Mr.Schrotti: Damit immer noch eine Hausaufgabe verbleibt: Die in dem Sinn "schöne" und anspruchsvolle Variante ist dasselbe für den Grafikmodus zu implementieren, und zwar dort so, dass ich nebst Text und Startpunkt zwei Richtungsvektoren dem Unterprogramm mitgeben kann und die Buchstaben auch gedreht/entsprechend kursiv verzerrt erscheinen. Als kurze Anleitung:
- Unterprogramm der Art
SUB GibVerzerrtAus(txt$, xPos!, yPos!, HVektX!, HVektY!, VVektX!, VVektY!)
- Innerhalb vom Unterprogramm: Text mit PRINT an freier Stelle ausgeben und mit POINT() die Punkte auslesen
- Am besten in SCREEN 12 arbeiten, Zeichengrösse ist dort 8x16 Punkte _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
Mr.Schrotti
Anmeldungsdatum: 05.12.2007 Beiträge: 13
|
Verfasst am: 06.01.2008, 17:40 Titel: |
|
|
soo danke erstma für die hilfe jez wirds morgen halbwegs ernst schreiben ne arbeit :/ und kein plan wie die wird... Hab nur ne arbeit vom letzten jahr gesehen. da sollte man Programmstrukturen beschreiben Struktogramm erklähren und eine Prüfschleife mir For....Next dokumentieren und analysieren ... das problem ist nur bei aufgabe eins hab ich keine struktur erkannt is find ich keine struktur drin zumal das gar kein QBasic Programm ist sieht ungefär so aus:
Code: | 10 Initialisieren
20 GOSUB 100
30 GOSUB 200
40 GOSUB 300
50 END
100 1. Programmmodul
180 RETURN
200 2. Programmmodul
260 RETURN
300 3. Programmmodul
390 RETURN |
|
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4609 Wohnort: ~/
|
Verfasst am: 06.01.2008, 17:58 Titel: |
|
|
Ich habe keine Ahnung von korrekten Struktogrammen, aber hier wird einfach hintereinander in drei Unterprogramme verzweigt und wieder zurückgekehrt. Würde man heute in QBASIC mit SUB machen. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
Mr.Schrotti
Anmeldungsdatum: 05.12.2007 Beiträge: 13
|
Verfasst am: 06.01.2008, 21:30 Titel: |
|
|
hab hier noch was:
Diese prüfschleife, mit For...Next geshcrieben, ist zu dokumentieren und zu analysieren
Code: |
10 REM Prüfschleife PRÜFSCHL.BAS
20 INPUT "WOrt in Großbuchstaben" : W$
30 L=LEN(W$)
40 FOR K=1 TO L
50 IF MID$(W$,K,1)="E" THEN X=K ; K=L
60 NEXT
70 IF X <> 0 THEN 100
80 PRINT "WORT enthält kein E"
90 END
100 PRINT X, " Buchstabe = E
110 END
|
ich würde das so beschreiben:
10 Name des Programms
20 Eingabe des Wortes und speichern in String W
hier scheitert mein wissen von qb leider schon geht erst bei 70 weiter
70 wenn X ist kleiner oder größer als 0 dann gehe zu zeile 100
80 Zeige Wort enthält kein E
90 Programm ende
100 Schreibe X (????????)
110 Programm ende
Gruß Mr.Schrotti |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4609 Wohnort: ~/
|
Verfasst am: 06.01.2008, 22:46 Titel: |
|
|
Wenn es an den Befehlen hapert: QBASIC an eine integrierte Hilfsdatei, in der die einzelnen Befehle erklärt werden. Ansonsten kannst du auch in der FreeBASIC-Referenz nachschauen, ist zum größten Teil identisch.
LEN gibt dir die Länge eines Strings zurück. FOR [...] NEXT ist eine Schleife, bei der der Wert K zuerst auf 1 gesetzt und dann bei jedem Schleifendurchlauf um 1 erhöht wird. Wenn K den Wert L erreicht hat, findet ein letzter Schleifendurchlauf statt, dann geht es hinter dem NEXT weiter. Die Schleife ist das eigentlich Interessante an dem Programm.
Nebenbei: in Zeile 50 muss statt des Strichpunkts ein Doppelpunkt, Zeile 70 sollte wohl "GOTO 100" statt nur "100" heißen, und in Zeile 100 fehlt hinten ein Anführungszeichen.[/url] _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2510 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 07.01.2008, 09:06 Titel: |
|
|
Mr.Schrotti hat Folgendes geschrieben: | Code: | 30 L=LEN(W$)
40 FOR K=1 TO L
50 IF MID$(W$,K,1)="E" THEN X=K ; K=L
60 NEXT |
|
Für exakt diesen Fall gibt es sonst die INSTR()-Funktion.
Mr.Schrotti hat Folgendes geschrieben: | Code: | 70 IF X <> 0 THEN 100 |
|
Nur als Bemerkung: Es ist absolut keine gute Idee, mit unitialisierten Variablenwerten zu arbeiten! Es gibt auch Programmiersprachen/Compiler, wo eine Variable zu Beginn undefiniert ist, d.h. Du musst mit einem Zufallswert rechnen. Diese Tatsache hat im heutigen Internet-Zeitalter sogar eine verheerende Wirkung: Viele Software-Sicherheitslücken beruhen inzwischen auf uninitialisierten Variablen, d.h. der Angreifer präpariert den Speicher vor dem Aufruf derart vor, dass der schlecht programmierte Programmteil beispielsweise einen willkürlichen Code ausführt, den er aus den unitialisierten Variablen bekommt.
Dies gilt speziell für PHP, wo viele Shared Hosting-Anbieter aus Kompatibilitätsgründen register_globals immer noch auf on haben...
Zurück zum Beispiel: Ein explizites
zu Beginn behebt das Problem der uninitialisierten Variablen eigentlich vollständig. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
Mr.Schrotti
Anmeldungsdatum: 05.12.2007 Beiträge: 13
|
Verfasst am: 07.01.2008, 21:53 Titel: |
|
|
danke nochmal für all die Tipps hab heut ja die arbeit geschrieben und es war zu 100% die gleiche
Gruß Mr.Schrotti |
|
Nach oben |
|
|
|