Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Вопросы по программированию .


Рекомендуемые сообщения

Спасибо тебе большое за чёткий ответ,но сюда я буду иногда добовлять вопросы каторые мне непонятны если вы не против ...

Спасибо всем.

Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...
  • Ответов 57
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

parseint("15" ,8) // результат = 13

parseint("0xFF",16) // результат = 255

Вопрос, как из этого ("15" ,8) ("0xFF",16) получились такие ответы результат = 13 ,результат = 255 ?

Вот то ,что написанно в учебнике:

Функция parseInt(cipOKa, основание) преобразует указанную в параметре строку

в целое число в системе счисления по указанному основанию (8, 10 или 16).

Если основание не указано, то предполагается 10, то есть десятеричная систе-

ма счисления.

Вот это я понямаю parseint ("15.5") //результат = 15 ,а указанное выше нет...

Помогите разобраться.

Спасибо

Ссылка на комментарий
Поделиться на другие сайты

Svoboda:

Для этого надо разобраться сначала, что такое система счисления. Система счисления - это система записи чисел. Вообще-то их изобретено было много, наша - позиционная (бывают и непозиционные, например, римская, где, например, число 19 записывается как XIX), то есть число изображается цифрами на разных позициях. Например, в записи числа 123 самая правая цифра - число единиц, средняя - число десятков, левая - число сотен. Поскольку мы считаем десятками (или десятками десятков - сотнями, и так далее), нам хватает десяти цифр, а если количество десятков в числе, например, превзойдет 9, то мы просто добавляем единицу в позицию для сотен.

Но есть и другие позиционные системы. Например, троичная: во взводе три отделения, три взвода - рота, три роты - батальон, три батальона - полк, три полка - дивизия, три дивизии - корпус, три корпуса - армия. Поэтому 43 отделения - это 1 отделение и 14 взводов, то есть 1 отделение, 2 взвода и 4 роты, то есть 1 отделение, 2 взвода, 1 рота и 1 батальон. Итого получаем запись 1121 - 1 батальон, 1 рота, 2 взвода, 1 отделение. Это (1121) - запись числа 43 в троичной системе.

В двоичной системе счисления есть только две цифры: 0 и 1, поэтому перенос в следующую позицию происходит, если в какой-то позиции набралось больше чем одно подразделение.

В шестнадцатеричной (гексадецимальной, hex-системе) переход на следующую позицию осуществляется, если в данной появляется больше 15 единиц этой позиции. Так как надо 16 цифр (считая и 0), используются дополнительно в качестве цифр после 9 буквы a, b, c, d, e, f. В частности, f - это цифра, соответствующая числу 15 в десятичной системе.

В твоем примере, 15 в восьмеричной системе равно, если расписать содержание позиций записи числа в привычной десятичной системе, 1*8+5=13.

0xff - это запись числа ff в шестнадцатиричной системе (приставка 0x применяется, чтобы показать компилятору, что дальше идут не просто буквы, а шестнадцатиричные цифры). Заменяя шестнадцатеричные цифры их значениями в десятичной системе, получаем ff=15*16+15=255. 16 тут появилось, потому что емкость каждой единицы из этой позиции числа равна 16 при записи в десятичной системе счисления.

Добавлю еще перевод числа из моего примера. Троичное число 1121 в десятичной системе запишется как 1*3*3*3+1*3*3+2*3+1=43. Потому что единицы самой правой позиции - просто единицы, второй справа позиции - тройки, третьей справа позиции - тройки троек (3*3), четвертой справа - тройки троек троек (3*3*3).

Ссылка на комментарий
Поделиться на другие сайты

А почему мне parsefloat ("17.5") даёт // результат = 435 ,а не 17.5 ,когда например parsefloat("3.14") даст // результат = 3.14 ...?

Не понямаю вроде два одинаковых числа по строению а результаты разные ...

Ссылка на комментарий
Поделиться на другие сайты

Svoboda

А почему мне parsefloat ("17.5") даёт // результат = 435 ,а не 17.5
Как ты этого добился и на каком языке? :greedy:

Правильно, кстати, не parsefloat, а parseFloat - для C-подобных языков строчные и заглавные буквы - разные. Прикладываю пример работы parseFloat ("17.5") - сначала просмотри файл, а потом замени его расширение на htm (или html, если больше нравится) и запусти двойным щелчком мыши.

test.txt

test.txt

Ссылка на комментарий
Поделиться на другие сайты

Ты там написал :

Hello, Svoboda!

17.5

-)

У меня на Python получается 17.5 ,а на Java в учебнике вот ,что написанно :

Функция parseFloat(cтpoKa) преобразует указанную строку в число с плавающей разделительной (десятичной, основание) точкой.

Примеры :

parseFloat("3.14") // результат = 3.14

parseFloat("-7.875") // результат = -7.875

parseFloat ("435") // результат = 435

parseFloat ("Вася") // результат = NaN, то есть не является числом

parseFloat ("17.5") // результат = 435

Или это опечатка автора, или ....?

Спасибо .

[mergetime]1128959655[/mergetime]

Да кстати ты написал скрипт на Java и у тебя получился правильный ответ .

Я пытался написать ,что то на подобе этого ,но у меня не получалось.

<html>

<body>

<script language="JavaScript">

document.write("<BR>" + "Hello, Svoboda!")

document.write("<BR>" + parseFloat ("17.5"))

</script>

</body>

</html>

Значит это опечатка автора наверно ,как думаешь ?

Изменено пользователем Сергей Плоткин
Ссылка на комментарий
Поделиться на другие сайты

Svoboda:

Конечно, опечатка. Причем бросающаяся в глаза. Я даже могу сказать, почему она появилась: потому что автор для быстроты скопировал третью строку в пятую и подкорректировал число в примере, а в комментарии подкорректировать число он забыл. Может, его обедать позвали или в дверь кто-нибудь позвонил... :greedy:

Больше доверяй себе. И в книгах, и даже в работающих программах есть масса незамеченных опечаток и просто ошибок.

Ссылка на комментарий
Поделиться на другие сайты

Я вот попробовал написать мини скрипт ,что то не получается .

Хотел написать скрипт ,каторый запращивает у человека входящего на сайт

число каторое не должно быть меньше 18 с помощью Оператора if.

Например :

if (age<18)

alert("Вы слишком молоды для просмотра этого сайта")

кароче пытаюсь написать ,но что то не проходит .

Тролль если тебе не сложно напиши пример ,как ты это сделал для parseFloat ("17.5") .

Спасибо

Ссылка на комментарий
Поделиться на другие сайты

Обнаружена ошибка. Если Вам неизвестны причины ошибки, попробуйте обратиться к разделам помощи.

Некоторые требуемые файлы отсутствуют. Если Вы хотели просмотреть тему, возможно эта тема перемещена или удалена. Вернитесь назад и попробуйте снова.

Вот это выдаёт .

[mergetime]1129041740[/mergetime]

Всё увидел, ты исправил, я получил, спасибо буду разбиратся .

Ссылка на комментарий
Поделиться на другие сайты

Хочу написать программу с помощью оператора "switch" ,но что то не получается ,вот моя программа :

<html>

<script>

xlang=prompt("Введите язык","ENTER");

switch (xlang);

case "angl"

windiws open("angl.html");

break

case "frenc"

windows open("frenc.html");

default:

alert("В базе такого языка нет");

</script>

</html>

Если у меня здесь какая то ошибка подскажите ,а то я Тролля уже замучил.

Спасибо.

Ссылка на комментарий
Поделиться на другие сайты

Svoboda:

Вот исправленный текст программы. Ты не забыл написать файлы angl.html и frenc.html?

<html><script>xlang=prompt("Enter language","ENTER");switch (xlang) {  case "angl":    window.open("angl.html");    break;  case "frenc":    window.open("frenc.html");    break;  default:    alert("No such language!");}</script></html>

Никаких приблизительностей в программировании нет. Это не русский язык. Любая ошибка - и магия не работает. А в исходном варианте программы таких ошибок не сосчитать. Ты должен быть уверен в каждом слове, в каждом пробеле, в каждом двоеточии, в каждой скобке, не говоря уж об орфографических ошибках. В кодировании (под этим понимается запись программ по готовому алгоритму) только две оценки: 5 и 2. Это первое.

Второе - осваивай язык понемногу. Пошагово. Если ты попытался вставить в программу сразу нескольких новых элементов (window.open и switch) - вероятность ошибок возрастает многократно.

Ссылка на комментарий
Поделиться на другие сайты

Спасибо.

Тролль всё работает .

Сначало ,когда открывал и вписывал frenc или angl выдавал ,что

не находит документ .

Потом я написал вот это :

html>

<head>

<title>Frenc</title>

</head>

<body>

Вы выбрали французский язык !

<br>

Добро пожаловать! :)

</body>

</html>

и сохронил ,как frenc.html и потом ,когда я вписавал frenc открывалась страничка каторую я описал выше.

Ссылка на комментарий
Поделиться на другие сайты

как создать прогу для определения слов которые читаются задом-наперёд например сос. Использовать массив в С++

Ссылка на комментарий
Поделиться на другие сайты

JavaScript.

Оператор цикла обеспечивает многократное выполнение блока программного кода до тех пор, пока не выполнится некоторое условие.

Прошу написать пару примеров с операторами циклов : for , while , do-while .

Спасибо.

Ссылка на комментарий
Поделиться на другие сайты

Svoboda:

Я не совсем понимаю. Похоже, что ты учишь без учебника. В любом сколько-нибудь толковом учебном пособии есть примеры написания циклов.

Конечно, написать несколько примеров нетрудно.

<html><script> I=0; while(I++<5) alert(I); </script></html>

<html><script> I=0; do alert(I); while(I++<5); </script></html>

