Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
1 / 1 / 2
Регистрация: 24.12.2010
Сообщений: 26
1

Проверка правильности ввода

01.06.2011, 16:31. Показов 1539. Ответов 2
Метки нет (Все метки)

нужна процедура, проверяющая правильность ввода арифметического выражения.
помогите плиз
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2011, 16:31
Ответы с готовыми решениями:

Проверка правильности ввода чисел
а положительное ,кратное 3, b положительное ,больше 3 ,но не меньше 30 Нужно написать программу...

Проверка правильности ввода числа
Всем доброго времени суток. Подскажите пожалуйста как осуществить: Нужно выполнить проверку на...

Определение правильности ввода даты
Заданы type chisl=1..31; mes=1..12; god 1..2100; data record ch:csisl; m:mes; g:god;...

Проверка правильности расстановки скобок
В арифметическом выражении, записанном в одну строку, есть круглые, квадратные и фигурные скобки....

2
be
94 / 94 / 64
Регистрация: 18.04.2011
Сообщений: 165
01.06.2011, 17:01 2
арифметическое выражение какое?
0
1 / 1 / 2
Регистрация: 24.12.2010
Сообщений: 26
01.06.2011, 18:33  [ТС] 3
Лучший ответ Сообщение было отмечено 3StYleR как решение

Решение

арифметическое выражение вводится с клавиатуры. Можно сделать, чтобы после ввода неверного выражения выдавалось сообщение о неправильном вводе, либо считывать каждый символ с клавиатуры, и если он может быть следующим символом в выражении (т.е. например знак действия может стоять только после цифры) то добавлять этот символ в строку вывода.

Добавлено через 22 минуты
Первый вариант я сейчас сам набросал

Вот код, если кому-нибудь пригодится

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
program rigth_input;
 
function balsk(s: string): boolean;
var
  i, count: integer;
begin
  count := 0;
  for i := 1 to Length(s) do
  begin
    if (s[i] = '(') and (count >= 0) then
      Inc(count);
    if s[i] = ')' then
      Dec(count);
  end;
  if count = 0 then
    balsk := true
  else
    balsk := false;
end;
 
var
  st: string;
  i: integer;
  b: boolean;
 
begin
  readln(st);
  b := true;
  if st[1] in ['*', '/', ')', '.'] then b := false; 
  for i := 2 to length(st) do
  begin
    if ((st[i] in ['-', '+', '*', '/', '.', ')']) and (st[i - 1] in ['-', '+', '*', '/', '.']))
    or ((st[i - 1] = '(') and (st[i] in [')', '*', '/', '.'])) 
    or ((st[i] in ['-', '+', '/', '*', '.', '(', ')']) and (length(st) = 1)) 
    or (balsk(st) = false) then 
      b := false;
  end;
  if b = false then st := 'String are not right';
  writeln(st);
  readln;
end.
но желательно реализовать второй вариант
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2011, 18:33

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Проверка правильности конструкции оператора if - Then
Программа должна проверять правильно ли пользователь ввел конструкцию условного оператора if ....

Проверка правильности скобочных конструкций (блок-схема)
дан текстовый файл, содержащий программу на некотором языке, в котором один оператор занимает...

Численная проверка правильности разложения в ряд заданной функции
составить программу для численной проверки правильности расположения в ряд заданной функции, для...

Проверка правильности расстановки нескольких видов скобок. Решение на стеке. Стек построен на динамическом однонаправленном списке.
Вот смотрите ,надо проверить если заданная строка символов правильным выражение , в которой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.