| Программирование на Qbasic |
| IwanS | Дата: 10:47 08.07.2008 | Сообщение # 1 |
Администратор
Сообщений: 1849
Статус: не в сети
| Всем привет! Продолжаем добрую традицию помогать всем посетителям в программировании на QBasic. Напоминаю, что у нас есть самоучитель по qbasic (1 часть и 2 часть). Ждем ваших задач и наших решений! Для большей наглядности вы можете прикрепить картинку с формулой из задачи. Для этого напечатайте формулу в Microsoft Word и нажмите кнопку PrtScr SysRq. После этого запускаем mspaint и нажимаем Правка -> Вставить. Выделяем область с формулой и нажимаем Копировать в файл. Теперь нажимаем Файл -> Открыть и пересохраняем нашу картинку в формате JPEG. Разрешено прикреплять картинки только в форматах JPEG или GIF! Техзадание - точное и четкое определение задачи, стоящей перед программистом. В техзадании должно содержаться достаточно сведений, чтобы человек мог написать адекватную запросу программу. При этом нужно уметь не просто перепечатать задание преподавателя, а понимать его смысл и быть готовым ответить на вопросы по заданию. Без нормального техзадания лично я помогать с программированием не буду! Строгому наказанию подлежит несоблюдение правил орфографии и пунктуации. Пишите грамотно, правильно расставляйте запятые. Иначе в коде мы тоже будем косячить так, что фиг разберешь, что там вообще написано!
Изменил IwanS - Четверг, 12.02.2009, 17:21
|
|
| |
| | |
| GreatEvilGod | Дата: 22:30 22.06.2010 | Сообщение # 391 |
Модератор
Сообщений: 238
Награды: 4
Статус: не в сети
| Paris, кстати, возможно это случайность, но у вас в двух задачах прослеживается одна и та же ошибка, а именно: и я это к чему, когда вы выполняете операцию присваивания, сначала пишите ту переменную которой хотите задать новое значение, потом оператор присваивания (в qb это "="), потом значение которое хотите положить в переменную т.е. в ваших случаях так: b = imax и p = a(i) Обратите на это внимание.
|
|
| |
| | |
| Paris | Дата: 00:58 24.06.2010 | Сообщение # 392 |
Новичок
Сообщений: 18
Статус: не в сети
| Quote но у вас в двух задачах прослеживается одна и та же ошибка Вот этого я как раз и незнала, спасибо за информацию, запомню на будущее))) Добавлено (24.06.2010, 00:58) --------------------------------------------- Help please!! Нашла задачку, решила попробовать, но что то вообще намудрила, помогите разобраться пожалуйста... Программа дожна напечатать произведения всех положительных пар элементов из массивов X и Y Например: X -8 5 -3 7 6 9 Y 3 2 -6 3 -1 2 Ответ: 5*2, 7*3, 9*2 Code CLS REM "Vvod massivov X i Y" INPUT "Vvedite colichestvo elementov v mssive:"; n DIM x(n) FOR i = 1 TO n PRINT "Vvedite"; i; "element massiva X:"; INPUT x(i) NEXT i PRINT " " m = n DIM y(m) FOR j = 1 TO m PRINT "Vvedite"; j; "element massiva Y:"; INPUT y(j) NEXT j PRINT "X "; FOR i = 1 TO n PRINT x(i); " "; NEXT i PRINT " " PRINT "Y "; FOR j = 1 TO m PRINT y(j); " "; NEXT j PRINT " "
REM "Poisk mnogitelei", "Отсюда и начинаются пробемы.... Незнаю как сдеать чтобы масивы обрабатывались синхронно и естесственно перемножались и выводиись на печать"
FOR i = 1 TO n FOR j = 1 TO m IF x(i) <= 0 AND y(j) <= 0 THEn GOTO 130 p = x(i) * y(j) PRINT x(i); "*"; y(j); "="; p 120 NEXT j 130 NEXT i
_____________________________________________________________ ОЛОЛО
Изменил Paris - Вторник, 22.06.2010, 23:07
|
| |
| | |
| IwanS | Дата: 08:15 24.06.2010 | Сообщение # 393 |
Администратор
Сообщений: 1849
Статус: не в сети
| Paris, Code CLS INPUT "Vvesti dlinu massivov: ", n DIM x(n) DIM y(n) FOR i = 1 TO n PRINT "Vvesti "; i; " element massiva X: "; INPUT x(i) PRINT "Vvesti "; i; " element massiva Y: "; INPUT y(i) NEXT i PRINT PRINT "X: "; FOR i = 1 TO n PRINT x(i); " "; NEXT i PRINT PRINT "Y: "; FOR i = 1 TO n PRINT y(i); " "; NEXT i PRINT : PRINT FOR i = 1 TO n IF x(i) > 0 AND y(i) > 0 THEN PRINT x(i); " * "; y(i); " = "; x(i) * y(i) NEXT i
|
|
| |
| | |
| GreatEvilGod | Дата: 08:26 24.06.2010 | Сообщение # 394 |
Модератор
Сообщений: 238
Награды: 4
Статус: не в сети
| Вот решение: Code CLS INPUT "Vvedite colichestvo elementov v mssive: ", n DIM x(n) FOR i = 1 TO n PRINT "Vvedite"; i; " element massiva X:"; INPUT " ", x(i) NEXT i PRINT " " DIM y(n) FOR i = 1 TO n PRINT "Vvedite"; i; " element massiva Y:"; INPUT " ", y(i) NEXT i
PRINT " " PRINT "X "; FOR i = 1 TO n PRINT x(i); " "; NEXT i PRINT " " PRINT "Y "; FOR i = 1 TO n PRINT y(i); " "; NEXT i
PRINT " " PRINT " " FOR i = 1 TO n IF (x(i) > 0) AND (y(i) > 0) THEN p = x(i) * y(i) PRINT x(i); "*"; y(i); "="; p End If NEXT i Теперь по поводу замечаний к вашей реализации: 1) Зачем постоянно использовать конструкцию "GOTO #" выучите "If .... Then .... Else .... End IF" 2) Зачем нужна переменная m если она всегда равна переменной n 3) Что бы обрабатывать массивы синхронно нужно использовать один цикл, а не два. В связи с этим отпадает необходимость в использовании переменной j. P.S. Блин, опоздал...
Изменил GreatEvilGod - Четверг, 24.06.2010, 08:28
|
|
| |
| | |
| IIaHuKeP | Дата: 11:55 24.06.2010 | Сообщение # 395 |
Новичок
Сообщений: 6
Статус: не в сети
| вапрос как копирывать и вставлять сюда из Qbasic?
|
| |
| | |
| Paris | Дата: 16:10 24.06.2010 | Сообщение # 396 |
Новичок
Сообщений: 18
Статус: не в сети
| аааа... я думала, для разных массивов нужно разные значения использовать, работать с GOTO как то проще, ладно поизучаю ещё раз IF..... Спасибо ребята)))) Чтоб я без вас делала, даж незнаю..
_____________________________________________________________ ОЛОЛО
|
| |
| | |
| IwanS | Дата: 16:32 24.06.2010 | Сообщение # 397 |
Администратор
Сообщений: 1849
Статус: не в сети
| IIaHuKeP, я сохраняю код и открываю его блокнотом. У меня все в одной папке, поэтому занимает ровно 4 клика (2 на сохранение, 2 на открытие блокнотом, который выставлен редактором по-умолчанию).
|
|
| |
| | |
| IIaHuKeP | Дата: 18:25 24.06.2010 | Сообщение # 398 |
Новичок
Сообщений: 6
Статус: не в сети
| ооооомг.... не понял малёха))))))) преметивно можеш обьяснить на кнопках))))))
|
| |
| | |
| GreatEvilGod | Дата: 18:36 24.06.2010 | Сообщение # 399 |
Модератор
Сообщений: 238
Награды: 4
Статус: не в сети
| IIaHuKeP, ну приколол! IwanS, тебе и так на пальцах объяснил! Сначала через основное меню программы: Файл ---> Сохранить как Потом для сохраненного файла: открыть с помощью ---> Блокнот P.S. Сам юзал этот способ, но теперь с переходом на "Geany" хватает: Ctrl+C ---> Ctrl+V
Изменил GreatEvilGod - Четверг, 24.06.2010, 18:39
|
|
| |
| | |
| Lunatik | Дата: 08:31 26.06.2010 | Сообщение # 400 |
Новичок
Сообщений: 6
Статус: не в сети
| Помогите пожалуйста составить 4 программы на языке QBasik: 1. Составить программу для графического изображения футбольного поля. 2. Составить программу для графического изображения баскетбольной площадки. 3. Составить программу для графического изображения ванны плавательного бассеина (5 дорожек). 4. Составить программу для графического изображения хоккейного поля. Спасибо заранее.
|
| |
| | |
| GreatEvilGod | Дата: 12:42 26.06.2010 | Сообщение # 401 |
Модератор
Сообщений: 238
Награды: 4
Статус: не в сети
| Quote (Lunatik) 1. Составить программу для графического изображения футбольного поля. Code SCREEN 7 color 15 paint (1,1),2 circle (160, 100), 22, 15, 0, 6.28, 1/1 circle (160, 100), 3, 15, 0, 6.28, 1/1
paint (160, 100) line (160,10)-(160,190) line (15,10)-(305,190), 15, b circle (41, 100), 22, 15, 0, 6.28, 1/1 line (16,11)-(53,189), 2, bf circle (41, 100), 3, 15, 0, 6.28, 1/1 paint (41, 100) circle (279, 100), 22, 15, 0, 6.28, 1/1 line (304,11)-(267,189), 2, bf circle (279, 100), 3, 15, 0, 6.28, 1/1 paint (279, 100) line (15,52)-(53,148), 15, b line (305,52)-(267,148), 15, b line (15,78)-(28,122), 15, b line (305,78)-(292,122), 15, b
circle (15, 10), 5, 15, 4.71, 0, 1/1 circle (305, 10), 5, 15, 3.14, 4.71, 1/1 circle (305, 190), 5, 15, 1.57, 3.14, 1/1 circle (15, 190), 5, 15, 0, 1.57, 1/1
line (15,91)-(10,109), 15, b line (305,91)-(310,109), 15, b
SLEEP 10 Quote (Lunatik) 2. Составить программу для графического изображения баскетбольной площадки. Code SCREEN 7 color 15 paint (1,1),6
circle (23, 100), 68, 15 ,4.71, 1.57, 1/1 circle (69, 100), 20, 15 ,4.71, 1.57, 1/1 circle (297, 100), 68, 15 , 1.57, 4.71,1/1 circle (251, 100), 20, 15 ,1.57, 4.71, 1/1
line (6,67)-(69,80) line (6,133)-(69,120) line (314,67)-(251,80) line (314,133)-(251,120)
line (69,80)-(69,120) line (251,80)-(251,120)
line (6,32)-(23,32) line (6,168)-(23,168) line (314,32)-(297,32) line (314,168)-(297,168)
circle (160, 100), 20, 15, 0, 6.28, 1/1 circle (160, 100), 3, 15, 0, 6.28, 1/1 paint (160, 100) line (160,15)-(160,185) line (6,17)-(314,183), 15, b
line (6,0)-(6,17) line (314,0)-(314,17) line (105,0)-(105,17) line (215,0)-(215,17)
paint (310, 100),1,15 paint (20, 100),1,15
sleep 10 P.S. Пока все, остальное пока не хочу делать... Может чуть позже.
Изменил GreatEvilGod - Воскресенье, 27.06.2010, 09:17
|
|
| |
| | |
| Lunatik | Дата: 12:51 26.06.2010 | Сообщение # 402 |
Новичок
Сообщений: 6
Статус: не в сети
| ну пожалуйста, мне завтра сдавать, у нас время разное, у мя уже почти 9 вечера, я до завтра переписать не смогу Добавлено (26.06.2010, 12:51) --------------------------------------------- и еще вопрос на рисунках этих полей координаты отмечать не надо?
|
| |
| | |
| IIaHuKeP | Дата: 15:03 26.06.2010 | Сообщение # 403 |
Новичок
Сообщений: 6
Статус: не в сети
| блин не понял как засунуть сюда напишу тада)))так кусочек... LINE(0,0)-(640,200),9,BF CIRCLE(145,45),30,15 PAINT(145,45),15 CIRCLE(230,45),30,15 PAINT(230,45),15 CIRCLE(190,45),30,15 LINE(145,67)-(230,67),15 PAINT(190,50),15 PAINT(165,65),15 PAINT(209,65),15 заставьте облоко двигаться плииз)) впаво ===> вроде так
|
| |
| | |
| GreatEvilGod | Дата: 15:47 26.06.2010 | Сообщение # 404 |
Модератор
Сообщений: 238
Награды: 4
Статус: не в сети
| Quote (Lunatik) 3. Составить программу для графического изображения ванны плавательного бассеина (5 дорожек). Не понял что конкретно нужно изображать, без схемы с размерами решать не буду. Quote (Lunatik) 4. Составить программу для графического изображения хоккейного поля. Code SCREEN 7
circle(50,65),40,2,1.57,3.14,1/1 circle(50,135),40,2,3.14,4.71,1/1 circle(270,65),40,2,0,1.57,1/1 circle(270,135),40,2,4.71,0,1/1 line(50,25)-(270,25),2 line(50,175)-(270,175),2 line(10,65)-(10,135),2 line(310,65)-(310,135),2 paint(160,100),7,2
line(30,167)-(3 0,33),4 line(290,167)-(290,33),4 line(160,26)-(160,174),4
line(116,26)-(116,174),1 line(204,26)-(204,174),1
circle(30,100),8,4,4.71 ,1.57,1/1 circle(290,100),8,4,1.57,4.71,1/1 paint(35,100),1,4 paint(285,100),1,4
circle(123,65),2,4,0,6.28,1/1 paint(123,65),4,4 circle(123,135),2,4,0,6.28,1/1 paint(123,135),4,4 circle(197,65),2,4,0,6.28,1/1 paint(197,65),4,4 circle(197,135),2,4,0,6.28,1/1 paint(197,135),4,4
circle(160,100),23,1,0,6.28,1/1 circle(160,100),2,1,0,6.28,1/1 paint(160,100),1,1
For i=0 to 1 For j=0 to 1 cx = 60 + i*200 cy = 65 + j*70 circle(cx,cy),2,4,0,6.28,1/1 paint(cx,cy),4,4 circle(cx,cy),22,4,0,6.28,1/1 line(cx-5,cy+2)-(cx-9,cy+2),4 line(cx-5,cy-2)-(cx-9,cy-2),4 line(cx+5,cy+2)-(cx+9,cy+2),4 line(cx+5,cy-2)- (cx+9,cy-2),4 line(cx-5,cy+2)-(cx-5,cy+5),4 line(cx-5,cy-2)-(cx-5,cy-5),4 line(cx+5,cy+2)-(cx+5,cy+5),4 l ine(cx+5,cy-2)-(cx+5,cy-5),4 line(cx-5,cy+21)-(cx-5,cy+26),4 line(cx-5,cy-21)-(cx-5,cy-26),4 line(cx+5,cy+ 21)-(cx+5,cy+26),4 line(cx+5,cy-21)-(cx+5,cy-26),4 Next j Next i
circle(160,25),15,4,3.14,0,1/1
sleep 10 
Изменил GreatEvilGod - Воскресенье, 27.06.2010, 09:15
|
|
| |
| | |
| GreatEvilGod | Дата: 16:37 26.06.2010 | Сообщение # 405 |
Модератор
Сообщений: 238
Награды: 4
Статус: не в сети
| Quote (Lunatik) Сделайте пожалуйста синий прямоугольник разделенный на 5 равных частей по горизонтали Code SCREEN 7 Line (10,10)-(310,190),15,b paint(160,100),1,15 y = 10 For i = 1 to 4 y=y+36 Line (10,y)-(310,y),15 Next i
sleep 10
Изменил GreatEvilGod - Воскресенье, 27.06.2010, 09:18
|
|
| |
| |
|