Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Text von oben Links nach unten Rechts

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mr.Schrotti



Anmeldungsdatum: 05.12.2007
Beiträge: 13

BeitragVerfasst am: 05.12.2007, 18:03    Titel: Text von oben Links nach unten Rechts Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Stephan



Anmeldungsdatum: 05.10.2004
Beiträge: 358
Wohnort: Hessen - 20km Nördlich von Frankfurt am Main

BeitragVerfasst am: 05.12.2007, 19:05    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Mr.Schrotti



Anmeldungsdatum: 05.12.2007
Beiträge: 13

BeitragVerfasst am: 05.12.2007, 20:11    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 05.12.2007, 20:14    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 05.12.2007, 20:18    Titel: Antworten mit Zitat

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
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mr.Schrotti



Anmeldungsdatum: 05.12.2007
Beiträge: 13

BeitragVerfasst am: 05.12.2007, 20:32    Titel: Antworten mit Zitat

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 zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 05.12.2007, 21:21    Titel: Antworten mit Zitat

Im Texteditor speichern und unter QBASIC neu laden? grinsen
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 06.12.2007, 16:34    Titel: Antworten mit Zitat

kommt qb mit linux'schen files zurecht?
windows' notepad denkt nicht dran, dass ein CR ein CRLF ist happy

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 06.12.2007, 17:44    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Mr.Schrotti



Anmeldungsdatum: 05.12.2007
Beiträge: 13

BeitragVerfasst am: 06.12.2007, 22:10    Titel: Antworten mit Zitat

Flo hat Folgendes geschrieben:
kommt qb mit linux'schen files zurecht?
windows' notepad denkt nicht dran, dass ein CR ein CRLF ist happy

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
Benutzer-Profile anzeigen Private Nachricht senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 07.12.2007, 11:03    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 07.12.2007, 22:43    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mr.Schrotti



Anmeldungsdatum: 05.12.2007
Beiträge: 13

BeitragVerfasst am: 06.01.2008, 16:40    Titel: Antworten mit Zitat

soo danke erstma für die hilfe lächeln 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 grinsen 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
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 06.01.2008, 16:58    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Mr.Schrotti



Anmeldungsdatum: 05.12.2007
Beiträge: 13

BeitragVerfasst am: 06.01.2008, 20:30    Titel: Antworten mit Zitat

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 traurig 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
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 06.01.2008, 21:46    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 07.01.2008, 08:06    Titel: Antworten mit Zitat

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
Code:
X = 0

zu Beginn behebt das Problem der uninitialisierten Variablen eigentlich vollständig.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mr.Schrotti



Anmeldungsdatum: 05.12.2007
Beiträge: 13

BeitragVerfasst am: 07.01.2008, 20:53    Titel: Antworten mit Zitat

danke nochmal für all die Tipps hab heut ja die arbeit geschrieben und es war zu 100% die gleiche grinsen


Gruß Mr.Schrotti
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz