|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.07.2013, 23:30 | #1 |
Пользователь
Регистрация: 04.07.2013
Сообщений: 27
|
Сложная задача. Тождество . Проверка пустого int
требуется написать программу, которая будет проверять тождества
пример 1+1=2 вывод: YES; 1+1=1 вывод: NO 1-1= вывод должен быть ERROR (по условию задачи http://acmp.ru/index.asp?main=task&id_task=80), но у меня выводит YES, т.к пустота 0 Прошу помочь. Нужно сделать так, чтобы когда появилась пустота, писать ERROR, а когда 0, то уже считать и т.д Пример: 1-1=0 YES 1-1= ERROR (а не YES) То есть, подскажите, как проверить пустоту!!!! Причем не с помощью символов, а через int |
11.07.2013, 00:34 | #2 |
Форумчанин
Регистрация: 09.07.2013
Сообщений: 249
|
уаперьуихЪ - переменная пустой небывает. УаутарихЪ тебе нужно подсчитать количество цифр, наличие равно и там плюса минуса и т.д. и проверить наличие каждого символа в списке допустимых. УтретьихЪ чтобы проверить правильность результата вычисления используй sprintf().
do not use your brain
|
11.07.2013, 00:34 | #3 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Обычно прошу наработки, но сейчас нету сил их ждать
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
11.07.2013, 00:39 | #4 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
И "операторы" - символы вида: /*+- Совокупность операндов и операторов определяет "выражение". Выражение может быть вида: операнд1+операнд2-операнд3, и тп. Так же есть особый операнд вида: =, который делит всю арифметическую запись на левостоящее "выражение" и правостоящее "выражение". Совокупность выражений определяет "арифметическую запись" Твоя задача: 1. Получить из источника символьную строчку, содержащую "арифметическую запись" 2. Найти в ней оператор =, и получить левостоящее "выражение" и правостоящее "выражение". В случае, если в записи отсутствует оператор =, результат работы ERROR В случае, если отсутствует какое либо из этих двух выражение, результат работы ERROR 3. Анализ "выражения". По следующему алгоритму нужно проверить оба выражения: 3.1 Разбить выражение на список операндов и операторов. 3.2 Количество операндов должно быть на единицу больше, чем количество операторов. Если это не так, то результат работы ERROR 3.3 Проверить корректность содержимого "операндов". Символы, из которых состоят операнды должны составлять числа от нуля до 30000. Если это не так, то результат работы ERROR 3.4 Проверить корректность содержимого "операторов". Это должны быть символы из допустимого набора вида "+-/*" (и тп, в зависимости от того, как операции над числами допустимы) Если среди операторов окажется символ, которого нет в массиве доступных операторов, тогда результат работы ERROR 4. Рассчитать результат выражения (рассчитать нужно оба выражения) 4.1 Сохраняем в промежуточный результат значение первого операнда. 4.1 В цикле берем промежуточный, и следующий операнд, и применяем к ним операцию согласно символу оператора. Полученный результат сохраняем в промежуточный результат. И так до конца цикла. 5. Сравниваем результат расчета левостоящего и правостоящего выражения. |
|
11.07.2013, 00:39 | #5 |
Форумчанин
Регистрация: 09.07.2013
Сообщений: 249
|
А ето я запомню.
do not use your brain
|
11.07.2013, 10:08 | #6 | |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
Цитата:
|
|
11.07.2013, 14:05 | #7 |
Форумчанин
Регистрация: 11.01.2013
Сообщений: 149
|
Констатация факта. Программа сводится к обычному интерпретатору.
Может это и чушь, но это моя чушь и я ее никому не отдам.
|
11.07.2013, 18:14 | #8 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Цитата:
Но все же она рассчитана на не очень строгие тесты. А то вон в соседней теме вообще выбрасывали куски из программы, чтобы прошла только те тесты, которые в системе, зато оказалась в топе как можно выше.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
|
12.07.2013, 00:14 | #9 | |
Пользователь
Регистрация: 04.07.2013
Сообщений: 27
|
Цитата:
|
|
12.07.2013, 00:34 | #10 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
например Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сложная задача! | Pashok6 | Паскаль, Turbo Pascal, PascalABC.NET | 10 | 02.01.2012 00:03 |
Проверка в строки на число типа int | Assemblerru | Общие вопросы C/C++ | 5 | 01.06.2011 13:32 |
функция float average(int arrray[],int from,int to) | yuliyayuliya | Помощь студентам | 0 | 25.04.2011 21:55 |
сложная задача | ugradvizhok | Помощь студентам | 1 | 30.03.2011 23:30 |
С++ Сложная задача | sir.andrey | Помощь студентам | 12 | 26.10.2010 20:25 |