Позиційні системи числення

Створення програми для переведення чисел з довільної системи числення в довільну позиційну. Проектування рядку внесення початкових даних і кінцевого обрахунку для виконання необхідного завдання. Лістинг програми на мові програмування Object Pascal.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык украинский
Дата добавления 12.10.2014
Размер файла 162,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://allbest.ru

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ

КАФЕДРА ПРИКЛАДНОЇ МАТЕМАТИКИ

Звіт

з лабораторної роботи №1

з дисципліни «Дискретні структури»

на тему: «Позиційні системи числення»

Тема: позиційні системи числення (ПСЧ), переведення чисел з десяткової системи числення до довільної ПСЧ та переведення з довільної ПСЧ до десяткової системи числення.

Мета роботи: опанувати правила переведення чисел з десяткової системи числення в довільну ПСЧ і навпаки.

програма позиційний числення

Хід роботи

Кінцевою метою роботи є створення програми для переведення чисел з довільної системи числення в довільну ПСЧ і навпаки. Щоб виконати дане завдання, було обрано мову програмування Object Pascal.

Спершу були створено рядок внесення початкових даних і кінцевого обрахунку для виконання необхідного завдання.

Підбір та використання процедур для переведення ПСЧ з однієї системи числення в іншу.

Реалізація раніше описаних алгоритмів розрахунку засобами та інструментами Pascal ABC.

Перевірка отриманих результатів.

Лістинг програми

program sustemu_chuslennya;

uses

CRT;

const line='--------------------------------------';

sline='---------------';

a: string[36] = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';

var

c: char;

f:text;

x:string;

n, r: real;

rez, s, s2, s3: string;

t, cc, ind, cc2, k: integer;

{процедура для поділу дробної і целої частини числа}

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 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], a) - 1) * exp(ln(cc) * n));

end;

ToDec := sum;

end;

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

var

s: string;

n2: integer;

begin

n2 := round(int(d));

s := '';

repeat

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

n2 := n2 div c;

until (n2 = 0);

Cel := s;

end;

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

var

s: string;

l2, k, n3: real;

i, l: integer;

begin

k := d - int(d);

s := '';

i := 0;

if t <> 0 then

begin

repeat

l2 := k * c;

k := frac(l2);

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

until i = t;

end

else

s := '0';

Drob := s;

end;

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

var

i: integer;

sum: real;

begin

for i := 1 to length(ss) do

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

drob2 := sum;

end;

label metka;

begin textbackground(Blue);//светло-серый

textcolor(Yellow);

ClrScr;

write('Ви бажаєте перевести число з будь-якої системи числення в іншу? ');

readln(x);

metka:

if ((x='так') or (x='Так')) then begin

repeat

writeln(line);

write('Введіть систему числення з якої бажаєте перевести: ');

readln(cc2)

until cc2 in [2..36]; {проверка ввода}

writeln(line);

write('Введіть систему числення в яку бажаєте перевести: ');

readln(cc);

if cc2 = 10 then {если перевод из 10 то юзаем функции Cel и Drob}

begin

writeln(line);

write('Введіть число в ', cc2, '-й системі числення: ');

readln(n);

writeln(line);

{write('Введіть число: '); }

{readln(t); }

if ((n - round(int(n))) = 0) then {если дробная часть числа=0 то юзаем Cel}

rez := Cel(n, cc)

else {иначе юзаем обе и добавляем , между дробной и целой}

rez := Cel(n, cc) + ',' + Drob(n, t, cc);

end

else {иначе если перевод не из 10-й СС}

begin

writeln(line);

write('Введіть число в ', cc2, '-й системі числення: ');

readln(s);

Del(s); {разбиваем на дробную и целую части строку}

if ind = 0 then

rez := Cel(ToDec(s2, cc2), cc) {переводим сначала из любой в 10-ю сс, а затем из

10-й в любую}

else

begin

r := drob2(s3, cc2); {переводим дробную часть числа}

rez := Cel(ToDec(s2, cc2), cc) + ',' + drob(r, length(s3), cc); {переводим из любой сс

в другую }

end;

end;

writeln(rez); { THE END }

readkey;

writeln(line);

writeln('Бажаєте здійснити переведення числа ще раз?');

readln (c);

if (x='так') then goto metka

else

begin

