Программирование на C, C# и Java
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode
Системы счисления на C#: перевод из десятичной в двоичную, шестнадцатеричную и восьмеричную
Сегодня мы создадим программу, которая поможет нам перевести число из десятичной системы счисления в другие самые распространённые системы: двоичную, шестнадцатеричную и восьмеричную.
Сначала, естественно, приступаем к созданию формы программы. У нас будет вот такая:
Для создания такой формы нам понадобились: 2 Label’a, 3 Radio Button’a и 2 TextBox’a. Логика программы будет построена так: пользователь вводит число в первый TextBox, нажимает на один из Radio Button’ов, чтобы выбрать систему счисления, которая будет подразумеваться под каждым из них, а во втором, нижнем, TextBox’е программа выдаст ему результат. Причём нам не понадобится нажимать на кнопки и т.п., программа будет переводить число в систему счислению по ходу того, как оно будет вписываться пользователем в первый TextBox.
Итак теперь приступим к коду. Дважды щёлкаем мышью на RadioButton1, и в том участке кода, куда нас перенесёт, пишем следующее:
Здесь мы считываем и конвертируем в числовой целочисленный формат строку в TextBox’е, которую нам напишет пользователь. Делаем это из-за того, что, естественно, переводить в системы счисления можно только числа, но никак не строки.
Перевод в различные системы счисления в C# на Windows Forms происходит практически автоматически и в одну строчку:
Сначала разберем правую сторону. Мы конвертируем наше число обратно в строку, но, так сказать, “с оговорками” в скобках. В них i – это, понятное дело, наше число, а цифра 2 означает, что мы конвертируем значение нашей переменной i в двоичную систему счисления. Всё очень просто. Результат такой конвертации мы помещаем в TextBox2.
Теперь в форме щёлкаем на вторую Radio Button и пишем то же самое, но уже для шестнадцатеричной системы счисления:
Приходится заново каждый раз объявлять переменную i из-за того, что эти переменные относятся к разным элементам управления и между собой никак не связаны и не пересекаются.
Ну и, наконец, восьмеричная система счисления на третьей Radio Button:
По сути, наша программа уже прекрасно функционирует. Мы вводим число в первый TextBox, выбираем нужную нам систему счисления – какой-либо из RadioButton’ов, а во втором TextBox’е у нас появляется результат. Мы можем щёлкать по RadioButton’ам, и ответы будут меняться в зависимости от выбранной системы счисления. Однако имеется и некоторое неудобство: если мы введём какое-нибудь другое число, которое тоже захотим перевести в другую систему счисления, то, чтобы программа заработала, надо сначала кликнуть на какой-либо RadioButton.
Мы только запустили нашу программу, ввели число “12”, нажали на первый RadioButton, в результате у нас отразилось число в двоичной системе: “1100”. Отлично! А теперь мы решили ещё перевести в эту же систему счисления число “14”. Мы считаем “12”, пишем “14”, можем даже ещё раз щёлкнуть на нажатый уже RadioButton, но форма будет выглядеть вот так:
Ничего в форме, кроме вписанного нами числа, не изменилось, а результат остался от перевода числа “12”.
Связано это с тем, что конвертация чисел происходит в RadioButton’ах, и происходит она при перещёлкивании кнопки между ними. Мы щёлакем на RadioButton’е, в нём срабатывает код и выводится результат. Причём, программа не принимает простого щелчка по уже нажатому RadioButton’у. Нужно обязательно нажать на другой, а потом вернуться к нему.
В случае нашего примера получится примерно-так:
Сначала нам придётся узнать результат перевода нашего числа в шестнадцатеричную систему. И пусть там это не нужно, у нас нет другого выхода(вообще-то есть – узнать ненужный нам результат восьмеричного перевода).
И вот, наконец, мы добились, чего хотели:
Согласитесь, не очень удобно. Поэтому мы исправим данное неудобство – сделаем так, что программа будет реагировать на ввод первой же цифры и сразу выдавать нам результат.
Сделаем мы это за счёт моментального считывания текста из TextBox1. Дважды щёлкаем на него мышью и снова объявляем переменную i. Это поможет нам считывать её моментально, без лишних щёлканий по RadioButton’ам. После этого мы создадим следующее условие:
Перевод чисел из одной системы счисления в другую
Задание: Написать программу на языке С++ для переведа числа,
представленного в системе счисления с основанием S, в системы счисления с
основаниями P, Q, R. Обеспечить корректность ввода числа в системе счисления с
основанием S. Перевод чисел реализовать с применением функций. (Разработайте
функцию для перевода числа из системы счисления с основанием S в систему счисления с
основанием P, а затем, функции для перевода из P в Q и из P в R.) Не использовать
стандартных возможностей по вводу/выводу чисел представленных в 2-ой, 8-ой, 16-ой
системах счисления. Для представления цифр больших 9 использовать заглавные буквы
латинского алфавита.
S=13
P=10
Q=8
R=14
Помогите составить программу, я в программировании только начинающий.
Добавлено через 7 часов 17 минут
Ну кто хоть чем то помочь может?
Перевод чисел из одной системы счисления в другую
#include #include #include #include using namespace std;.
Перевод чисел из одной системы счисления в другую
0x1f, 0x20. Как такого типа числа привести в десятичную систему счисления, чему они равны в.
Перевод чисел из одной системы счисления в другую
Программа работает для диапазона чисел в 1байт. Отрицательными числа берутся после 127d. проблемма.
Перевод чисел из одной системы счисления в другую
Здравствуйте. Помогите, пожалуйста, доделать программу. Условие: перевод чисел из десятичной.
Перевод из одной системы счисления в другую
Перевод чисел записанных в строку, из одной системы счисления в другую
Пожалуйста помогите исправить програмку. Программа должна доставать из строки числа, записаные в.
ПЕРЕВОД дробных чисел из одной системы счисления в другую. СПОСОБЫ ВНУТРЕННЕГО представления чисел с фиксированной точк
2) Создать блок-схему алгоритма программы перевода правильных дробей из одной системы счисления в.
Перевод из одной системы в другую
Помогите написать программу перевода натуральных чисел из одной системы в другую без использованния.
Решение
Puporev,хммм, а ведь действительно неправильно. Но считала правильно минут за пять до того как я её выложил. Скорее всего где-то ляпнул я ляпнул какую нибудь бредятину, из за сегоднешнего тупняка. Ты проверь отдельно по функциям(без этого меню) сначала в десятичное а потом в то что нужно.
Добавлено через 26 секунд
А я пока найду ошибку.
Добавлено через 2 минуты
блин в меню где то накосячил потому как без меню все работает на 100ку.
Добавлено через 8 минут
вот вариант без меню(только тут нет(!) ограничений на ввод):
он работает правильно. Puporev протестируй, а то может это только у меня работает
Добавлено через 1 минуту
а я пока постараюсь найти в той «каше» эту злостную ошибку.
Создание программы для перевода чисел из одной позиционной системы в другую
В весенних номерах “Информатики” (№ 7, 8/2009) был опубликован практикум по теме “Кодирование текста и чисел” для 9-го или 10-го класса, в котором используются язык программирования Лого и среда ЛогоМиры. Краткое содержание практикума: получение и исследование кодовой таблицы для Windows (CP 1251); получение других однобайтовых кодовых таблиц и сравнение их; создание программы перекодировки текста из одной кодовой таблицы в другую.
Непосредственным продолжением этого практикума может быть создание программы для перевода чисел из одной позиционной системы счисления в другую. Для решения этой задачи необходимо, можно сказать, углубиться в программирование: познакомиться со структурами данных в Лого (словами и списками), научиться описывать и использовать функции. В общеобразовательных классах обычно находятся 2–3 “продвинутых” школьника, интересующихся программированием и математикой. Вот им я и предлагаю эту тему. Чтобы они, опередив одноклассников, не скучали на уроках. Другой вариант — этот материал можно использовать на кружке или факультативе.
· Знакомимся с данными типа “слово” и “список”, учимся “разбирать” их на составные элементы.
· Пишем программу для перевода числа из недесятичной системы счисления в десятичную.
· Знакомимся с описанием функций и вносим улучшения в программу.
· Знакомимся с операциями формирования слов и списков.
· Учимся описывать рекурсивные функции.
· Создаем рекурсивную функцию перевода числа из десятичной системы счисления в недесятичную.
· Объединяем обе части в общую программу перевода натурального числа из одной позиционной системы счисления в другую. Основания систем счисления — от двух до тридцати шести (в записи чисел используются цифры и латинские буквы).
Типы данных в Лого. Операции над словами и списками
В языке машинных команд, понятном процессору, никаких других данных, кроме двоичных кодов (а их можно представлять двоичными числами), нет. Но программисты практически не пользуются языком машинных команд: программирование было бы слишком трудоемким делом. Программисты пишут программы на языках высокого уровня, а потом эти программы автоматически переводятся на язык машинных команд. И во всех языках высокого уровня предусмотрена возможность, кроме простых данных, использовать структуры данных. То есть некоторым образом организованные наборы простых данных. Примеры структур данных: массивы, очереди, списки, графы, стеки. Использование сложных, структурных типов данных позволяет программисту написать компактную и легко “перенастраиваемую” программу.
В языке Лого два таких типа данных — слова и списки. Слово — последовательность символов. Например:
Число — это последовательность цифр, поэтому число может рассматриваться и обрабатываться, как слово.
Список — это последовательность элементов. Элементами могут быть слова (в частности, числа) и другие списки.
Когда в качестве данного хотят записать слово, не являющееся числом, перед ним ставят кавычки (без пробела). Если же в качестве данного записывают список, то его заключают в квадратные скобки.
Посмотрим на разные примеры использования команды вывода PRINT (PR) :
Таким образом, параметром хорошо вам знакомой команды PRINT может являться и слово, и список.
Команды повтора и условного ветвления используют в качестве данных списки инструкций, в которые входят команды и процедуры. Именно поэтому их необходимо заключать в квадратные скобки:
REPEAT 3 [FD 40 RT 90]
Команда присваивания MAKE имеет два параметра. Первый параметр — имя переменной, то есть слово (оно может состоять из одной буквы). Именно поэтому, когда вы указываете имя переменной, то должны поставить перед ним двойную кавычку. Второй параметр — данное любого типа: слово (в частности, число) или список. Например:
MAKE «Имя [Петров Василий Иванович]
MAKE «Телефон «123-45-67
Что можно сделать со словом или списком? Например, сосчитать количество элементов.
«Пирог это слово, в нем 5 элементов.
[Пирог] список, в нем 1 элемент.
[FD 40 RT 90] список с четырьмя элементами.
[1 2 [3 4] ] в этом списке 3 элемента, последний
элемент сам является списком
с двумя элементами.
Список может быть пустым, а слово — не содержать ни одного символа:
Переменной L присвоено значение пустого списка, а переменной W — значение пустого слова.
Откройте новый файл ЛогоМиров и проверьте ваши предположения. Не забудьте создать на листе текстовое окно!
Инструкция | Результат в текстовом окне | |||||||||||||||||||||||||||||||||||||||
PR FIRST «шест Если нужно получить слово или список без первого или последнего элемента, используют операции BF и BL (сокращения от but first и but last — кроме первого и кроме последнего).
|