Важная информация
Показано с 1 по 9 из 9

Тема: Проверьте пожалуйста тексты задач.

  1. #1 Проверьте пожалуйста тексты задач. 
    Разбирающийся
    Регистрация
    18.11.2011
    Сообщений
    27
    Сказал(а) спасибо
    15
    Поблагодарили 0 раз(а) в 0 сообщениях
    1. Запрашивается длина а и ширина b прямоугольника (от 50 до 200 пикселей). Программа рисует в центре экрана прямоугольник с заданными сторонами. Программа расчитывает длину диагоналей прямоугольника и рисует их. Под прямоугольником выводится надпись о размерах прямоугольника и длине его диагоналей.

    INPUT "Vvedite dlinu", a
    INPUT "Vvedite shirinu", b
    x1 = 320 - (a / 2)
    y1 = 160 - (b / 2)
    x2 = 320 + (a / 2)
    y2 = 160 + (b/ 2)
    SCREEN 12
    LINE (x1, x2)-(x1+b, x2), 1
    LINE (x1, x2)-(x1, x2+b), 1
    LINE (x1+b, x2)-(x1+b, x2+b), 1
    LINE (n1, n2+d)-(x1+b, x2+b), 1
    LOCATE (x1, x2+b)
    PRINT "dlina: ", a, "shirina", b
    PRINT "diagonal: ", (a^2+b^2)^0.5
    END

    2. Вычислить количество корней и сами корни квадратного уравнения с заданными коэффициентами a,b,c. Если действительных корней нет, сообщить об этом.

    INPUT "Vvedite A ", a
    INPUT "Vvedite B", b
    INPUT "Vvedite C", c
    IF d = b * b - 4 * a * c > 0 THEN
    PRINT "2 kornya"
    ELSEIF b * b - 4 * a * c = 0 THEN
    PRINT "1 koren"
    ELSEIF b * b - 4 * a * c < 0 THEN
    PRINT "net kornei"
    END IF

    3. С клавиатуры вводится число N. Если число N=1, то ы центре экрана рисуется квадрат. Если N=2, то в центре рисуется круг, если N другое, то сообщить, что N=1 или N=2 и ничего не рисовать.

    INPUT "Vvedite N", n
    SCREEN 12
    IF n = 1 THEN
    PRINT "N=1"
    LINE (300, 200)-(340, 240), 1, B
    ELSEIF n = 2 THEN
    PRINT "N=2"
    CIRCLE (320, 240), 20, 1
    ELSEIF n = 3 THEN
    PRINT "N=1 ili N=2"
    END IF
    Ответить с цитированием  
     

  2. #2  
    Новичок Аватар для ext(VaN)
    Регистрация
    26.11.2011
    Адрес
    Беларусь
    Сообщений
    16
    Сказал(а) спасибо
    1
    Поблагодарили 2 раз(а) в 2 сообщениях
    На первый взгляд все верно, но надо проверить как работает. Еще насчёт 3его... почему только до 3х N??? ведь могут ввести и другое число или символ. Ах, да! Во втором упражнении надо еще корни вычислить, а не только их кол-во найти.
    Ответить с цитированием  
     

  3. #3  
    Разбирающийся
    Регистрация
    18.11.2011
    Сообщений
    27
    Сказал(а) спасибо
    15
    Поблагодарили 0 раз(а) в 0 сообщениях
    Напишите пожалуйста правильные тексты этих задач.
    Ответить с цитированием  
     

  4. #4  
    Профи Аватар для Dispetcher14
    Регистрация
    12.12.2010
    Адрес
    Раменское
    Сообщений
    597
    Сказал(а) спасибо
    35
    Поблагодарили 68 раз(а) в 56 сообщениях
    Записей в блоге
    13
    Во-первых, "ELSEIF" пишется раздельно: ELSE IF.
    Условие нужно брать в скобки:
    Код qbasic:
    IF (<условие>) THEN <серия1> ELSE <серия2>
    "Спокойно, Маша, я Дубровский" (с) Дубровский, "Дубровский".
    Ответить с цитированием  
     

  5. #5  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Цитата Сообщение от Dispetcher14 Посмотреть сообщение
    Во-первых, "ELSEIF" пишется раздельно: ELSE IF.
    Условие нужно брать в скобки:
    Код qbasic:
    IF (<условие>) THEN <серия1> ELSE <серия2>
    Вообще, оператор вида ELSEIF как раз таки существует, и поддерживается как Qbasic, так и VB, так и Turbo Basic.
    Следующие два примера демонстрирует разницу между ELSEIF и ELSE IF:
    1.
    Код qbasic:
    I = 2
    IF I = 2 THEN
        [Ссылки могут видеть только зарегистрированные пользователи. ] "Goood"
    ELSE
        IF I = 3 THEN
            [Ссылки могут видеть только зарегистрированные пользователи. ] "WTF"
        [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    2.
    Код qbasic:
    I = 2
    IF I = 2 THEN
        [Ссылки могут видеть только зарегистрированные пользователи. ] "Goood"
    ELSEIF I = 3 THEN
        [Ссылки могут видеть только зарегистрированные пользователи. ] "WTF"
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    Оба эти примера корректно выполняются как в QB, так и в TB. Как видим, разница между ELSE IF и ElseIf в том, что в первом случае для IF нам потребуется закрывающий блок END IF (но только, если мы переносим действия после Else If на новую строку), а во втором случае закрывающий END IF не потребуется (вообще не потребуется).

    Условие брать в скобки совершенно не обязательно. Скобки требуются лишь для того, чтобы задать приоритет операций там, где он реально необходим. В бейсике операторы AND OR NOT XOR имеют более низкий приоритет, чем основные конструкции сравнения и арифметические операторы, поэтому скобки нужны ровно там, где они нужны, и не более того =)
    Дружба-магия-радость!
    Ответить с цитированием  
     

  6. #6  
    Разбирающийся
    Регистрация
    18.11.2011
    Сообщений
    27
    Сказал(а) спасибо
    15
    Поблагодарили 0 раз(а) в 0 сообщениях
    Спасибо за разъяснения, а что с задачами.
    Что в них нужно откорректировать?
    Ответить с цитированием  
     

  7. #7  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Сейчас поправлю кое где (уже в первой задачке есть ошибочка), и выложу исправленные, с указанием того, где были ошибки.
    Дружба-магия-радость!
    Ответить с цитированием  
     

  8. #8  
    Профи Аватар для Dispetcher14
    Регистрация
    12.12.2010
    Адрес
    Раменское
    Сообщений
    597
    Сказал(а) спасибо
    35
    Поблагодарили 68 раз(а) в 56 сообщениях
    Записей в блоге
    13
    Вот вторая:
    [Ссылки могут видеть только зарегистрированные пользователи. ]

    палочки от if до end if можно не писать
    "Спокойно, Маша, я Дубровский" (с) Дубровский, "Дубровский".
    Ответить с цитированием  
     

  9. Пользователь сказал cпасибо:

    Дмитрий 1993 (08.12.2011)

  10. #9  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Дмитрий 1993, первая:
    Код qbasic:
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Vvedite shirinu: ", B
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Vvedite visotu: ", A
     
    X1 = 320 - (B / 2)
    Y1 = 240 - (A / 2)
    [Ссылки могут видеть только зарегистрированные пользователи. ] 12
     
    [Ссылки могут видеть только зарегистрированные пользователи. ] (X1, Y1)-(X1 + B, Y1 + A), 1, B
    [Ссылки могут видеть только зарегистрированные пользователи. ] (X1, Y1)-(X1 + B, Y1 + A), 1
    [Ссылки могут видеть только зарегистрированные пользователи. ] (X1 + B, Y1)-(X1, Y1 + A), 1
     
    [Ссылки могут видеть только зарегистрированные пользователи. ] "visota: ", A, "shirina", B
    [Ссылки могут видеть только зарегистрированные пользователи. ] "diagonal: ", (A ^ 2 + B ^ 2) ^ .5
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Я ее нормально так перелопатил - было очень много лишних действий и переменных, плюс - программа рисовала прямоугольник и диагонали неверно. Смотрите, нарисовать прямоугольник можно не четырьмя командами Line, а всего одной. LINE (X1, Y1)-(X1 + B, Y1 + A), 1, B. Если после числа, указывающего цвет (1) через запятую указать B, то мы получим прямоугольник, левый верхний угол которого будет по координатам в первой паре скобок, а правый нижний - во второй паре скобок. А если вместо B поставить BF - то прямоугольник получится закрашенным. Далее, после вывода прямоугольника, мы выводим его диагонали - это две прямых линии из одного угла прямоугольника в противоположный. В общем то, все элементарно. Расчет длины диагонали вы произвели верно. Да, корень суммы квадратов длины и высоты.

    Третья:
    Код qbasic:
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Vvedite N", n
    [Ссылки могут видеть только зарегистрированные пользователи. ] 12
    IF n = 1 THEN
        [Ссылки могут видеть только зарегистрированные пользователи. ] "N=1"
        [Ссылки могут видеть только зарегистрированные пользователи. ] (300, 200)-(340, 240), 1, B
    ELSEIF n = 2 THEN
        [Ссылки могут видеть только зарегистрированные пользователи. ] "N=2"
        [Ссылки могут видеть только зарегистрированные пользователи. ] (320, 240), 20, 1
    ELSE 'ELSEIF N = 3 заменил на просто ELSE - так намного разумнее. А в остальном, программа работает верно.
        [Ссылки могут видеть только зарегистрированные пользователи. ] "N=1 ili N=2"
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    Дружба-магия-радость!
    Ответить с цитированием  
     

  11. Пользователь сказал cпасибо:

    Дмитрий 1993 (08.12.2011)

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

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

Похожие темы

  1. 5 задач
    от got_god в разделе QBasic
    Ответов: 0
    Последнее сообщение: 21.03.2012, 19:13
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •