как написать условие: если переменная равна любому целому числу, главное чтоб числу а не букве например?
if(g==…){}
что поставить вместо "…"?
как написать условие: если переменная равна любому целому числу, главное чтоб числу а не букве например?
if(g==…){}
что поставить вместо "…"?
Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.
17 мая 2009 в 15:04
Ну разумеется это не будет работать под IE, это же Java, а не Javasсript! Я тебе показал хороший алгоритм решения этой задачи и пример короткого и понятного кода, решающего эту задачу. Твоя задача – понять использованный подход и сделать на javasсript не хуже. Будем считать, что ты – эксперт по javasсript, я – эксперт по качеству кода (хотя и то, и другое далеко от действительности), и объединенными усилиями следует сделать хорошую программу на javasсript.
Касаемо "у каждого он свой" и "там где не смотрят, можно не заморачиваться": если тебе не доставляет физически неприятных ощущений написание говнистого кода, то это значит, что ты запросто *не заметишь*, когда напишешь, в условиях нехватки времени и давления начальства, говнистый код в реальной задаче ("нечего думать, прыгать надо") – и это тебе и твоей компании ой как аукнется и в денежном эквиваленте в т.ч.!
Над этим действительно надо работать, а не обижаться, когда тебе на это указывают.
Красота – это фактически единственный способ борьбы со сложностью кода. Учись бороться со сложностью не по-медвежьи напролом (исправлять пока не заработает, какое бы месиво не получалось), а подумавши.
17 мая 2009 в 15:04
Кстати, что ты называешь "принципами работы с js"? Это список функций, которые работают в IE, что ли? Или все-таки еще и хороший стиль написания кода на js, способы организации программ, отличительные и мощные особенности языка? Чему вас учит препод?
Javasсript – очень мощный язык, во многих отношениях гораздо мощнее и удобнее, чем Java или тем более си. Он близок к, не побоюсь этого слова, лиспу.
17 мая 2009 в 14:02
Нет, Ирина. Есть определённые подходы и критерии, общие для всех. Они объективны, выработаны долгой практикой разработки и (что весьма важно) сопровождения ПО.
Стиль или есть или его нет. Когда "там где надо" это – плохой стиль и над ним нужно работать. Чтобы даже для себя писать в удобочитаемой манере.
Если вы планируете работать программистом, то тестовое задание, написанное на собеседовании в таком стиле, сведёт ваши шансы, если не к нулю, то к величине, не далеко от нуля отстоящей.
17 мая 2009 в 12:05
2Жека jkff Кирпичев
"Мне кажется, препод или программист, которому важно только чтобы "работало" и неважна эстетическая составляющая кода – хреновый препод/программист."
>у данного препода нет задачи научить нас красиво код писать, у него задача научить принципам работы с JS,asp.. и тд, и со своей задачей он вполне прекрасно справляется
А что касается твоего кода на Java, то это блин под чертовым ИЕ хрен работать будет, потому что этот браузер не понимает работы со строками и ф-ции типа substring не катят.
2Александр Чигринец
что касаемо стиля, то у каждого он свой, если вам не нравится, то это сугубо ваше дело, там где надо, там я нормально пишу, а там где на это не смотрят то можно и так, чтоб не заморачиваться
а насчет примера,то спс
17 мая 2009 в 11:00
На целое число можно проверить регулярным выражением:
function isInt(val){
return /^[+-]?\d+$/.test(val)
}
Ирина Ким, навыки программирования включают в себя ещё и стиль написания кода. И вырабатывать этот стиль нужно сразу, а не потом как-нибудь, когда время поджимать не будет. Время всегда будет поджимать.
17 мая 2009 в 9:02
Мне кажется, препод или программист, которому важно только чтобы "работало" и неважна эстетическая составляющая кода – хреновый препод/программист.
Так.. Вот тебе код на Java, на JS сама как-нибудь переведи.
int evaluate(String expr) {
expr = expr.replaceAll(" ","");
if(!Pattern.compile("[0-9]+([+-][0-9]+)*=").matcher(expr).matches())
throw new IllegalArgumentException("A string of the form 123+456-78..= expected");
String[] parts = expr.substring(0,expr.length()-1).split("[+-]");
int res = Integer.parseInt(parts[0]);
for(int i=0; 2*i+2<parts.length; ++i) {
res += (parts[2*i+1].equals("+") ? 1 : -1) * Integer.parseInt(parts[2*i+2]);
}
return res;
}
Не тестировал, но идея, думаю, понятна.
17 мая 2009 в 2:02
if (((K*10)%10)==0) { document.write("Число целое"); }
17 мая 2009 в 1:04
вот насчет говнопреподов ты не прав, ты их не знаешь так что не стоит так говорить, я сочувствую что тебе с преподами не повезло, не стоит всех под одну гребенку ставить ок?
а что касается критериев и тому подобной бредятины, то никто не от чего не зависит, просто на данный момент мне нужно чтобы все правильно и без сбоев работало, тут уже главное приоритет.
Если тебе не нравится мой код, то можешь просто не брать с меня пример=)))
Если ты можешь написать "красивее" и лучше, да так чтоб все работало в соответствии с заданием, то ради Бога, дело твое, однако когда я просила помочь, ты в кустах сидел, так что нефиг после боя кулаками махаться.
Да и в конце концов – на вкус и цвет товарищей нет=)
17 мая 2009 в 0:02
"Не ок" тут твоя позиция "работает, никто не видит и ладно".
Если ты будешь зависеть от критериев оценки своих говнопреподов (которые на код не смотрят), а не от своих собственных – программировать как следует ты никогда не научишься.
16 мая 2009 в 23:02
ну других вариантов все равно никто не предложил, а че нить попроще,еще и чтоб под ИЕ работало, придумать я не в состоянии, тем более что препод на код не смотрит, а работает все на 100% и без багов, так что все ок=)
16 мая 2009 в 20:03
Ирина, ты уж извини, но это жопа полная, а не код!
16 мая 2009 в 17:02
Индусский код
16 мая 2009 в 16:03
ну вобщем я так сделала=)
function vich(src,dst1,dst2){
ss=new Array();s=new Array();
m=0;p=0;
dd="";
a=src.split(" ");
for(i in a){ss=ss+a[i];
}
for(i=0; i<ss.length; i++){s[i]=ss.charAt(i);}
for(i=0; i<s.length; i++){
if(s[0]=='-'){
s.splice(0,0,0);
}
}
for(i=0; i<s.length; i++){
if(s[i]=='+'){
s.splice(i,0,'.');
s.splice(i+2,0,'.');
i++;
}
if(s[i]=='-'){
s.splice(i,0,'.');
s.splice(i+2,0,'.');
i++;
}
if(s[i]=='='){
s.splice(i,0,'.');
i++;
}
}
for(i=0; i<s.length; i++){dd=dd+s[i];}
delete(s);
s=new Array();
s=dd.split(".");
for(i=0; i<s.length; i++){
if(s[i]=='+'){
p=s[i-1]*1+s[i+1]*1;
pp=p.toString();
s.splice(i-1,3,pp);
i=0;
}
if(s[i]=='-'){
m=s[i-1]*1-s[i+1]*1;
mm=m.toString();
s.splice(i-1,3,mm);
i=0;
}
if(s[i]=='='){
d=s[i-1];
}
}
Res2=d;
dst2.value=Res2;
Res1=ss+d;
dst1.value=Res1;
}
16 мая 2009 в 15:04
//wild.softodrom.ru/ap/p4079.shtml
смотрите как там сделано
16 мая 2009 в 15:04
if (((K*10)%10)==0) { document.write("Число целое"); }
16 мая 2009 в 15:00
не проще ли из строки вырезать сначала пробелы полностью, проверить на = в конце (непонятно хачем, если и так ясно что делаем), а потом проверить символы на +- и цифры ?
16 мая 2009 в 15:00
а я че сделала? хотя бы код гляньте
16 мая 2009 в 14:02
короче задание:
вводится строка типа -1 -517+9 =
нужно вывести решение ур-я. Допустимы тока + и -
я написала так:
<HTML>
<HEAD>
<meta http-equiv="Content-type" content="text/html; charset=Windows-1251">
<script LANGUAGE="JavaS?1?ript">
function sravnenie(src,dst1,dst2){
ss=new Array();
m=0;p=0;
a=src.split(" ");
s=new Array();
for(i in a){
ss=ss+a[i];
}
for(i=0; i<ss.length; i++){
s[i]=ss.charAt(i);
}
while(s.length!=2){
for(i=0; i<s.length; i++){
if(s[0]=='-'){
s.splice(0,0,0);
}
if(s[i]=='+'){
p=s[i-1]*1+s[i+1]*1;
pp=p.toString();
s.splice(i-1,3,pp);
i=0;
}
if(s[i]=='-'){
m=s[i-1]*1-s[i+1]*1;
mm=m.toString();
s.splice(i-1,3,mm);
i=0;
}
if(s[i]=='='){
d=s[i-1];
}
}
}
Res2=d;
dst2.value=Res2;
Res1=ss+d;
dst1.value=Res1;
}
</script>
</HEAD>
<BODY>
Введите арифметическое выражение, содержащее знаки "+" и "-", и заканчивающееся знаком "=":<br>
<input id="src" size="100"><br>
Результат вычислений: <br>
<input id="dst1" size="100" readonly><br><br>
Ответ: <br>
<input id="dst2" size="100" readonly><br><br>
<input type="button" value="Посчитать" id="mybutton" onClick="sravnenie(document.getElementById('src').value,document.getElementById('dst1'),document.getElementById('dst2'));">
</BODY>
</HTML>
все работает только если числа из одной цифры, т.е. прибавить например 22 нельзя, ниче работать не будет…
16 мая 2009 в 14:01
Смотря какому.
16 мая 2009 в 14:01
округлите переменную и сравните с ней же… тамый простой вариант