Форум «Всё о Паскале» _ Задачи _ Проверка домашней работы первоклассника
Автор: Егор 22.09.2008 20:29
Составить программу "Проверка дом. работы первоклассника". В качестве входных данных программа получает выражение вида "2+3=5" или "7-3=5". В выражения всегда ровно 5 символов, примеры могут могут быть только на сложение или вычитание, аргументы выражений и результат могут состоять только из 1й цифры. необходимо проверить верно решен пример или нет, выдать сообщения о правильности решения, затем спросить будем ли продолжать проверку ("Продолжим? (Y,N)"), и если пользователь ответил утвердительно, предложить ему ввести следующий пример для проверки и т.д. При решении задачи использовать только символьный тип данных(строковый запрещается).
puporev, объясни, пожалуйста, каково назначение этой строки:
Цитата(puporev @ 22.09.2008 20:31)
if (ch='Y')or(ch='y')then continue
- в твоей программе?..
Автор: puporev 23.09.2008 11:31
Цитата(Lapp @ 23.09.2008 5:30)
puporev, объясни, пожалуйста, каково назначение этой строки: - в твоей программе?..
ch - переменная символьного типа (Char). При нажатии на клавишу со значком Y (обычно так сокращают Yes (да)) переменной ch присваивается это значение и если это так, то цикл начинается снова (процедура continue (продолжить)).
Автор: Lapp 23.09.2008 14:00
Цитата(puporev @ 23.09.2008 7:31)
... если это так, то цикл начинается снова (процедура continue (продолжить)).
Нет, continue означает несколько другое. Попробуй убрать эту строчку из программы и посмотри, как изменилось выполнение ее.
Автор: Егор 23.09.2008 16:52
ОГРОМНОЕ СПАСИБО!!!!! Вы ПРограммист высочайшего уровня! Я не представляю, что бы делал без таких людей как Вы!!!
Автор: puporev 23.09.2008 19:53
Цитата(Егор @ 23.09.2008 12:52)
ОГРОМНОЕ СПАСИБО!!!!! Вы ПРограммист высочайшего уровня! Я не представляю, что бы делал без таких людей как Вы!!!
Зря ты такое пишешь, программу-то я неправильно написал. Вот переделал:
Угу... Зато теперь - правильно, да? С goto вместо той конструкции repeat/until, которая у тебя была. Все же работало, единственное - была лишняя строка с continue (в твоем цикле она просто не нужна: после нее нет других операторов, цикл и так продолжит выполнение со следующей итерации). Убрал бы ее и все... goto-то зачем?
Автор: puporev 23.09.2008 20:09
Цитата(volvo @ 23.09.2008 16:02)
Угу... Зато теперь - правильно, да? С goto вместо той конструкции repeat/until, которая у тебя была. Все же работало, единственное - была лишняя строка с continue (в твоем цикле она просто не нужна: после нее нет других операторов, цикл и так продолжит выполнение со следующей итерации). Убрал бы ее и все... goto-то зачем?
В той конструкции команда продолжить выполнялась при нажатии любой клавиши, кроме N, а сейчас только при Y, остальные игнорируются.
Автор: renesko1 23.09.2008 20:34
Просто goto не привеиствуется и препод гостя скажет переделать с циклами, наверное.
Автор: puporev 23.09.2008 20:38
Цитата(renesko1 @ 23.09.2008 16:34)
Просто goto не привеиствуется и препод гостя скажет переделать с циклами, наверное.
Смотря какой препод. Если старый, наоборот только с goto и примет. Некоторые до сих пор требуют писать Program(name,input,output);
Автор: volvo 23.09.2008 21:32
Цитата
В той конструкции команда продолжить выполнялась при нажатии любой клавиши, кроме N, а сейчас только при Y, остальные игнорируются.
Хочешь, я тебя огорчу? Не только при Y... Есть еще как минимум 2 комбинации клавиш, которые работают не так, как задумывалось. Скажем, так:
вводишь выражение, программа пишет ответ, и нажимаешь... Не Y, и не y... А просто Shift и F6 одновременно... Упс. Я ж не нажал Y, почему программа решила продолжать?
Цитата
Если старый, наоборот только с goto и примет.
Это уже клиника, не надо делать заведомо неправильно... Ты ж на Паскале пишешь, а не на Бейсике, правда?
Автор: Lapp 24.09.2008 9:53
Цитата(puporev @ 23.09.2008 16:38)
Смотря какой препод. Если старый, наоборот только с goto и примет. Некоторые до сих пор требуют писать Program(name,input,output);
Эти две вещи (goto и форма заголовка) совершенно несравнимы по сути. Стандартный заголовок если и мешает, то непринципиально. А goto тебе может навредить на всю оставшуюся жизнь.. Готов спорить, что ты ошибаешься по поводу старых преподавателей. И вообще, кто как принимает - это не ориентир. Нас тут меньше всего интересует, какие у вас там препы. Но если хочешь научиться программировать - слушай лучших участников Форума.
Попробуй переделать свою прогу без goto. И в будущем старайся избегать его употребления..