Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Помогите адаптировать код из Pascal в JS


Автор: IliaGT 26.4.2010, 18:14
Приветствую всех посетителей данного форума!

Прошу помочь мне, начинающему веб-программисту, с адаптацией кода Pascal в JavaScript.
Код

Program 1;
Uses crt;
Var a: integer;
d:Boolean;
Begin
ClrScr;
Writeln('Введите число');readln(a);
If (a mod 2<>0) and (a div 100>0)  then begin d:=true; writeln(d); end else writeln(d);
Readln;
End.


Код

Program case2;
Var k:integer;
Begin
Writeln('Введите номер месяца');
Readln(k);
Case k of 
1,3,5,7,8,10,12:Writeln('31 день');
4,6,9,11:Writeln('30 дней');
2:Writeln ('28 день');
Else Writeln('Введен неверный номер месяца');
end;
Readln;
End.


Заранее всем спасибо.

Автор: bars80080 26.4.2010, 19:38
Цитата(IliaGT @  26.4.2010,  18:14 Найти цитируемый пост)
Program 1;
Uses crt;
Var a: integer;
d:Boolean;
Begin
ClrScr;
Writeln('Введите число');readln(a);
If (a mod 2<>0) and (a div 100>0)  then begin d:=true; writeln(d); end else writeln(d);
Readln;
End.


Код

var a = prompt('Введите число', 0);
a *= 1;
var d = false;
if(!(a%2) && (a/100 > 0)) { d = true; }
alert(d);



Цитата(IliaGT @  26.4.2010,  18:14 Найти цитируемый пост)
Program case2;
Var k:integer;
Begin
Writeln('Введите номер месяца');
Readln(k);
Case k of 
1,3,5,7,8,10,12:Writeln('31 день');
4,6,9,11:Writeln('30 дней');
2:Writeln ('28 день');
Else Writeln('Введен неверный номер месяца');
end;
Readln;
End.


Код

var a = prompt('Введите номер месяца', 1);
a *= 1;
switch(a) {
    case 1: case 3: case 5: case 7: case 8: case 10: case 12: alert('31 день'); break;
    case 4: case 6: case 9: case 11: alert('30 дней'); break;
    case 2: alert('28 дней'); break;
    default: alert('Введён неверный номер месяца'); break;
}

только такие вопросы надобно бы задавать в центре помощи

Автор: IliaGT 27.4.2010, 12:09
bars80080,
Спасибо большое!

Автор: IliaGT 27.4.2010, 15:57
Здравствуйте!
Извините, пожалуйста, за беспокойство, но у меня возник вопрос такого характера.
Текст первой программы был написан по задаче:
"Даны целое положительное число. проверить истинность высказывания «Данное число является нечетным трехзначным»".
Так вот, в Паскале при вводе двухзначных чисел выводится ошибка, как и надо. Но в JavaScript при вводе чётных двухзначных чисел выводится True.
Пожалуйста, помогите исправить работу программы.
Заранее спасибо.

Автор: Amphiluke 27.4.2010, 16:49
Потому что в Javascript нет оператора, аналогичного паскалевскому div (по крайней мере, я не помню, чтобы был... smile )

Попробуйте вместо
Цитата(bars80080 @  26.4.2010,  23:38 Найти цитируемый пост)
Код
if(!(a%2) && (a/100 > 0)) { d = true; }


Код

d = ((a%2 != 0) && (Math.floor(Math.abs(a)/100) > 0));


Добавлено @ 16:54
А вообще, конечно, проверка на трехзначность путем деления на сотню... довольно странный способ. smile

Код

d = ((a%2 != 0) && (a.toString().length == 3));

Автор: SelenIT 27.4.2010, 17:02
Еще на трехзначность можно проверить "в лоб" двумя условиями - ((a >= 100) && (a <= 999)). А еще можно воспользоваться преимуществами JS-овской динамической типизации и напрямую замерить длину строкового представления числа:
Код

if(!(a%2) && ((a + '').length == 3) { d = true; }

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)