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

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


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

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

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

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

  • 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:

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

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

Да с такими опечатками обучение усложнится .

Спасибо тебе ,без тебя, яб ещё сидел на первой странице. :blush2:

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

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

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

число каторое не должно быть меньше 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 очень удобная программа .Спасибо Тролль.

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

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

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

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

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



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