Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи на заказ _ Cделайте 2 проги плз)

Автор: Mops 19.05.2007 18:30

1. Перевод числа из 10й системы счисления в р-ричную (р от 2 до 16) и обратно
2. перевеод числа с одинарной точностью

Хотелось бы получить от вас помощь) так же хочу прояснить что я учусь в 10 классе так что прошу по возможности не использовать сложные функции или прислать пояснение. Единственная проблема в той что сроки поджимают сеня суббота 19 мая а нада что бы эти 2 проги были сделаны к 21 мая экзамен 22((
Жду ответа

Автор: sonic 19.05.2007 18:38

Цитата(Mops @ 19.05.2007 14:30) *

1. Перевод числа из 10й системы счисления в р-ричную (р от 2 до 16) и обратно
2. перевеод числа с одинарной точностью

Хотелось бы получить от вас помощь) так же хочу прояснить что я учусь в 10 классе так что прошу по возможности не использовать сложные функции или прислать пояснение. Единственная проблема в той что сроки поджимают сеня суббота 19 мая а нада что бы эти 2 проги были сделаны к 21 мая экзамен 22((
Жду ответа


Пиши мне в личные сообщения, помогу.

Автор: мисс_граффити 19.05.2007 18:43

sonic, предупреждение от меня (за что - читай прилепленную в этом разделе тему).
Mops, смотри первую: http://forum.pascal.net.ru/index.php?showtopic=4535&st=0&p=38226&#
про одинарную точность... что это значит?

Автор: Mops 19.05.2007 19:09

Просто то что там написано я ваще не понимаю ни одной функции, ну почти ни одной
а вот про одинарную точность нам так сказали в школе) типа на примпер число дано 70,125 нада перевести его в 16-ную систему через 2-ю. Там мантиссы всякие смещенные порядки и тыды. я знаю как это сделать на бумажке а вот с программой не могу разобраться

Автор: мисс_граффити 19.05.2007 19:59

Тебе только function ToDec нужна.
Идея такая:
1. Удаляем все ненужные нули (то есть вместо 0000009 получаем 9)
2. m (итоговое число) приравниваем к нулю
2. В цикле умножаем m на основание системы счисления, из которой переводили, и прибавляем следующую переведенную цифру (чтобы обрабатывать и буквенные обозначения цифр, используем строку, в которой содержатся все возможные значения цифр - для сс с основанием не больше 16 это от 0 до F)

ну например:
101 в двоичной
m=0
берем первый символ (1):
m:=0*2+положение 1 в строке цифр-1=1
второй символ
m=1*2+положение 0 в строке цифр-1=2
третий символ
m=2*2+положение 1 в строке цифр-1=5

то есть алгоритм такой же, как учат в школе: разряд умножаем на основание системы счисления в той или иной степени.
так понятно?

Автор: Mops 19.05.2007 20:27

не понимаю что делают функции digit div radix mod radix. их в шкоел не проходили

Автор: Tan 19.05.2007 21:41

digit - это просто тип данных, который определил создатель программы, он представляет собой строку из 16 символов (какие именно - я думаю ты увидел сам).
radix - это переменная, которая хранит значение системы счисления, в которую переводим десятичное число.
div - деление нацело, то есть возвращает целую часть аргумена.
mod - остаток от деления.