Главная страница
Навигация по странице:

  • Основные данные о работе 1

  • 2 Разработка алгоритмов 8 3 Разработка пользовательского интерфейса 12 Заключение 17

  • Написать программу, позволяющую выполнять арифметические действия над двоичными, восьмеричными или шестнадцатеричными числами. Курсовая программирование. Курсовая работа Название дисциплины Программирование Тема


    Скачать 313.88 Kb.
    НазваниеКурсовая работа Название дисциплины Программирование Тема
    АнкорНаписать программу, позволяющую выполнять арифметические действия над двоичными, восьмеричными или шестнадцатеричными числами. С
    Дата14.04.2023
    Размер313.88 Kb.
    Формат файлаdocx
    Имя файлаКурсовая программирование .docx
    ТипКурсовая
    #1061374

    Основные данные о работе


    Версия шаблона

    3.1

    Вид работы

    Курсовая работа

    Название дисциплины

    Программирование

    Тема

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

    Фамилия студента




    Имя студента




    Отчество студента




    № контракта





    Содержание


    Основные данные о работе 1

    Содержание 2

    Введение 3

    Основная часть 5

    1 Системы счисления 5

    1.1 Десятичная система счисления 5

    1.2 Двоичная система счисления 5

    1.3 Восьмеричная система счисления 6

    1.4 Шестнадцатиричная система счисления 7

    2 Разработка алгоритмов 8

    3 Разработка пользовательского интерфейса 12

    Заключение 17

    Глоссарий 18

    Список использованных источников 19

    Приложения 20

    Введение


    Системой счисления называется совокупность приемов наименования и записи чисел. В любой системе счисления для представления чисел выбираются некоторые символы (их называют цифрами), а остальные числа получаются в результате каких-либо операций над цифрами данной системы счисления.

    Система называется позиционной, если значение каждой цифры (ее вес) изменяется в зависимости от ее положения (позиции) в последовательности цифр, изображающих число.

    Число единиц какого-либо разряда, объединяемых в единицу более старшего разряда, называют основанием позиционной системы счисления. Если количество таких цифр равно , то система счисления называется -ичной. Основание системы счисления совпадает с количеством цифр, используемых для записи чисел в этой системе счисления.

    Запись произвольного числа в -ичной позиционной системе счисления основывается на представлении этого числа в виде многочлена



    Арифметические действия над числами в любой позиционной системе счисления производятся по тем же правилам, что и десятичной системе, так как все они основываются на правилах выполнения действий над соответствующими многочленами. При этом нужно только пользоваться теми таблицами сложения и умножения, которые соответствуют данному основанию системы счисления.
    Тема курсовой работы – «Арифметические операции над числами различных систем счисления».

    Цель курсовой работы – разработка программного обеспечения, осуществляющего арифметические действия над числами выбранной системы счисления.

    Для достижения цели необходимо решить следующие задачи:

    1. Рассмотреть системы счисления;

    2. Разработать алгоритмы арифметических действий;

    3. Разработать интерфейс пользователя.



    Основная часть

    1 Системы счисления

    1.1 Десятичная система счисления


    Десятичная система счисления пришла из Индии (не позднее VI века нашей эры). Алфавит этой системы: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} — всего 10 цифр, таким образом, основание системы счисления – 10. Число записывается как комбинация единиц, десятков, сотен, тысяч и так далее. Пример: 1998=8*100 + 9*101 + 9*102 + 1*103.

    В этой системе 10 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, но информацию несет не только цифра, но и место, на котором цифра стоит (то есть ее позиция). Самая правая цифра числа показывает число единиц, вторая справа – число десятков, следующая – число сотен и т.д.

    1.2 Двоичная система счисления


    Двоичная система счисления была придумана математиками и философами ещё до появления компьютеров (XVII — XIX вв.). Выдающийся математик Лейбниц говорил: "Вычисление с помощью двоек... является для науки основным и порождает новые открытия... При сведении чисел к простейшим началам, каковы 0 и 1, везде появляется чудесный порядок". Позже двоичная система была забыта, и только в 1936 — 1938 годах американский инженер и математик Клод Шеннон нашёл замечательные применения двоичной системы при конструировании электронных схем.

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

    Перевод десятичного числа в двоичное число:











    Существуют системы счисления, родственные двоичной. При работе с компьютерами иногда приходится иметь дело с двоичными числами, так как двоичные числа заложены в конструкцию компьютера. Двоичная система удобна для компьютера, но неудобна для человека — слишком длинные числа неудобно записывать и запоминать. На помощь приходят системы счисления, родственные двоичной — восьмеричная и шестнадцатеричная.

    1.3 Восьмеричная система счисления


    В восьмеричной системе числа записываются с помощью восьми цифр: 0,1,2,3,4,5,6,7, а сама восьмерка числом 10. Удобство восьмеричной системы счисления заключается в том, что переход от восьмеричной к двоичной очень прост: достаточно каждую восьмеричную цифру заменить ее двоичным представлением (двоичной триадой), в соответствии с приведенной ниже таблицей.

    восьмеричная система счисления 




    1

    2

    3

    4

    5

    6

    7

    двоичная  система счисления 

    000

    001

    010

    011

    100

    101

    110

    111


    Например, 5028 = 101 000 0102

    Достаточно прост и обратный переход от двоичной с/с к восьмеричной. Для этого в двоичной записи числа нужно выделить триады (влево и вправо от десятичной точки) и заменить каждую триаду соответствующей восьмеричной цифрой. В случае необходимости неполные триады дополняются нулями.

    Например, 1 111 1102 = 001 111 1102 = 1768


    1.4 Шестнадцатиричная система счисления


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

    В качестве алфавита шестнадцатеричной системы счисления используются цифры от 0 до 9 и шесть первых латинских букв – A, B, C, D, E, F. При переводе в десятичную систему буквы заменяются числами 10, 11, 12, 13, 14, 15 соответственно.

    При переводе двоичного числа в шестнадцатеричное, первое разбивается на группы по четыре разряда, начиная с конца. В случае, если количество разрядов не кратно четырем, первая четверка дописывается нулями впереди. Каждой четверке соответствует одноразрядное число шестнадцатеричной системы счисления.

    Двоичная система счисления

    Шестнадцатиричная система счисления

    0000

    0

    0001

    1

    0010

    2

    0011

    3

    0100

    4

    0101

    5

    0110

    6

    0111

    7

    1000

    8

    1001

    9

    1010

    A

    1011

    B

    1100

    C

    1101

    D

    1110

    E

    1111

    F


    0100 1100 0101 = 4 C 5

    2 Разработка алгоритмов


    Для выполнения арифметических действий над числами будет использоваться следующий алгоритм:

    1. Проверка введенных чисел на принадлежность к выбранной системе счисления;

    2. Перевод введенных чисел в десятичную систему;

    3. Выполнение арифметических действий над десятичными числами (+, -, *, /);

    4. Перевод результата в выбранную систему счисления и вывод на экран.
    Функция определения принадлежности введенного числа выбранной системе счисления:

    function CheckInput(ch:String;r:Byte):Boolean;

    var

    i,j:Byte;

    res:Boolean;

    begin

    CheckInput:=True;

    For i:=1 to Length(ch) do

    begin

    res:=False;

    For j:=1 to r do

    if ch[i]= digit[j] then

    begin

    res:=True;

    break;

    end;

    if (res=False) and (ch[i]<>',') then

    begin

    CheckInput:=False;

    break;

    end;

    end;

    end;

    Где ch – строковое значение введенного числа, r – основание системы счисления.
    Функция перевода из любой системы счисления в десятичную систему целого числа:

    function ToDec(var ss: string; cc: byte): integer;

    var

    i, n, sum: integer;

    begin

    sum := 0;

    n := length(ss);

    for i := 1 to n do

    begin

    dec(n);

    sum := sum + round((pos(ss[i], digit) - 1) * exp(ln(cc) * n));

    end;

    ToDec := sum;

    end;

    Где ss – строковое значение введенного числа, cc – основание системы счисления.

    Функция перевода из десятичной системы счисления в любую систему счисления целого числа:

    function Cel(d: real; c: integer): string;

    var

    s: string;

    n2: integer;

    begin

    n2 := round(int(d));

    s := '';

    repeat

    s := ((digit[n2 mod c + 1]) + s);

    n2 := n2 div c;

    until (n2 = 0);

    Cel := s;

    end;

    Где d – строковое значение введенного числа, c – основание системы счисления.
    Процедура разделения дробного числа на целое и остаток:

    procedure Del(var ss: string);

    var

    i: integer;

    begin

    ind := 0;

    s2 := '';

    for i := 1 to length(ss) do

    if ss[i] in [',', '.'] then

    begin

    ind := i;

    break

    end

    else

    s2 := s2 + ss[i];

    s3 := '';

    if ind <> 0 then

    begin

    delete(s, 1, ind);

    s3 := ss;

    end;

    end;
    Функция перевода дробной части из десятичной системы счислению в любую систему:

    function Drob(var d: real; t, c: integer): string;

    var

    s: string;

    l2, k: real;

    i: integer;

    begin

    k := d - int(d);

    s := '';

    i := 0;

    if t <> 0 then begin

    repeat

    l2 := k * c;

    k := frac(l2);

    s := s + digit[round(int(l2)) + 1];

    inc(i);

    until i = t;

    end

    else

    s := '0';

    Drob := s;

    end;
    Функция перевода дробной части из любой системы счислению в десятичную систему:

    function drob2(ss: string; c: integer): real;

    var

    i: integer;

    sum: real;

    begin

    sum:=0;

    for i := 1 to length(ss) do

    sum := sum + (pos(ss[i], digit) - 1) * exp(ln(c) * -i);

    drob2 := sum;

    end;

    3 Разработка пользовательского интерфейса


    Для удобства работы пользователя с программой разработаем пользовательский интерфейс.

    На форме слева расположим блок для выбора системы счисления. Далее поля для ввода чисел и поле для вывода результата.

    Под полями ввода разместим кнопки с обозначениями арифметических действий. При нажатии на них будет формироваться и выводится результат.

    В правом нижнем углу разместим кнопку «Выход» для завершения работы с программой.

    Интерфейс пользователя представлен на рисунке 1.



    Рисунок 1. Интерфейс пользователя
    Проведем тестирование разработанного программного обеспечения.





    Рисунок 2. Операции над десятичными числами
    При вводе неверного числа программа выдает об этом ошибку, очищает поле и переводит в него фокус для повторного ввода.



    Рисунок 3. Ошибка ввода




    Рисунок 4. Операции над двоичными числами








    Рисунок 5. Операции над восьмеричными числами







    Рисунок 6. Операции над шестнадцатиричными числами
    Проверка показала, что разработанное программное обеспечение работает корректно.

    Заключение


    В ходе выполнения курсовой работы были рассмотрены популярные системы счисления и способы перевода чисел из одной системы счисления в другую.

    Далее были разработаны процедуры и функции для перевода чисел одной системы счисления в другую, разделения числа на целую и дробную части, проверку числа на принадлежность к системе счисления.

    Результатом стало ПО «SSCulc», которое производит арифметические действия над числами различных систем счисления. Программа была проверена на верность вычислений и может быть использована как калькулятор.

    Глоссарий


    № п/п

    Понятие

    Определение

    1

    АД

    Арифметические действия

    2

    Алгоритм


    Система последовательных операций


    3

    Г.В. Лейбниц

    Выдающийся математик XVII века

    4

    КР

    Курсовая работа

    5

    Клод Шенон

    Американский инженер и математик

    6

    ПО

    Программное обеспечение

    7

    Пользовательский интерфейс

    Интерфейс, обеспечивающий взаимодействие между пользователем и программно-аппаратным компонентом

    8

    СС

    Система счисления

    9

    ТЗ

    Техническое задание

    10

    Функция

    Фрагмент программного кода, к которому можно обратиться из другого места

    Список использованных источников


    1

    Климова, Л. М. Delphi 7. Основы программирования. Решение типовых задач. Самоучитель / Л.М. Климова. - М.: КУДИЦ-Образ, 2017. - 480 c.

    2

    Культин Основы программирования в Delphi 7 / Культин, Никита. - М.: СПб: БХВ, 2011. - 608 c.

    3

    Культин, Н. Delphi 6. Программирование на Object Pascal / Н. Культин. - М.: БХВ-Петербург, 2012. - 528 c.

    4

    Осипов, Дмитрий Delphi. Профессиональное программирование / Дмитрий Осипов. - М.: Символ-плюс, 2013. - 820 c.

    5

    Ревич, Ю. Нестандартные приемы программирования на Delphi / Ю. Ревич. - М.: БХВ-Петербург, 2016. - 560 c.

    6

    Башков С.Г., Системы счисления и их применение, выпуск №29 / С. Башков. - М: Москва, 2012. – 68 с.

    7

    С. В. Фомин, Системы счисления, Популярные лекции по математике / Сергей Формин. – М.: 1987. – 48 с.

    8

    Г. М. Эйдлина, К. А. Милорадов, DELPHI: Программирование в примерах и задачах / Г. Эйдлина, К. Милорадов. – М.: РИОР, 2012. – 98 с.

    9

    В. Пестриков, А. Маслобоев, Delphi на примерах / Виктор Пестриков, Артур Маслобоев. – М.: BHV, 2012. – 496 с.

    10

    И. Н. Бурдинский, Системы счисления и арифметика ЭВМ / И. Бурдинский. – М.: Хабаровск, ТОГУ, 2008. – 80 с.



    Приложения


    А. Листинг программы

    Unit1.pas


    написать администратору сайта