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

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

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

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


Гость






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

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


Профи
****

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

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


А сам? Мысли\код\вопросы?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.

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


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

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

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


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


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


Гость






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

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


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


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

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

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


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


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


Гость






ОГРОМНОЕ СПАСИБО!!!!!
Вы ПРограммист высочайшего уровня!
Я не представляю, что бы делал без таких людей как Вы!!! give_rose.gif good.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.

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


Гость






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

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


Гость






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

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

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


поиск
****

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

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


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

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


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


Гость






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

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

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


Гость






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

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

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


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

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

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


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

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


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

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

 





- Текстовая версия 29.03.2024 22:17
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name