Важная информация
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: Народ помогите с ветвлением!

  1. #1 Народ помогите с ветвлением! 
    Новичок
    Регистрация
    18.01.2011
    Сообщений
    2
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Состряпал бок схему! У меня получилось 3 ветвления причем после проверки а сразу идет проверка б! Теперь не знаю как скрипты составит!
    ПОМОГИТЕ БУДУ ОЧЕНЬ БЛАГОДАРЕН!
    Ответить с цитированием  
     

  2. #2  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,536
    Сказал(а) спасибо
    126
    Поблагодарили 432 раз(а) в 293 сообщениях
    Записей в блоге
    6
    А как? там проверка б выполняется если проверка а выполнена или независемо от проверки а?
    А третее ветвление куда?
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  3. #3  
    Новичок
    Регистрация
    18.01.2011
    Сообщений
    2
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Ну смотри я тут составил прогу но она все равно мне ошибку выдает!
    Не верный ввод функции пишет!
    Код qbasic:
    10 [Ссылки могут видеть только зарегистрированные пользователи. ]
    20 [Ссылки могут видеть только зарегистрированные пользователи. ] "A="; a
    30 [Ссылки могут видеть только зарегистрированные пользователи. ] "B="; b
    40 [Ссылки могут видеть только зарегистрированные пользователи. ] "C="; c
    50 IF a = 0 THEN
    60 ELSE
    70 d = b ^ 2 - 4 * a * c
    80 [Ссылки могут видеть только зарегистрированные пользователи. ] "D="; d
    85 [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    90 IF d < 0 THEN
    100 [Ссылки могут видеть только зарегистрированные пользователи. ] "There are no solutions"
    110 ELSE
    115 [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    120 IF d = 0 THEN
    130 f = -b + ([Ссылки могут видеть только зарегистрированные пользователи. ](d)) / 2 * a
    140 [Ссылки могут видеть только зарегистрированные пользователи. ] "X="; f
    150 ELSE
    160 h = -b + ([Ссылки могут видеть только зарегистрированные пользователи. ](d)) / 2 * a
    170 [Ссылки могут видеть только зарегистрированные пользователи. ] "X1="; h
    180 k = -b + ([Ссылки могут видеть только зарегистрированные пользователи. ](d)) / 2 * a
    190 [Ссылки могут видеть только зарегистрированные пользователи. ] "X2="; k
    195 [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    51 IF b = 0 THEN
    52 [Ссылки могут видеть только зарегистрированные пользователи. ] "There are no solutions"
    53 ELSE
    54 g = c / b
    55 [Ссылки могут видеть только зарегистрированные пользователи. ] "X="; g
    200 [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    210 [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  4. #4  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,536
    Сказал(а) спасибо
    126
    Поблагодарили 432 раз(а) в 293 сообщениях
    Записей в блоге
    6
    Вот, ошибку исправил. Там в надо INT делать. SQR-вещественная функция.

    Код qbasic:
    10 CLS
    20 INPUT "A="; a
    30 INPUT "B="; b
    40 INPUT "C="; c
    50 IF a = 0 THEN
    60 ELSE
    70 d = b ^ 2 - 4 * a * c
    80 PRINT "D="; d
    85 END IF
    90 IF d < 0 THEN
    100 PRINT "There are no solutions"
    110 ELSE
    115 END IF
    120 IF d = 0 THEN
    130 f = INT(-b + (SQR(d)) / (2 * a))
    
    140 INPUT "X="; f
    150 ELSE
    160 h = INT(-b + (SQR(d)) / (2 * a))
    170 PRINT "X1="; h
    180 k = INT(-b - (SQR(d)) / (2 * a))
    
    190 PRINT "X2="; k
    195 END IF
    51 IF b = 0 THEN
    52 PRINT "There are no solutions"
    53 ELSE
    54 g = c / b
    55 PRINT "X="; g
    200 END IF
    210 END
    Нумерацию строк можно не делать, если делаешь в QBasice.
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  5. #5  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    Ошибка возникает при попытке вычилить квадратный корень из отрицательного числа в строке 160. Дело в том, что хоть вы и проверяете дискриминант в строках
    Код qbasic:
    90 IF d < 0 THEN
    100 [Ссылки могут видеть только зарегистрированные пользователи. ] "There are no solutions"
    110 ELSE
    115 [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    выполнение программы продолжается даже с отрицательным его значением. Попробуйте добавить после строки 100 - GOTO 210.

    Kakos_nonos, при отрицательном d - все равно будут ошибки в вашем случае.
    Ответить с цитированием  
     

  6. #6  
    Новичок
    Регистрация
    13.01.2011
    Сообщений
    13
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Не надо сбивать людей с толку, дописывая строки 51... после 195... Пиши последовательно. А ошибка, видимо, потому что D не вычисляется, т.е. в формулу подставляется отсутствующий аргумент.
    Ответить с цитированием  
     

  7. #7 Дискриминант квадратного трёхчлена 
    Новичок
    Регистрация
    13.01.2011
    Сообщений
    13
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    В общем, алгоритм у меня получился как на картинке, а код такой:

    Код qbasic:
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Введите A: ", a
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Введите B: ", b
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Введите C: ", c
     
    d = b ^ 2 - 4 * a * c
    [Ссылки могут видеть только зарегистрированные пользователи. ] "D="; d
     
    IF d < 0 THEN
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Вещественного решения нет т.к. D<0"
    ELSE
            x1 = (-b + [Ссылки могут видеть только зарегистрированные пользователи. ](d)) / 2 / a
           
            IF d = 0 THEN
            [Ссылки могут видеть только зарегистрированные пользователи. ] "X1="; x1
            ELSE
            x2 = (-b - [Ссылки могут видеть только зарегистрированные пользователи. ](d)) / 2 / a
            [Ссылки могут видеть только зарегистрированные пользователи. ] "X2="; x2
            [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF

    Код можно сократить, как минимум на 1 строку. Как?
    Изображения
    • Тип файла: jpg Discr.jpg (7.0 Кб, Просмотров: 6)
    Ответить с цитированием  
     

  8. #8  
    Новичок
    Регистрация
    13.01.2011
    Сообщений
    13
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Блин, форум скомкал картинку, см. алгоритм в PDF
    Вложения
    • Тип файла: pdf Discr.pdf (7.1 Кб, Просмотров: 8)
    Ответить с цитированием  
     

  9. #9  
    Профи
    Регистрация
    08.11.2010
    Сообщений
    106
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Цитата Сообщение от Wanderer Посмотреть сообщение
    Код можно сократить, как минимум на 1 строку. Как?
    если не ошибаюсь - например так.
    Код qbasic:
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Введите A: ", a
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Введите B: ", b
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Введите C: ", c
     
     
    [Ссылки могут видеть только зарегистрированные пользователи. ] "D="; b ^ 2 - 4 * a * c
     
    IF d < 0 THEN
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Вещественного решения нет т.к. D<0"
    ELSE
            IF d = 0 THEN
            [Ссылки могут видеть только зарегистрированные пользователи. ] "X1="; (-b + [Ссылки могут видеть только зарегистрированные пользователи. ](d)) / 2 / a
            ELSE
            [Ссылки могут видеть только зарегистрированные пользователи. ] "X2="; (-b - [Ссылки могут видеть только зарегистрированные пользователи. ](d)) / 2 / a
            [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  10. #10  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    fizuch, так нельзя, мы значение d теряем, а в решение Wanderer я бы еще одну строчку добавил, которая выводит x1 при d>0.
    Ответить с цитированием  
     

Страница 1 из 2 12 ПоследняяПоследняя
Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •