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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите адаптировать код из Pascal в JS 
:(
    Опции темы
IliaGT
Дата 26.4.2010, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Приветствую всех посетителей данного форума!

Прошу помочь мне, начинающему веб-программисту, с адаптацией кода 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.


Заранее всем спасибо.
PM MAIL   Вверх
bars80080
Дата 26.4.2010, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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



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

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



Цитата(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;
}

только такие вопросы надобно бы задавать в центре помощи
PM MAIL WWW   Вверх
IliaGT
Дата 27.4.2010, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



bars80080,
Спасибо большое!
PM MAIL   Вверх
IliaGT
Дата 27.4.2010, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте!
Извините, пожалуйста, за беспокойство, но у меня возник вопрос такого характера.
Текст первой программы был написан по задаче:
"Даны целое положительное число. проверить истинность высказывания «Данное число является нечетным трехзначным»".
Так вот, в Паскале при вводе двухзначных чисел выводится ошибка, как и надо. Но в JavaScript при вводе чётных двухзначных чисел выводится True.
Пожалуйста, помогите исправить работу программы.
Заранее спасибо.
PM MAIL   Вверх
Amphiluke
Дата 27.4.2010, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Потому что в 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));


Это сообщение отредактировал(а) Amphiluke - 27.4.2010, 17:02
PM   Вверх
SelenIT
Дата 27.4.2010, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 7
Всего: 401



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

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

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


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


 




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


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

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