Задание на программу
Составить программу, которая будет переводить число из одной системы счисления в другую (2…20).
-
Математическая постановка задачи. Имеется число, записанное в некоторой системе счисления. Необходимо перевести это число в другую систему счисления и представить результат. Для выполнения этих действий выберем следующий алгоритм:
-
Переводим число в десятичную систему счисления путем суммирования произведений цифры числа на основание этой системы в соответствующей степени.
-
Полученное число в десятичной записи переводим в нужную нам систему счисления путем последовательного деления нашего числа на основание искомой системы, а далее целой части от деления, путем записи его остатков. Полученные остатки, расположенные в обратной последовательности образуют новое число в требуемой системе счисления.
-
Состав исходных и выходных данных. На входе программа получает число, систему счисления, в которой это число записано и систему счисления, в которую его надо перевести. Исходя из того, что система счисления находится в диапазоне 2..20 предусмотрена возможность ввода букв A-J для записи чисел в системах счисления выше 10. На выходе получаем число в требуемой системе счисления.Организация ввода и вывода данных. Ввод данных производится в текстовые поля ввода типа TextBox, вывод с помощью меткиLabel.
Ввиду того, что в написании числа могут быть буквы, то хранить его целесообразно в строковой переменной, а порядок системы счисления в переменной целого типа.Также в программе объявлен массив символов 0-9, a-j, используемый для перевода чисел из одной системы счисления в другую, помогая заменять символ на его эквивалент по значению. При вводе данных в поля ввода происходит проверка на правильность ввода, не допускается ввод любых других символов, кроме объявленных выше и клавиши BACKSPACE. После нажатия на кнопку «Перевести» сначала происходит проверка на правильность введенных данных, соответствие введенного числа системе счисления. И если обнаружено несоответствие, то выдается сообщение о соответствующей ошибке.
Фрагмент программного кода
private void perevod_Click(object sender, EventArgs e) { char [] numb=new char []{'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j'}; string chis = chislo.Text; chis=chis.ToLower(); int k; int c; //Проверка введенных данных if (chis != "" && iz.Text != "" && v.Text != "") //если все поля заполнены, проверяем правильность { k = Convert.ToInt32(iz.Text); c = Convert.ToInt32(v.Text); if (!(k>1 && k<21 && c>1 && c<21)) { MessageBox.Show("Неверная система счисления! Введите число от 2 до 20."); return; }; for (int i = 0; i < chis.Length; i++) { for (int j = 0; j < 20; j++) { if (chis[i] == numb[j]) { if (j > (k - 1)) { MessageBox.Show("Число не соответствует системе счисления."); return; } } } }
Содержание архива
- Исходный код на языке программирования С#
- Текстовый файл (Word) - 7 страниц с кратким описанием
klausms