Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2014, 19:36   #1
Eliasdoug
Новичок
Джуниор
 
Регистрация: 21.02.2014
Сообщений: 1
По умолчанию Ошибка в коде (замена символов в строке)

PHP код:
<html>
<
head>
<
meta http-equiv="content-type" content="text/html; charset=utf-8" />
<
title>Таблица истинности</title>
</
head>
<
body>
<
script Language="JavaScript" type="text/javascript">
function 
ButtonClick() {
  
mm document.forms.myform.input_field.value;
  
document.write("Таблица истинности выражения: "mm)
  
document.write("<br>");
  for(var 
0<= 1i++)
  for(var 
0<= 1j++)
  for(var 
0<= 1k++)
{  
  
i;
  
j;
  
k
  m 
mm;
      
m.split (/a/).join (a).    // Поиск и замена символов на значения
        
split (/b/).join (b).
        
split (/c/).join (c);
        
      
m.split ('!0').join ('\t').    // инверсия
      
split ('!1').join ('!0').
      
split ('\t').join ('!1');
    
m.split (/!/).join ("");  // поиск и удаление знака !    
    
    
var 1;
    while (
m[1] != undefined) {
        if (
m[x] == '&') {
            if ((
m[x-1] == 1) && (m[x+1] == 1)) {
                
m.replace(m[x+1], 1);
                
m.replace(m[x-1], "");
                
m.replace(m[x-1], "");
                
x--;
                }
            else {
                
m.replace(m[x+1], 0);
                
m.replace(m[x-1], "");
                
m.replace(m[x-1], "");
                
                
x--;
            }
        }
        
x++;
    }

    var 
1;
    while (
m[1] != undefined) {
        if (
m[x] == '|') {
            if ((
m[x-1] == 0) && (m[x+1] == 0)) {
                
m.replace(m[x+1], 0);
                
m.replace(m[x-1], "");
                
m.replace(m[x-1], "");
                
x--;
                }
            else {
                
m.replace(m[x+1], 1);
                
m.replace(m[x-1], "");
                
m.replace(m[x-1], "");
                
x--;
            }
        }
        
x++;
    }
  
  

  
document.write("| " ,a" | " ,b" | " ,c" | "m" | ");
  
document.write("<br>");
}
  }

</script>
<h4>Введите выражение:</h4>
<form name="myform">
<input type="text" name="input_field" size="25">
<p><input type="button" style="width:170Px;height:25Px" value="Составить таблицу" OnClick="ButtonClick()"></p>
<cite>При заполнении используйте операции: &,|,!</cite>
</form>
</body>
</html> 
Вот у меня скрипт, вводится выражение и строится таблица истинности для него. Снчала нахожу символы a,b,c и заменяю на соответствующие значения, потом делаю инверсию, если есть в строке "не", затем удаляю из строки "!". Вот затем идут 2 цикла while, с помощью которых находятся в строке & или | и вместе с смежными операндами заменяются на 1 или 0. НО: для коротких выражений скрипт работает без проблем, но стоит ввести что-то длинное, работать начинает некорректно. Я думаю, что проблема в циклах while, а именно, где происходит замена символов на 1 или 0 и удаление ненужных смежных операндов. Не могу определить, что именно не так. Помогите пожалуйста
Eliasdoug вне форума Ответить с цитированием
Старый 21.02.2014, 20:10   #2
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Пройдись отладчиком пошагово. А вообще так: какие ограничения для выражения (есть ли скобки, какие приоритеты у операций, можно ли несколько отрицаний подряд)?
Somebody вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена символов в строке spaincome Паскаль, Turbo Pascal, PascalABC.NET 6 21.02.2013 18:57
замена символов в строке(ячейке) pooli Microsoft Office Excel 6 27.09.2010 08:46
Замена символов на слова в строке Shihmars Общие вопросы C/C++ 3 24.01.2010 18:51
TASM: Замена символов в строке. APTEMUC Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 18.01.2010 05:48
замена символов в строке euhenia Помощь студентам 3 30.11.2009 20:59