Нужна помощь в програмировании.....QBasic

Тема в разделе 'Обо всем', создана пользователем Инсаф, 11 май 2009.

  1. Инсаф

    Инсаф Новичок

    Слышь люди завтра сдавать сможет кто нибудь сделать нет? Всрочняк
     
  2. tyago

    tyago Новичок

    5.2.22

    Код:
    DIM A(5), B(5)
    P1 = 0
    P2 = 0
    FOR i = 0 TO 4
    	INPUT "введите элемент массива A ";A(i)
    	INPUT "введите элемент массива B ";B(i)
    	P1 = P1 + A(i)*X^i
    	P2 = P2 + B(i)*X^i
    NEXT i
    RES = P1*P2
    PRINT "Ответ:"; RES
    [spoiler:270lv9rh]qbasic... давно его не видел))) попробовал вот написать одну
    остальные делать уже неинтересно

    да, в qbasic'е код не запускал- может и ошибся где[/spoiler:270lv9rh]
     
  3. Инсаф

    Инсаф Новичок

    Спасибо большое, не проверял еще, но надеюсь работает.:) хотя бы один, лучше чем ничего. Неужели ни кто больше басик не знает.:( кстати могу предложить,за помощь, ик диоды из lg 22gh.
     
  4. Goury

    Goury Новичок

    я кубейсик не помню уже
    я эту гадость не проходил и вообще он гавно
    могу написать под турбо или классический бейсик
    2 диода за одно решение беру
    устроит ?
     
  5. LaserSun

    LaserSun Пользователь


    Уже поздно .. вроде

    а я просил перезалить фотки .. так бы помог)
     
  6. Инсаф

    Инсаф Новичок

    Именно нужен qbasic. Просто преподу не обьяснить. Ну че кто нибудь возьмется за дело.:) дам по 2 диода не жалко.:) новые не разу не включеные. Кстати tyago прога вроде работает, но преподу еще не показывал хз может ему не понравиться он ебнутый. Отпишись в лс диоды ждут.:)
     
  7. jack4096

    jack4096 Пользователь

    Что-то я не пойму... X нигде не определяется, не вводится и не выводится.
     
  8. jack4096

    jack4096 Пользователь

    ' 6.32
    dim b(4,5)

    'Вводим элементы матрицы:
    'Счетчик столбцов:
    for j=1 to 5

    'Счетчик строк:
    for i=1 to 4
    'Печатаем на экране какой элемент вводим:
    print "B(";i;j;")="
    'Ввод:
    input b(j,i)

    'Если элемент меньше нуля
    if b(j,i)<0 then
    'Присваиваем ему значение нуль
    b(j,i)=0
    else
    'Иначе - единица
    b(j,i)=1
    end if
    next
    next

    'Печатаем полученную матрицу:
    for j=1 to 5
    for i=1 to 4
    print b(j,i);" ";
    next
    'После печати строки матрицы переходим на следующую строку:
    print
    next

    *************************************************************************
    Проверь, вроде не ошибся нигде?...
    В Turbo Basic'е работает (нашел у себя на харде такой :) ). Quick Basic может отличаться конструкцией оператора "If". Не помню, есть ли там "else". Если нет, то замени это:
    if b(j,i)<0 then
    b(j,i)=0
    else
    b(j,i)=1
    end if
    на это:
    if b(j,i)<0 then
    b(j,i)=0
    end if

    if b(j,i)>=0 then
    b(j,i)=1
    end if
    Должно работать.
    Ну нет у меня QBasic'а. И не программировал я на нем никогда...
    P.S. Форум ведущие знаки табуляции съел. По его мнению это лишнее :) В принципе это оправдано, так как сообщения рассчитаны на обычный текст без особых излишеств. Поэтому программа не так наглядно выглядит.
     
  9. Goury

    Goury Новичок

    для турбы, второй вариант:
    Код:
    
    for iy=1 to 5 step 1
    for ix=1 to 4 step 1
    a$="блаблабла, сам напиши тут умные буквы, x"+ix+"   y"+iy
    print a$
    input mass[ix,iy]
    next ix
    next iy
    
    for iy=1 to 5 step 1
    for ix=1 to 4 step 1
    if mass[ix,iy]<0 then mass[ix,iy]=0
    if mass[ix,iy]>=0 then mass[ix,iy]=1
    next ix
    next iy
    
    for iy=1 to 5 step 1
    for ix=1 to 4 step 1
    a$="йэлемент x"+ix+"   y"+iy+" = "+mass[ix,iy]
    next ix
    next iy
    
    
    возможно наврал и надо вместо
    Код:
    print a$
    input mass[ix,iy]
    сказать
    Код:
    input a$,mass[ix,iy]
    вобщем вот так вот как то... ещё я не помню как там переносы строк делать в выводе и оформление хромает и не проверял я её, так что и на один диод соглашусь


    упд: чорт... опередили... нуиладно
     
  10. Искатель

    Искатель Новичок

    А раньше, когда ему нужна была помощь чтож вы молчали?
     
  11. jack4096

    jack4096 Пользователь

    К примеру, я прочитал его сообщение только сегодня. Да и на Турбо Бейсике писал последний раз лет сто назад... Да и сидя на работе хотя бы иногда работать бывает надо...
     
  12. jack4096

    jack4096 Пользователь

    Держи еще задание 7.9. Проверил в Turbo Basic'е - работает. Должно и в Quick Basic работать, если там так же подпрограммы описываются.
    Главное - потом сам разберись, как оно работает. Может в жизни пригодиться...

    ********************************
    '7.9
    dim a(12),b(12)

    'Вводим элементы масива A():
    for i=1 to 12
    'Печатаем на экране какой элемент вводим:
    '(знак ";" в конце оператора print чтобы после него не переводить строку)
    print "A(";i;")=";
    'Ввод:
    '(знак "," в операторе input чтобы он не печатал знак вопроса)
    input ,a(i)
    next

    'Вводим элементы масива B():
    for i=1 to 12
    'Печатаем на экране какой элемент вводим:
    print "B(";i;")=";
    'Ввод:
    input ,b(i)
    next

    'Вычисляем количество для массива A:
    call kol1(k1,a())
    'Вычисляем сумму для массива A:
    call sum1(s1,a())

    print "Количество положительных элементов массива A(): ";k1
    print "Сумма положительных элементов массива A(): ";s1


    'Вычисляем количество для массива B:
    call kol1(k2,b())
    'Вычисляем сумму для массива B:
    call sum1(s2,b())

    print "Количество положительных элементов массива B(): ";k2
    print "Сумма положительных элементов массива B(): ";s2
    print
    print "Z =";(k1+k2)/(s1+s2)


    stop
    '**************************************

    'Подпрограммы:

    'Подсчитываем количество положительных элементов одномерного массива:
    sub kol1(k,x(12))
    'x(12) - входной массив размерностью 12
    'k - количество положительных элементов

    'Обнуляем счетчик положительных элементов:
    k=0

    for i=1 to 12
    'Если элемент положительный, прибавляем к счетчику единицу:
    if x(i)>=0 then
    k=k+1
    end if
    next

    end sub

    '***

    'Подсчитываем сумму положительных элементов одномерного массива:
    sub sum1(s,x(12))
    'x(12) - входной массив размерностью 12
    's - сумма положительных элементов

    'Обнуляем сумму положительных элементов:
    s=0

    for i=1 to 12
    'Если элемент положительный, прибавляем к счетчику значение элемента массива:
    if x(i)>=0 then
    s=s+x(i)
    end if
    next

    end sub
     
  13. Инсаф

    Инсаф Новичок

    Спасибо люди. С компа буду посмотрю получше. Потом отпишусь что работает что нет. А дальше разберемся кому диоды.:) коры сегодня лабы отменили. Там тема такая что в казани открытие всеросийской студвесны:) меня и освободили только я пох пошел с девушкой гулят а не туда.:)
     
  14. Инсаф

    Инсаф Новичок

    jack4096 у меня руки кривые вот пытаюсь все проверить хз какие то ошибки иногда вылетают:( времени щас мало. можешь в qbasic сделать. или в блокноте но чтоб все было уже готово чтоб в байсик вставить. это нащет 7 задания. и еще отправь в лс адрес с индексом письмом отправлю....диоды:) кстати время пока есть до следующей недели займись пожалуйста. qbasic прикрепил
     

    Вложения:

  15. jack4096

    jack4096 Пользователь

    Попробовал я в QBasic. Работает все, только не понимает он запятую в операторе input. И с размерностью массива я напутал (нужно было dim(4,5)). Видимо, Turbo Basic для любого массива выделяет не менее 10-ти ячеек памяти, а Quick ругается. Еще раз - проверь программу! Я тоже мог ошибиться...
    Бог с ними - диодами. Спасибо, конечно за предложение, но мне самому интересно было немножко размять мозги :) Со временем у меня сейчас крайне фигово, так что попробуй составить третью программу сам. Может быть здесь на форуме кто-нибудь из ребят поможет... Кстати, я сам когда-то заканчивал радиотехнический факультет, мы еще писали на Фортране-4, потом на 77-м, а Бейсик - это я для себя раньше немножко программировал. Удобно было чтобы по-быстрому какую-нибудь программку написать.
    С третьим заданием не должно быть очень сложно. Ввод массивов можешь сделать в цикле оператором input, типа:
    'Резервируем память 5 ячеек для массива A и 5 ячеек для массива B:
    dim a(5), b(5)

    for i=0 to 4
    input a(i)
    next

    for i=0 to 4
    input b(i)
    next
    а дальше по формулам. Для вывода используй оператор print. Его формат такой:
    print "Комментарий 1";a;b;c;"Комментарий2";d;e (и т.д.)
    Переменные и комментарии могут присутствовать в любых комбинациях или отсутствовать вообще.
    А что такое коэффициенты многочлена - я уже забыл :) Давно это было. Это как в том анекдоте:"Нам задали найти квадратный трехчлен, а я не то чтобы найти, я даже представить себе такое не могу!" :)
    Удачи на сдаче!
    *****************************************************************************************************************************************

    dim b(4,5)

    'Вводим элементы матрицы:
    'Счетчик столбцов:
    for j=1 to 5

    'Счетчик строк:
    for i=1 to 4
    'Печатаем на экране какой элемент вводим:
    print "B(";i;j;")="
    'Ввод:
    input b(j,i)

    'Если элемент меньше нуля
    if b(j,i)<0 then
    'Присваиваем ему зеначение нуль
    b(j,i)=0
    else
    'Иначе - единица
    b(j,i)=1
    end if
    next
    next

    'Печатаем полученную матрицу:
    for j=1 to 5
    for i=1 to 4
    print b(j,i);" ";
    next
    'После печати строки матрицы переходим на следующую строку:
    print
    next

    *****************************************************************************************************************************************
    '7.9
    dim a(12),b(12)

    'Вводим элементы масива A():
    for i=1 to 12
    'Печатаем на экране какой элемент вводим:
    '(знак ";" в конце оператора print чтобы после него не переводить строку)
    print "A(";i;")=";
    'Ввод:
    '(знак "," в операторе input чтобы он не печатал знак вопроса)
    input ,a(i)
    next

    'Вводим элементы масива B():
    for i=1 to 12
    'Печатаем на экране какой элемент вводим:
    print "B(";i;")=";
    'Ввод:
    input ,b(i)
    next

    'Вычисляем количество для массива A:
    call kol1(k1,a())
    'Вычисляем сумму для массива A:
    call sum1(s1,a())

    print "Количество положительных элементов массива A(): ";k1
    print "Сумма положительных элементов массива A(): ";s1


    'Вычисляем количество для массива B:
    call kol1(k2,b())
    'Вычисляем сумму для массива B:
    call sum1(s2,b())

    print "Количество положительных элементов массива B(): ";k2
    print "Сумма положительных элементов массива B(): ";s2
    print
    print "Z =";(k1+k2)/(s1+s2)


    stop
    '**************************************

    'Подпрограммы:

    'Подсчитываем количество положительных элементов одномерного массива:
    sub kol1(k,x(12))
    'x(12) - входной массив размерностью 12
    'k - количество положительных элементов

    'Обнуляем счетчик положительных элементов:
    k=0

    for i=1 to 12
    'Если элемент положительный, прибавляем к счетчику единицу:
    if x(i)>=0 then
    k=k+1
    end if
    next

    end sub

    '***

    'Подсчитываем сумму положительных элементов одномерного массива:
    sub sum1(s,x(12))
    'x(12) - входной массив размерностью 12
    's - сумма положительных элементов

    'Обнуляем сумму положительных элементов:
    s=0

    for i=1 to 12
    'Если элемент положительный, прибавляем к счетчику значение элемента массива:
    if x(i)>=0 then
    s=s+x(i)
    end if
    next

    end sub

    *****************************************************************************************************************************************
     
  16. Инсаф

    Инсаф Новичок

    Отправь адрес.:) каждая работа должна оплачиваться.:) мне диоды не жалко. В письмо засуну и отправлю. спасибо еще раз.:)
     
  17. jack4096

    jack4096 Пользователь

    Да я охотно тебе верю! :) В данном случае мне оплатой послужило мое моральное удовлетворение, что я еще хоть немного помню, как программировать на Васике :) В конце концов, можно же помочь просто так...
    Так что, пожалуйста! :)
     
  18. Инсаф

    Инсаф Новичок

    пацаны хелп:) 5 и 7 препод сказал не то нашел....в 5 там не помню...в 7 сказал что че то надо находить через подпрограмму.дебил
     
  19. jack4096

    jack4096 Пользователь

    "Для вычисления суммы и количества элементов массива используйте подрограммы"... Да, так и есть. Твоему препу пора ставить диагноз, причем неутешительный. На нем случайно желуди не растут?... Спроси его, а более изящное решение - процедуры (конструкция CALL-END SUB) вместо этого архаизма в Бейсике, которое называется подпрограммами и которое не используется уже лет 20, если не больше, почему его не устраивает? И массив любой можно передать внутрь процедуры и писать удобнее... Это мне напоминает армейский маразм. Что-то типа "собрать все кирпичи вокруг казармы и сжечь", или "можешь подметать плац вместо зубной щетки и ломом, лишь бы ты за2.718бался!"
    Подпрограммы в Бейсике (конструкция GOSUB-RETURN) - это пережиток прошлого. Они оставлены там исключительно для совместимости со старыми версиями Бейсика, в которых программы писались еще, начиная с обязательного номера строки, когда Бейсик еще был только интерпретируемым, а не компилируемым и т.д. Этот навык с подпрограммами тебе может пригодиться, если только ты захочешь программировать микроконтроллеры, но тогда и изучать нужно не Бейсик, а ассемблер на примере какого-нибудь контроллера.
    Я уже забыл что это такое - подпрограммы в Бейсике в изначальном смысле и еще лет х.з. сколько назад подпрограммами называл процедуры. То есть, считал что "подпрограмма" - синоим слова "процедура".

    Короче - забирай 7-е задание с ПОДПРОГРАММАМИ как он хочет. Может у него от каждого оператора gosub и return случается тройной оргазм. Там ЧЕТЫРЕ подпрограммы вместо ДВУХ процедур. Очень изящное решение! ;) В качестве издевательства спроси у него заодно, может переписать прогу на Асскмблере для КР580ВМ80А? ;)...
    Если уж ему и это не понравится, тогда я не знаю...

    ******************************************************************************************************************************************************************
    '7.9
    dim a(12),b(12)

    'Вводим элементы масива A():
    for i=1 to 12
    'Печатаем на экране какой элемент вводим:
    '(знак ";" в конце оператора print чтобы после него не переводить строку)
    print "A(";i;")=";
    'Ввод:
    '(знак "," в операторе input чтобы он не печатал знак вопроса)
    input ,a(i)
    next

    'Вводим элементы масива B():
    for i=1 to 12
    'Печатаем на экране какой элемент вводим:
    print "B(";i;")=";
    'Ввод:
    input ,b(i)
    next

    'Вычисляем количество для массива A:
    gosub kol1
    'Вычисляем сумму для массива A:
    gosub sum1

    print "Количество положительных элементов массива A(): ";k1
    print "Сумма положительных элементов массива A(): ";s1


    'Вычисляем количество для массива B:
    gosub kol2
    'Вычисляем сумму для массива B:
    gosub sum2

    print "Количество положительных элементов массива B(): ";k2
    print "Сумма положительных элементов массива B(): ";s2
    print
    print "Z =";(k1+k2)/(s1+s2)


    stop
    '**************************************

    'Подпрограммы:


    'ВЫЧИСЛЯЕМ КОЛИЧЕСТВА:
    '***
    'Подсчитываем количество положительных элементов одномерного массива a(12):
    kol1:
    'a(12) - входной массив a(12)
    'k1 - количество положительных элементов массива a(12)
    'i - счетчик (вспомогательная переменная)

    'Обнуляем счетчик положительных элементов:
    k1=0

    for i=1 to 12
    'Если элемент положительный, прибавляем к счетчику единицу:
    if a(i)>=0 then
    k1=k1+1
    end if
    next

    return


    '***
    'Подсчитываем количество положительных элементов одномерного массива b(12):
    kol2:
    'b(12) - входной массив b(12)
    'k2 - количество положительных элементов массива b(12)
    'i - счетчик (вспомогательная переменная)

    'Обнуляем счетчик положительных элементов:
    k2=0

    for i=1 to 12
    'Если элемент положительный, прибавляем к счетчику единицу:
    if b(i)>=0 then
    k2=k2+1
    end if
    next

    return

    '***

    'ВЫЧИСЛЯЕМ СУММЫ:

    '***
    'Подсчитываем сумму положительных элементов одномерного массива a(12):
    sum1:
    's1 - сумма положительных элементов массива a(12)

    'Обнуляем сумму положительных элементов:
    s1=0

    for i=1 to 12
    'Если элемент положительный, прибавляем к счетчику значение элемента массива:
    if a(i)>=0 then
    s1=s1+a(i)
    end if
    next

    return
    '***


    'Подсчитываем сумму положительных элементов одномерного массива b(12):
    sum2:
    's2- сумма положительных элементов массива b(12)

    'Обнуляем сумму положительных элементов:
    s2=0

    for i=1 to 12
    'Если элемент положительный, прибавляем к счетчику значение элемента массива:
    if b(i)>=0 then
    s2=s2+b(i)
    end if
    next

    return

    end
     
  20. axis

    axis Модератор Staff Member

    Дружище, чтож ты мне то не сказал.... В Аську вечером стукни, разберёмся с твоей информатикой....
     

Поделиться этой страницей