Работа со строками |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Работа со строками |
PavelM |
Сообщение
#1
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Pavel Репутация: 0 |
Добрый день!
Подскажите пожайлуста как это оформить(решить задачку)? сама задача: Дана цепочка символов вида "число1+число2*число3". Вычислить числовое значение выражения и напечатать. цепочка вводится с клавиатуры (строка2+3*5), необходимо сначало определить 1-ю переменную, знак вычисления, 2-ю переменную, знак, 3-ю, и вычислить.на 2 числа вроде работает, а на 3 не хочет. заранее благодарен. |
Client |
Сообщение
#2
|
Профи Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: 20 |
а что пробовал? выкладывай код, поможем
|
PavelM |
Сообщение
#3
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Pavel Репутация: 0 |
program raschet;
var str:string[50]; zs:string[4]; si:char; a1,a2,a3:real; i,is,p1,p2,p3:integer; begin writeln('введите строку с выражением'); readln(str); zs:='+-*/'; si:=' '; for i:=1 to 4 do if pos(zs[i],str)>0 then begin is:=pos(zs[i],str); si:=zs[i]; end; if si=' ' then writeln('неправильное выражение') else begin val(copy(str,1,is-1),a1,p1); val(copy(str,is+1,length(str)-is),a2,p2); {val(copy(str,is+1,length(str)-is),a3,p3);} end; writeln(a1); writeln(p1); writeln(a2); writeln(p2); end. |
Client |
Сообщение
#4
|
Профи Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: 20 |
Цитата Дана цепочка символов вида "число1+число2*число3" Если только сложение и умножение, то просто находишь позицию '+' и '*', переводишь в число и считаешь |
PavelM |
Сообщение
#5
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Pavel Репутация: 0 |
а чтоб для всех операций, если кто нить введет не так как задумано?
|
volvo |
Сообщение
#6
|
Гость |
Цитата если кто нить введет не так как задумано? Он должен получить исчерпывающее сообщение о том, что можно вводить, а что нельзя... Или ты пишешь комбайн "все в одном"? Вроде бы заявлено "+" и "*", но раз ввели "минус" - то так и быть, посчитаем и его?... |
klem4 |
Сообщение
#7
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Цитата если Ну кроме операций еще много чего можно ввести, функции, скобки, константы ... Так что ты четко реши что тебе нужно реализовать и вперед. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Гость |
Сообщение
#8
|
Гость |
Ок, только + и *
|
PavelM |
Сообщение
#9
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Pavel Репутация: 0 |
Да, + и * остальное не нужно
|
Client |
Сообщение
#10
|
Профи Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: 20 |
uses crt;Так же можешь проверить если '+' находится после '*', то выдать сообщение об ошибке или writeln(a*b+c);но это уже как хочешь Сообщение отредактировано: Client - |
PavelM |
Сообщение
#11
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Pavel Репутация: 0 |
Спасибо огромное!!!
|
Текстовая версия | 23.12.2024 19:28 |