IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Проверка домашней работы первоклассника, Помогите пожалуйста!!!!)))
Егор
сообщение 22.09.2008 16:29
Сообщение #1


Гость






Составить программу "Проверка дом. работы первоклассника". В качестве входных данных программа получает выражение вида "2+3=5" или "7-3=5". В выражения всегда ровно 5 символов, примеры могут могут быть только на сложение или вычитание, аргументы выражений и результат могут состоять только из 1й цифры. необходимо проверить верно решен пример или нет, выдать сообщения о правильности решения, затем спросить будем ли продолжать проверку ("Продолжим? (Y,N)"), и если пользователь ответил утвердительно, предложить ему ввести следующий пример для проверки и т.д. При решении задачи использовать только символьный тип данных(строковый запрещается).

заранее благодарю give_rose.gif ))
 К началу страницы 
+ Ответить 
Айра
сообщение 22.09.2008 20:09
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


А сам? Мысли\код\вопросы?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
puporev
сообщение 22.09.2008 20:31
Сообщение #3


Гость






Попробуйте так.
uses crt;
var a,b,c,d,e,ch:char;
begin;
clrscr;
repeat
writeln('Vvedite vyrazenie:');
readln(a,b,c,d,e);
if (b='+')and(ord(a)+ord©-96=ord(e)-48)
or (b='-')and(ord(a)-ord©=ord(e)-48)
then writeln('Verno!')
else writeln('Ne verno!');
writeln;
writeln('Продолжим? (Y/N)');
readln(ch);
if (ch='Y')or(ch='y')then continue
until (ch='N')or(ch='n');
end.

 К началу страницы 
+ Ответить 
Lapp
сообщение 23.09.2008 5:30
Сообщение #4


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


puporev, объясни, пожалуйста, каково назначение этой строки:
Цитата(puporev @ 22.09.2008 20:31) *
if (ch='Y')or(ch='y')then continue
- в твоей программе?..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
puporev
сообщение 23.09.2008 7:31
Сообщение #5


Гость






Цитата(Lapp @ 23.09.2008 5:30) *

puporev, объясни, пожалуйста, каково назначение этой строки:
- в твоей программе?..


ch - переменная символьного типа (Char).
При нажатии на клавишу со значком Y (обычно так сокращают Yes (да)) переменной ch присваивается это значение и если это так, то цикл начинается снова (процедура continue (продолжить)).
 К началу страницы 
+ Ответить 
Lapp
сообщение 23.09.2008 10:00
Сообщение #6


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(puporev @ 23.09.2008 7:31) *
... если это так, то цикл начинается снова (процедура continue (продолжить)).
Нет, continue означает несколько другое.
Попробуй убрать эту строчку из программы и посмотри, как изменилось выполнение ее.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Егор
сообщение 23.09.2008 12:52
Сообщение #7


Гость






ОГРОМНОЕ СПАСИБО!!!!!
Вы ПРограммист высочайшего уровня!
Я не представляю, что бы делал без таких людей как Вы!!! give_rose.gif good.gif
 К началу страницы 
+ Ответить 
puporev
сообщение 23.09.2008 15:53
Сообщение #8


Гость






Цитата(Егор @ 23.09.2008 12:52) *

ОГРОМНОЕ СПАСИБО!!!!!
Вы ПРограммист высочайшего уровня!
Я не представляю, что бы делал без таких людей как Вы!!! give_rose.gif good.gif

Зря ты такое пишешь, программу-то я неправильно написал. Вот переделал:

uses crt;
var a,b,c,d,e:char;
label 1,2; {метки}
begin;
clrscr;
1:
writeln('Vvedite vyrazenie:');
readln(a,b,c,d,e);
if (b='+')and(ord(a)+ord©-96=ord(e)-48)
or (b='-')and(ord(a)-ord©=ord(e)-48)
then writeln('Verno!')
else writeln('Ne verno!');
writeln;
writeln('Продолжить? (Y/N)');
2:
case readkey of
#89:goto 1; {коды клавиш Y/y - продолжить}
#121:goto 1;
#78:exit; {коды клавиш N/n -выход}
#110:exit;
end;
goto 2; {на остальные клавиши не реагирует}
end.

 К началу страницы 