<html><script> for (I=0;I<5;I++) alert(I); </script></html>

Скопируй каждую из строк в отдельный файл с расширением htm или html и запускай.

Ссылка на комментарий
Поделиться на другие сайты

Спасибо Тролль.В моём учебнике вот такие примеры :

var z = х

for (i = 2 ; i <= у ; i++) {

z=z*x

}

Когда я их записаваю ничего не происходит ,они неработают или я делаю ,что то не так, а твои работают.

Ссылка на комментарий
Поделиться на другие сайты

Svoboda:

Когда я их записаваю ничего не происходит
А что должно происходить? Во-первых, в твоей программе есть ошибки в синтаксисе. Соответственно транслятор относится к ней так же, как ты к тексту на персидском языке - пожимает плечами и отходит в сторону. Я уже писал - нечто, только похожее на программу, работать не будет.

Ну и, даже исправив несколько ошибок в твоем примере, чего ты от него хочешь? Пусть он даже сработает (на самом деле выполнение было прекращено еще на первой команде - когда оказалось, что буква х - русская, впрочем, тут и латинская не помогла бы, потому что транслятор все равно не знал бы, что это такое) - это означает, что в "мозге" компьютера пронесется мысль - и канет в безвестность. Ты об этом все равно не узнаешь. Твоя программа не предполагает никаких внешних проявлений ее выполнения. Нет ни ввода информации, ни ее вывода.

Пошевелив мозгами, можно догадаться, что имелось в виду написать программу для возведения x в целую степень y. Но для начинающего это сложная программа. Поэтому я бы сначала взялся за более простую программу, которая, например, вводит число, возводит его в квадрат и выводит результат. Или складывает два числа. Без всяких циклов. Циклы в JavaScript - вещь довольно сложная для новичка.

Программы вообще пишутся (или описываются, хотя бы - для простейших программ - мысленно) - на русском языке. А потом уже переводятся на язык программирования.

Ну, а учиться программировать на JavaScript - то же, что обучаться грамоте, используя учебник по стенографии, к тому же, судя по твоим текстам, очень паршивый.

JavaScript, как и C - очень запутанные языки, вовсе не предназначенные для обучения программированию. В этих языках нет четкой структуры, одни и те же знаки используются то для одного, то для другого, смотря по положению в тексте. Эти языки очень хороши для быстрого написания программ профессионалами. Два пишем, три в уме.

Кроме того, у JavaScript нет среды программирования, то есть никто тебе не подсказывает, где и какие у тебя ошибки. А при программировании в среде программирования ошибки будут выделяться и коротко поясняться самим транслятором.

ИМХО лучше взять язык, пригодный для обучения программированию. Я бы начал с Pascal, более конкретно - с его распространенной версии Turbo Pascal. Конечно, можешь продолжать и на JavaScript, но продвижение будет во много раз медленнее.

Ссылка на комментарий
Поделиться на другие сайты

Ещё и ещё раз спасибо Тролль.

Тролль ,а какая среда программирования нужна мне под TurboPascal ?Желателно, что бы я её смог с интернета скачать .

Ссылка на комментарий
Поделиться на другие сайты

Спасибо ,но вот первая ссылка вирус DOS.ZOM ...

А вот вторая ссылка ,когда перекачал выдаёт ошибку :

The archive is either in unkown format or damaged .

По русски это будит читаться вот так :

Архив является или в формате unkown или поврежденный.

Ссылка на комментарий
Поделиться на другие сайты

Svoboda:

Turbo Pascal - это и есть интегрированная среда, правда, написанная под DOS, хотя работающая и в Windows. Turbo Pascal можно скачать в разных местах. Например, тут.

Но, пожалуй, тебе больше подойдет специальная версия интегрированной среды Паскаля для обучения - Pascal ABC. Ее можно скачать на этой странице. Язык тот же, но среда программирования удобнее, изначально рассчитана под Windows. У нее есть ограничение - сделанные в этой среде программы не могут выполняться самостоятельно, без этой среды. Но при обучении это и не нужно. Потом из этой среды будет легко перейти в более сложную профессиональную, которая сможет те же программы на Паскале компилировать в полностью самостоятельные файлы.

Так что попробуй сначала Pascal ABC. Тем более что там гораздо более подробная помощь, с хорошими описаниями и примерами. Все на русском языке. Советую сразу после установки заняться чтением помощи, хотя бы раздела "Общие сведения", и попробовать приведенные там примеры программ.

Вот еще, чтобы опробовать среду, простенькая программа на Паскале, она только выводит строку "Привет!" (точка в конце текста программы нужна, она завершает любую программу на Паскале):

begin

WriteLn('Привет!')

end.

Ссылка на комментарий
Поделиться на другие сайты

Скачал Pascal ABC очень удобная программа .Спасибо Тролль.

Нашёл множество разных книг в интернети ,но хотелось бы услышать

какие посоветовали бы вы ,а то выберу не то ,что надо.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу



×
×
  • Создать...