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

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

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

> 4+4=8, Программа
Rossi
сообщение 20.06.2007 16:14
Сообщение #1


Гость






При в воде на экрна 4+4 после нажатия на ентер все должно посщитатся и вывести в таком формате 4+4=8.
Правильно ли я реализовал эту программу ?
uses crt;
var a,b,s,c:integer;
begin
write('>'); readln(a,c,b);
write(a);
s:=a+b;
case c of
'+':write('+');
end;
write(b);
writeln('=',s);
end.


Сообщение отредактировано: Rossi - 20.06.2007 16:15
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Urnix
сообщение 20.06.2007 17:09
Сообщение #2


Начинающий


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

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


А я бы сделал так

uses crt;
const
GoodChars = ['0'..'9','+','-','*','/','.'];
ActionChars = ['+','-','*','/'];
var
s:string;
error:boolean;
i,ActionNum,val_err:integer;
ActionChar:char;
a,b:real;
begin
clrscr;
writeln('vvedite arifmeticheskoe virazhenie:');
readln(s);
clrscr;
error:=false;
for i:=1 to length(s) do
if not (s[i] in GoodChars)
then error:=true;
ActionNum:=0;
for i:=1 to length(s) do
if s[i] in ActionChars
then
begin
ActionChar:=s[i];
inc(ActionNum);
end;
if (ActionNum<>1) or (pos(ActionChar,s)=1) or (pos(ActionChar,s)=length(s))
then error:=true;
if not error
then
begin
val(copy(s,1,pos(ActionChar,s)-1),a,val_err);
val(copy(s,pos(ActionChar,s)+1,length(s)-pos(ActionChar,s)),b,val_err);
case ActionChar of
'+': writeln(s,'=',a+b:1:2);
'-': writeln(s,'=',a-b:1:2);
'*': writeln(s,'=',a*b:1:2);
'/': if b=0
then writeln('na nol delit'' nel''za')
else writeln(s,'=',a/b:5:2);
end;
end
else writeln('Vvedenniy tekst ne yavlaetsa arifmeticheskim virazheniem');
readln;
end.

//это для общего случая

Сообщение отредактировано: Urnix - 20.06.2007 17:30


--------------------
Интернет, как смерть - забирает лучших...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Rossi   4+4=8   20.06.2007 16:14
Urnix   Правильно ли я реализовал эту программу ? Так ...   20.06.2007 16:29
Rossi   Так и быть поработаю debug'ером: ERROR 74: Co...   20.06.2007 16:37
compiler   ???добавь еще варианты или используй if ... then.....   20.06.2007 16:39
Rossi   Ошибку нашел... забыл c:char; program pas; uses cr...   20.06.2007 16:43
compiler   вводится всегда буде с однозначные числа?   20.06.2007 16:55
Rossi   Да.   20.06.2007 16:56
compiler   и всегда использываться операция сложения?   20.06.2007 16:58
volvo   Потому, что ты наверняка вводишь так: Число+Число,...   20.06.2007 17:01
compiler   P.S. Если с учетом последнего поста, то читать вв...   20.06.2007 17:06
Urnix   А я бы сделал так uses crt; const GoodChars = ...   20.06.2007 17:09
Rossi   Спасибо огромнишое всем!!! Теперь у ме...   20.06.2007 17:14
compiler   Теперь у меня появился вопрос что такое readсправк...   20.06.2007 17:16
volvo   Я и не присваивал... А вот реализовал ты свою идею...   20.06.2007 17:16
volvo   Ты еще не научился? Я больше повторять не буду - я...   20.06.2007 17:30
compiler   Как значения вводишь, то и получаешь. Больше мне с...   20.06.2007 17:41
Urnix   как то программка твоя не коректно работает... ...   20.06.2007 17:35
compiler   Ребята вы загнались, и я тоже.я пока не нашел числ...   20.06.2007 17:46
Rossi   Воть подумал можно ли модефицировть нашу программк...   20.06.2007 17:45
volvo   Очень интересно... Тогда смотри сюда: А в своем ...   20.06.2007 17:50
compiler   я тестировал твою программу с пробелами(как было с...   20.06.2007 18:15
Malice   Вот так я думаю вернее будет :yes2: var s:string...   21.06.2007 8:28
Fanat   Извините,не удержался... Malice,тогда проверить ещ...   21.06.2007 18:45
Rossi   Народ воть я и доработал калькулятор терь он умнаж...   22.06.2007 13:55


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

 



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