+ Ответить 
volvo
сообщение 23.09.2008 16:02
Сообщение #9


Гость






Угу... Зато теперь - правильно, да? С goto вместо той конструкции repeat/until, которая у тебя была. Все же работало, единственное - была лишняя строка с continue (в твоем цикле она просто не нужна: после нее нет других операторов, цикл и так продолжит выполнение со следующей итерации). Убрал бы ее и все... goto-то зачем?

Сообщение отредактировано: volvo - 23.09.2008 16:03
 К началу страницы 
+ Ответить 
puporev
сообщение 23.09.2008 16:09
Сообщение #10


Гость






Цитата(volvo @ 23.09.2008 16:02) *

Угу... Зато теперь - правильно, да? С goto вместо той конструкции repeat/until, которая у тебя была. Все же работало, единственное - была лишняя строка с continue (в твоем цикле она просто не нужна: после нее нет других операторов, цикл и так продолжит выполнение со следующей итерации). Убрал бы ее и все... goto-то зачем?

В той конструкции команда продолжить выполнялась при нажатии любой клавиши, кроме N, а сейчас только при Y, остальные игнорируются.
 К началу страницы 
+ Ответить 
renesko1
сообщение 23.09.2008 16:34
Сообщение #11


поиск
****

Группа: Пользователи
Сообщений: 346
Пол: Мужской
Реальное имя: nir

Репутация: -  2  +


Просто goto не привеиствуется и препод гостя скажет переделать с циклами, наверное.

Сообщение отредактировано: renesko1 - 23.09.2008 16:34


--------------------
typedef void Śūnyatā ;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
puporev
сообщение 23.09.2008 16:38
Сообщение #12


Гость






Цитата(renesko1 @ 23.09.2008 16:34) *

Просто goto не привеиствуется и препод гостя скажет переделать с циклами, наверное.

Смотря какой препод. Если старый, наоборот только с goto и примет. Некоторые до сих пор требуют писать Program(name,input,output);
 К началу страницы 
+ Ответить 
volvo
сообщение 23.09.2008 17:32
Сообщение #13


Гость






Цитата
В той конструкции команда продолжить выполнялась при нажатии любой клавиши, кроме N, а сейчас только при Y, остальные игнорируются.
Хочешь, я тебя огорчу? Не только при Y... Есть еще как минимум 2 комбинации клавиш, которые работают не так, как задумывалось. Скажем, так:

вводишь выражение, программа пишет ответ, и нажимаешь... Не Y, и не y... А просто Shift и F6 одновременно... Упс. Я ж не нажал Y, почему программа решила продолжать?

Цитата
Если старый, наоборот только с goto и примет.
Это уже клиника, не надо делать заведомо неправильно... Ты ж на Паскале пишешь, а не на Бейсике, правда?
 К началу страницы 
+ Ответить 
Lapp
сообщение 24.09.2008 5:53
Сообщение #14


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(puporev @ 23.09.2008 16:38) *
Смотря какой препод. Если старый, наоборот только с goto и примет. Некоторые до сих пор требуют писать Program(name,input,output);
Эти две вещи (goto и форма заголовка) совершенно несравнимы по сути. Стандартный заголовок если и мешает, то непринципиально. А goto тебе может навредить на всю оставшуюся жизнь..
Готов спорить, что ты ошибаешься по поводу старых преподавателей. И вообще, кто как принимает - это не ориентир. Нас тут меньше всего интересует, какие у вас там препы. Но если хочешь научиться программировать - слушай лучших участников Форума.

Попробуй переделать свою прогу без goto. И в будущем старайся избегать его употребления..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 13:30
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"