| Программирование на 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
|
|
| |
| | |
| danmaister | Дата: 18:59 05.11.2008 | Сообщение # 16 |
Новичок
Сообщений: 7
Статус: не в сети
| всем привет, как хорошо что я нашёл ваш сайт, надеюсь мне сможете помочь. (программа нужна до пятницы) язык QBasic: "Составить алгоритм (блок-схему) и программу обработки расчётно-платёжной ведомости сотрудников. Программа должна обеспечить ввод ФИО сотрудника, количество отработанных дней, тарифная ставка. Программа должна расчитывать всего начислено, налог и к выдаче(зарплата). Вывод данных оформит таблицей. Кол-во записей в таблице равно 12. Предусмотреть в программе количество отработанных дней не должно превышать 22. Вывод данных оформить таблицей." вот такая программа прошу помогите я сам не могу разобраться заранее спасибо
|
| |
| | |
| danmaister | Дата: 21:41 05.11.2008 | Сообщение # 17 |
Новичок
Сообщений: 7
Статус: не в сети
| как вобще вывести данные таблцей?
|
| |
| | |
| IwanS | Дата: 22:03 05.11.2008 | Сообщение # 18 |
Администратор
Сообщений: 1849
Статус: не в сети
| Quote (danmaister) как вобще вывести данные таблцей? Ну вот так: Code print "|---------------------------------------|" print "| колонка 1 | колонка 2 |" print "|---------------------------------------|" Специальной функции для вывода таблиц нет. Quote (danmaister) всем привет, как хорошо что я нашёл ваш сайт, надеюсь мне сможете помочь. (программа нужна до пятницы) язык QBasic: "Составить алгоритм (блок-схему) и программу обработки расчётно-платёжной ведомости сотрудников. Программа должна обеспечить ввод ФИО сотрудника, количество отработанных дней, тарифная ставка. Программа должна расчитывать всего начислено, налог и к выдаче(зарплата). Вывод данных оформит таблицей. Кол-во записей в таблице равно 12. Предусмотреть в программе количество отработанных дней не должно превышать 22. Вывод данных оформить таблицей." вот такая программа прошу помогите я сам не могу разобраться заранее спасибо Так, что ли: Code CLS DIM fio$(12) DIM dni(12) DIM stv(12) FOR cnt = 1 TO 12 INPUT "Введите свое ФИО: ", fio$(cnt) q: INPUT "Введите количество отработанных дней: ", dni(cnt) IF dni > 22 THEN GOTO q INPUT "Введите ставку: ", stv(cnt) NEXT cnt PRINT "------------------------------" nalog = .13 FOR cnt = 1 TO 12 PRINT "| ", fio$(cnt), " | ", dni(cnt) * stv(cnt), " | ", dni(cnt) * stv(cnt) * nalog, " | ", dni(cnt) * stv(cnt) * (1 - nalog), " |" NEXT cnt PRINT "------------------------------" END
|
|
| |
| | |
| FORM479 | Дата: 22:06 05.11.2008 | Сообщение # 19 |
Новичок
Сообщений: 21
Статус: не в сети
| Плиз вот моя задача вот ту у меня не получается сложит кол-во золота Однажды царь решил вознаградить одного из своих мудрецов за хорошую работу. Он привел его в прямоугольную комнату размром NxM, в каждой клетке которой лежало несколько килограммов золота. Царь разрешил мудрецу обойти несколько клеток (переходя с клетки, где сейчас находится мудрец, в одну из четырех с ней соседних), и собрать все золото, которое попадется на его пути. Вам дан маршрут мудреца. Требуется определить, сколько килограммов золота он собрал. Мудрец мог более одного раза проходить по одной и той же клетке. Золото с нее он брал при этом только один раз - когда проходил по клетке в первый раз. Входные данные Вводится план комнаты. Сначала вводится количество строк N, затем - количество столбцов М (1~N~2О,1~М<2О). Затем записано N строк по М чисел в каждой - количество килограммов золота, которое лежит в данной клетке (число от О до 50). Далее записано число Х - сколько клеток обоше.л мудрец. Далее записаны координаты этих клеток (координаты клетки - это два числа: первое определяез номер строки, второе - номер столбца, верхняя левая клетка на плане имеет координаты (1,1), права~~ нижняя - (N,M)). Гарантируется, что длина пути мудреца не превышает 10000. Выходные данные Выведите количество килограммов золота, которое собрал мудрец. Пример ввода: 34 1234 5678 9101112 9 11 21 22 23 13 12 11 12 22 Пример вывода: 24 вот попробуй сам сделать ПОЖАЛУЙСТА!!!!!!!!!!1
|
| |
| | |
| IwanS | Дата: 22:36 05.11.2008 | Сообщение # 20 |
Администратор
Сообщений: 1849
Статус: не в сети
| Quote (FORM479) Вводится план комнаты. Сначала вводится количество строк N, затем - количество столбцов М (1~N~2О,1~М<2О). Затем записано N строк по М чисел в каждой - количество килограммов золота, которое лежит в данной клетке (число от О до 50). Далее записано число Х - сколько клеток обоше.л мудрец. Далее записаны координаты этих клеток (координаты клетки - это два числа: первое определяез номер строки, второе - номер столбца, верхняя левая клетка на плане имеет координаты (1,1), права~~ нижняя - (N,M)). Гарантируется, что длина пути мудреца не превышает 10000. Code CLS INPUT "Через запятую введите кол-во строк, кол-во столбцов: ", n, m DIM a(n, m) FOR cnt1 = 1 TO n FOR cnt2 = 1 TO m PRINT "Введите кол-во золота в клетке ", cnt1, " строки ", cnt2, "столбца" INPUT a(cnt1, cnt2) NEXT cnt2 NEXT cnt1 INPUT "Введите количество пройденных клеток: ", x FOR cnt1 = 1 TO x PRINT "Введите ", cnt1, " клетку - строка, столбец: " INPUT cnt21, cnt22 summa = summa + a(cnt21, cnt22) NEXT cnt1 PRINT summa END
|
|
| |
| | |
| danmaister | Дата: 15:43 06.11.2008 | Сообщение # 21 |
Новичок
Сообщений: 7
Статус: не в сети
| У меня вопрос по этой же программе почему-то когда выводится таблица, колонки идут в порядке: налог|ФИО|к выдаче|всего начислено, а надо: ФИО|всего начислено|налог|квыдаче. Почему? и дополнение к этой же задаче: упорядочит взаимосвязанные массивы в порадке возрастания значений к выдаче. Вывести на печать упорядченые массивы
|
| |
| | |
| FORM479 | Дата: 21:07 06.11.2008 | Сообщение # 22 |
Новичок
Сообщений: 21
Статус: не в сети
| Иван, в условии задачи есть одна загвозка : Мудрец мог более одного раза проходить по одной и той же клетке. Золото с нее он брал при этом только один раз - когда проходил по клетке в первый раз. а у тебя в программе всё равно складывает если ввёл координаты те же самые ПЛИЗ ПОМОГИ
|
| |
| | |
| IwanS | Дата: 22:25 06.11.2008 | Сообщение # 23 |
Администратор
Сообщений: 1849
Статус: не в сети
| Quote (FORM479) А ПОЧЕМУ ТЫ В АСЮ НЕ ЗАХОДИШЬ? Не хочу Quote (danmaister) У меня вопрос по этой же программе почему-то когда выводится таблица, колонки идут в порядке: налог|ФИО|к выдаче|всего начислено, а надо: ФИО|всего начислено|налог|квыдаче. Почему? Нет, просто строки накладываются друг на друга, так как слишком длинные строчки получаются. Если сделаешь большое количество символов по горизонтали, то все будет именно так, как ожидается. Quote (FORM479) Мудрец мог более одного раза проходить по одной и той же клетке. Золото с нее он брал при этом только один раз - когда проходил по клетке в первый раз. а у тебя в программе всё равно складывает если ввёл координаты те же самые Ну сделай цикл проверки и если такая клетка раньше уже была, то результат не суммируется.
|
|
| |
| | |
| xakker | Дата: 12:19 07.11.2008 | Сообщение # 24 |
Новичок
Сообщений: 20
Статус: не в сети
| Quote (FORM479) Ну сделай цикл проверки и если такая клетка раньше уже была, то результат не суммируется. Можно просто добавить одну строку: Code summa = summa + a(cnt21, cnt22) a(cnt21, cnt22) = 0 А если исходная таблица нужна при дальнейших расчетах -- просто копируем ее перед каждым новым расчетом во временную таблицу.
Изменил xakker - Пятница, 07.11.2008, 12:20
|
| |
| | |
| FORM479 | Дата: 13:15 07.11.2008 | Сообщение # 25 |
Новичок
Сообщений: 21
Статус: не в сети
| ХАККЕР А ЧТО ЗНАЧИТ A(CNT21,CNT22)=0 И КАК ТЫ ДОГАДАЛСЯ ТАК СДЕЛАТЬ
|
| |
| | |
| IwanS | Дата: 14:55 07.11.2008 | Сообщение # 26 |
Администратор
Сообщений: 1849
Статус: не в сети
| xakker, гениально Это отражает физическую идею - если чувак прошел по клетке, то в ней ничего не осталось. Quote (FORM479) ХАККЕР А ЧТО ЗНАЧИТ A(CNT21,CNT22)=0 И КАК ТЫ ДОГАДАЛСЯ ТАК СДЕЛАТЬ Ну обнуляет клетку, откуда золото уже забрали.
|
|
| |
| | |
| FORM479 | Дата: 22:22 09.11.2008 | Сообщение # 27 |
Новичок
Сообщений: 21
Статус: не в сети
| Ставка это тот же самый оклад ставка за месяц а не за один рабочий день danmaister, Добавлено (09.11.2008, 22:21) --------------------------------------------- У меня чет не получается плиз Иван посмотри : В час пик на остановку одновременно подъехали три маршрутных такси, сJ’iедующие по одному маршруту, в которые тут же набились пассажиры. Водители обнаружили, что количество людей в разных маршрутках разное, и решили пересадить часть пассажиров так, чтобы в каждой маршрутке было поровну пассажиров. Требуется определить, какое наименьшее количество пассажиров придется при этом пересадить. Программе вводится три натуральных числа, не превосходящих 100 - количества пассажиров в первой, второй и третьей маршрутках соответственно. Программа должна выводить одно число - наименьшее количество пассажиров, которое требуется пересадить. Если это невозможно, выведите слово IМРОSIВLЕ. Примеры: Ввод: 1 2 3 Вывод: 1 Ввод: 99 100 100 Вывод: IМРОSIВLЕ Я когда ввожу числа например 1,2,3 то тогда получается , а если поменять числа местами то не получается например 3,1,2 Пожалуйста срочно мне на завтра в 12 00 надо сдать Пожалуйста!!!!!
Изменил FORM479 - Воскресенье, 09.11.2008, 22:25
|
| |
| | |
| IwanS | Дата: 23:11 09.11.2008 | Сообщение # 28 |
Администратор
Сообщений: 1849
Статус: не в сети
| FORM479, Code CLS INPUT "Введите количество пассажиров в каждом такси: ", t1, t2, t3 IF (t1 + t2 + t3) MOD 3 <> 0 THEN PRINT "IMPOSSIBLE": END p1 = (t1 + t2 + t3) / 3 - t1 p2 = (t1 + t2 + t3) / 3 - t2 p3 = (t1 + t2 + t3) / 3 - t3 IF p1 < 0 THEN p = p1 IF p2 < 0 THEN p = p + p2 IF p3 < 0 THEN p = p + p3 p = p * (-1) PRINT p END
|
|
| |
| | |
| IwanS | Дата: 21:08 10.11.2008 | Сообщение # 29 |
Администратор
Сообщений: 1849
Статус: не в сети
| Quote (russian_neo) Где скачать RusDOS – программного комплекса, служащего для решения проблем со шрифтами. http://admin-club.net/load/3-1-0-12
|
|
| |
| | |
| Revati | Дата: 19:42 11.11.2008 | Сообщение # 30 |
Новичок
Сообщений: 2
Статус: не в сети
| Добрый вечер, нужна ваша помощь с QBasic! Бьюсь над двумя такими задачами: 1. Дан массив из 12 элементов. Вычислить в отдельный массив все элементы, значение которых <=10 2. Длина матрицы из трех строк и двух стоЛбцов. Найти в матрице максимальный элемент и число, характеризующее его встречаемость в матрице. Очень прошу, помогите пожалуйста! Заранее большое спасибо!
Изменил Revati - Вторник, 11.11.2008, 19:45
|
| |
| |
|