if (x='ні') then Halt(1);

end;

end;

end.

Форми програми:

Контрольні запитання

Визначення системи числення (Системою числення називається сукупність правил і знаків за допомогою яких можна відобразити будь-яке невід'ємне число).

Класифікація СЧ (Системи числення бувають:

позиційні (двійкова, десяткова);

змішані (фібоначчі);

непозиційні (римська)).

Визначення позиційної СЧ (Позиційна СЧ - це така система числення, де цифра у записі числа залежно від свого розташування змінює саме число, тобто цифра має свою вагу у числі).

Основні ПСЧ що використовуються в обчислювальній техніці (16-ва, 8-ва, та 2-ва системи числення).

Аналітичні розрахунки

256(10) 5

256/5=51 (ост. 1)

51/5=10 (1)

10/5 = 2 (0)

Отже, вірна відповідь - 2011.

Висновок

В даній лабораторній роботі були засвоєні основні поняття, які стосуються позиційних систем числення, створено універсальний алгоритм для здійснення переведень з десяткової системи числення в іншу ПСЧ і навпаки та реалізовано даний алгоритм на необхідній мові програмування.

Размещено на Allbest.ru


Подобные документы

  • Методи алгоритмiчного описаня задач, програмування на основi стандартних мовних засобiв. Переклад з однієї системи числення в іншу при програмуванні. Системи числення. Двійкові системи числення. Числа з фіксованою і плаваючою комою. Програмна реалізація.

    курсовая работа [164,1 K], добавлен 07.12.2008

  • Написання програми для мобільного приладу, яка буде переводити числа з однієї системи числення в іншу. Розробка графічного інтерфейсу, яким зручно буде користуватись. Опис процедур, обробників та мови програмування. Дослідження логічних частин програми.

    курсовая работа [1,2 M], добавлен 27.08.2014

  • Аналіз математичного підґрунтя двійкової та двійкової позиційної систем числення. Переведення числа з двійкової системи числення в десяткову та навпаки. Арифметичні дії в двійковій системі. Системи числення з довільною основою. Мішані системи числення.

    курсовая работа [149,5 K], добавлен 20.06.2010

  • Розробка програмного забезпечення для розв’язування задачі обчислювального характеру у середовищі Turbo Pascal 7.0. Розгляд систем числення. Практична реалізація задачі переводу чисел з однієї системи числення у іншу. Процедура зворотного переводу.

    курсовая работа [112,2 K], добавлен 23.04.2010

  • Практичне застосування систем кодування знакової та графічної інформації в електронних обчислювальних машинах. Позиційні системи числення. Представлення цілих і дійсних чисел. Машинні одиниці інформації. Основні системи кодування текстових даних.

    практическая работа [489,5 K], добавлен 21.03.2012

  • Характеристика формування навичок розробки додатків із використанням кнопкових компонентів у середовищі програмування Visual Studio. Створення програми, що переводить числа з однієї системи числення до іншої. Особливість застосування додатку Converter.

    практическая работа [249,7 K], добавлен 01.12.2022

  • Принципи побудови систем числення, основні поняття. Системи числення, вид та тип числа, форма представлення, розрядна сітка та формат, діапазон і точність подання, спосіб кодування від’ємних чисел. Визначення та призначення тригерів, їх класифікація.

    контрольная работа [150,9 K], добавлен 07.10.2009

  • Принцип роботи машини тюрінга - математичного поняття, введеного для формального уточнення інтуїтивного поняття алгоритму. Опис алгоритмів арифметичних дій в шістнадцятковій системі числення. Правила переведення чисел з однієї системи числення в іншу.

    курсовая работа [1,4 M], добавлен 31.01.2014

  • Правило перекладу цілих чисел з різних систем числення в будь-яку іншу. Правило переходу правильних десяткових дробів. Розробка інтерфейсу користувача. Алгоритмізація і програмування рішення задачі. Налагодження і тестування програми "Калькулятор".

    курсовая работа [1022,7 K], добавлен 26.01.2013

  • Розробка кросплатформового інструменту електронного тестування учнів молодших та середніх класів по іноземній мові. Вибір середовища розробки та системи контролю версій. Опис мови програмування Java та лістинг програми. Апаратні та програмні вимоги.

    дипломная работа [608,3 K], добавлен 26.10.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.