Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проанализировать строку, помогите переписать программу из делфи 
V
    Опции темы
1Andrey1
Дата 30.12.2009, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 8.9.2007

Репутация: нет
Всего: 4



Здравствуйте, история у меня такая. Возникла необходимость написать несложное приложение-калькулятор, которое должно находится на страничке в интернете. Я относительно неплохо знаю delphi, но с web никогда не связывался, поэтому сначала я написал свой калькулятор на делфи и вот теперь пытаюсь переписать его на javascript. Вроде как пока получалось (не без помощи такойто матери конечно), но вот в этом месте у меня почемуто полный ступор... Помогите перевести это на javascript.


Код

procedure TForm1.razborstroki;
const
letters = ['I','A','W','E','F'];
numbers = ['0'..'9'];
var
str:string;
j,tmp,I,A,W,E,F:integer;

begin

str:="A6W4E9"; //исходная строка

For j:=1 to Length(str) do   //перебираем по порядку все символы в исходной строке
  begin
    if str[j] in letters then   //если символ - буква
      begin
        tmp:=strtoint(str[j+1]);  //берем следующую за буквой цифру
        if str[j+2] in numbers  then tmp:=10;  //если две цифры подряд, то это 10
        case str[j] of  //присваиваем полученную цифру в нужную переменную
         'I':I:=tmp;
         'A':A:=tmp;
         'W':W:=tmp;
         'E':E:=tmp;
         'F':F:=tmp;
        end;
      end;
    end;
end;


я откомментировал текст программы, но чтобы было понятнее обьясню что мне все таки нужно. Есть некая строка, она состоит из букв (это могут быть только буквы I,A,W,E,F) за буквой - цифра от 1 до 10. Т.е. строка выглядит например так "A6W4E9", ну или "I10A9E5F3" или как-нибудь еще, но буквы только перечисленные и значения только от 1 до 10. Мне нужно проанализировав строку присвоить значения соответствующим переменным, т.е из строки "A6W4E9" я должен получить значение переменных A=6,W=4,E=9. Надеюсь на вашу помощь.
PM MAIL ICQ   Вверх
bars80080
Дата 30.12.2009, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(1Andrey1 @  30.12.2009,  20:38 Найти цитируемый пост)
т.е из строки "A6W4E9" я должен получить значение переменных A=6,W=4,E=9

я уверен, что это всё можно было обойти благодаря встроенным средствам javascript и сделать гораздо проще

ну, да ладно

Код

var str = '', s = '', res = '', j = 0, tmp = 0, I = 0, A = 0, W = 0, E = 0, F = 0;
str = "A6W10E9"; //исходная строка
var slen = str.length;
for(j = 0; j < slen; j++) {   //перебираем по порядку все символы в исходной строке
    s = str.slice(j, (j + 1));
    tmp = parseInt(s);
    if(isNaN(tmp)) {
        res = s + '=';
        j++;
        s = str.slice(j, j + 1);
        res += s;
        if(s == '1' && j < (slen - 1)) {
            s = str.slice(j + 1, j + 2);
            if(s == '0') { res += s; }
        }
        eval(res);
    }
}
alert('I='+I+',A='+A+',W='+W+',E='+E+',F='+F+'');



жесть конечно полная

следовало бы озвучить настоящую задачу и показать, как решил её делать. наверное, всё-таки в этих двух языках она решается по разному
PM MAIL WWW   Вверх
1Andrey1
Дата 31.12.2009, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 8.9.2007

Репутация: нет
Всего: 4



Огромное спасибо! сейчас буду пробовать. 

А на счет жести, я и не спорю smile но на самом деле 
Цитата(1Andrey1 @  30.12.2009,  21:38 Найти цитируемый пост)
из строки "A6W4E9" я должен получить значение переменных A=6,W=4,E=9.

Это практически и есть почти вся задача... ну не совсем вся конечно. Таких строк несколько, их вводит пользователь. Просто оно хоть с первого взгляда и кажется странным, но для этой конкретной задачи такой способ ввода исходных данных является самым удобным для пользователя. Значения в переменные я получаю конечно тоже не просто так, потом все эти значения считаются по определенной формуле, но тут уже тривиальная задача и с ней я способен справиться сам. 
PM MAIL ICQ   Вверх
bars80080
Дата 31.12.2009, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



ну, тебе конечно видней, как удобнее. но мне даже близко не очевидно, что это есть.

если конечно речь идёт об обычном калькуляторе
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0461 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.