![]() |
| ||
| QBasic Nested for loop im taking a qbasic class and am having a very hard time on this program...here is the question: Using the ASCII table and the CHR$ function, write a program that prints the following output using a nested for next loop: A AB ABC ABCD ABCDE -------------------------------------------------------------------- heres what I have so far...i keep getting a "type mismatch": CLS FOR Outer = 1 TO 5 STEP 1 FOR in = CHR$(65) TO CHR$(70) <------TYPE MISMATCH????? PRINT in; NEXT in NEXT Outer what am i doing wrong? any help on this would be greatly appreciated....thanks :confused: |
| ||
| Re: need help please asap....very frustrated Quote:
... Look at your ASCII Table if you don't know off hand..... It is the Character A . Now, look at your code. For in = CHR$(65) Stop right there! If CHR$(65) gives a value of A and in is no doubt an integer value this is where you mismatch starts. You care comparing a Character String (albiet one character) to an Integer! So it unfortunately won't work. Can only compare like datatypes. So some Conversion will be needed and I think you need to check your logic for this code.... Hope this helps.... If not let me know if you need more help! |
| ||
| Re: QBasic Nested for loop I sill don't quite get it. Every time I try and switch it up to change values I get another error. I know im close but just cant figure it out. any suggestions? |
| ||
| Re: QBasic Nested for loop first of all, you don't need STEP, because the default step value is always 1. Secondly, A FOR statement is looking for an integer. CHR$() returns a character, which is not a number. Leave the CHR$() out of the FOR header. Look at the example below. FOR outer = 1 to 5 Now lets run through the code step by step. First time through, "outer" will equal 1. So the following statement would actually be "FOR in = 1 to 1". "in" will equal 1 as well. Next line "PRINT CHR$(in+64)" This will be the same as "PRINT CHR$(65)" because "in" is 1. Now the loops starts back from the top. This time, "outer" will equal 2. So therefore, the following FOR statement would really mean "FOR in = 1 to 2". So that FOR loop will run through twice. The first time "in" being 1 and the second time "in" being 2. Which would print CHR$(1+64) and CHR$(2+64). And the pattern repeats until "outer" finally equals 5. Hope this helped you a little. |
| ||
| Re: QBasic Nested for loop I just had a problem similar to this one. But I ended up making it harder than it really was. It all clicked when I figured out FOR is looking for integers instea of characters. Here's what I did: CLS FOR num = 32 TO 255 PRINT CHR$(num) NEXT num END It can't get more simple than that. |
| ||
| Re: QBasic Nested for loop The code below should work if Qbasic works at all like BCX: dim inner, outer FOR outer = 1 to 5 FOR inner = 1 to outer PRINT CHR$(inner + 64); ' stay on line NEXT innner PRINT ' new line feed NEXT outer |
| ||
| Re: QBasic Nested for loop Quote:
|
| All times are GMT -4. The time now is 4:38 am. |
Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC