Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Пупорев Юрий Борисович
Статус: Специалист
Рейтинг: 558
∙ повысить рейтинг >>
_Ayl_
Статус: 5-й класс
Рейтинг: 370
∙ повысить рейтинг >>
Micren
Статус: Практикант
Рейтинг: 286
∙ повысить рейтинг >>

∙ / КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 911 от 16.06.2009, 11:35
Администратор рассылки: Калашников О.А., Руководитель
В рассылке: подписчиков - 339, экспертов - 150
В номере: вопросов - 3, ответов - 4

Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке:
оценить выпуск >>

Вопрос № 169236: Здравствуйте. Требуется решение следующей задачи: Строку – двоичное представление целого числа, преобразуйте в строку – 16-ичное представление этого числа Заранее спасибо!...


Вопрос № 169238: Здравствуйте. Помогите решить: Сформировать двумерный массив G размером 3X9 (3 количество строк, 9 - количество столбцов) с помощью генератора случайных чисел и вывести элементы массива нв экран и в файл. Записать в одномерный массив F ...
Вопрос № 169239: Здравствуйте. Требуется решение следующей задачи: Строку – двоичное представление целого числа, преобразуйте в строку – 16-ичное представление этого числа Заранее спасибо!...

Вопрос № 169236:

Здравствуйте. Требуется решение следующей задачи:

Строку – двоичное представление целого числа, преобразуйте в строку – 16-ичное представление этого числа

Заранее спасибо!

Отправлен: 10.06.2009, 12:22
Вопрос задал: megakompinfo
Всего ответов: 1
Страница вопроса >>


Отвечает _Ayl_, 5-й класс :
Здравствуйте, megakompinfo!

Решение в приложении

Приложение:

Ответ отправил: _Ayl_, 5-й класс
Ответ отправлен: 10.06.2009, 13:31

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 250760 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!



    Вопрос № 169238:

    Здравствуйте.

    Помогите решить:

    Сформировать двумерный массив G размером 3X9 (3 количество строк, 9 - количество столбцов) с помощью генератора случайных чисел и вывести элементы массива нв экран и в файл. Записать в одномерный массив F строку матрицы G, содержащую минимальный элемент (оформить нахождение минимального элемента в виде процедуры). Вывести элементы массива F на экран и в файл.

    Заранее спасибо!

    Отправлен: 10.06.2009, 12:39
    Вопрос задал: jokerjoke
    Всего ответов: 1
    Страница вопроса >>


    Отвечает _Ayl_, 5-й класс :
    Здравствуйте, jokerjoke.

    Решение в приложении

    Добавлено из мини-форума:
    У меня BP 7.1
    Там это расширение есть
    openstring - это открытая строка. Появилась в 7-й версии Borland Pascal.
    Код:
    Открытые строковые параметры

    Открытые строковые параметры могут описываться двумя способами:

    * с помощью идентификатора OpenString;
    * с помощью ключевого слова string в состоянии {$P+}.

    Идентификатор OpenString описывается в модуле System. Он обозначает специальный строковый тип, который может использоваться только в описании строковых параметров. В целях обратной совместимости OpenString не является зарезервированным словом и может, таким образом, быть переопределен как идентифика тор, заданный пользователем.

    Когда обратная совместимость значения не имеет, для изменения смысла ключевого слова string можно использовать директиву компилятора {$P+}. В состоянии {$P+} переменная, описанная с ключевым словом string, является открытым строковым параметром.

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

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

    В следующем примере параметр S процедуры AssignStr - это открытый строковый параметр:

    procedure AssignStr(var S: OpenString);
    begin
    S := '0123456789ABCDEF';
    end;

    Так ка к S - это открытый строковый параметр, AssignStr можно передавать переменные любого строкового типа:
    var
    S1: string[10];
    S1: string[20];
    begin
    AssignStr(S1);
    AssignStr(S2);
    { S1 := '0123456789' }
    { S2 := '0123456789ABCDEF' }
    end;

    В AssingStr максимальная длина параметра S та же самая, что у фактического параметра. Таким образом, в первом вызове AssingStr при присваивании параметра S строка усекается, так как максимальная длина S1 равна 10.

    При применении к открытому строковому параметру стандартная функция Low возвращает 0, стандартная функция High возвращает описанную максимальную длину фактического параметра, а функция SizeOf возвращает размер фактического параметра.

    В следующем примере процедура FillString заполняет строку заданным символом до ее максимальной длины. Обратите внимание на использование функции High для получения максимальной длины открытого строкового параметра.
    procedure FillStr(var S: OpenString; Ch: Char);
    begin
    S[0] := Chr(High(S));
    FillChar(S[1], High(S), Ch); { задает длину строки }
    { устанавливает число символов }
    end;

    Значения и параметры-константы, описанные с использованием идентификатора OpenString или ключевого слова string в состоянии {$P+}, не являются открытыми строковыми параметрами. Они ведут себя также, как если бы были описаны с максимальной длиной строкового типа 255, а функция Hingh для таких параметров всегда возвращает 255.
    источник >>
    Дополнено из мини-форума.
    -----
    ∙ Отредактировал: Николай Владимирович / Н.В., Старший модератор
    ∙ Дата редактирования: 10.06.2009, 17:51 (время московское)

    Приложение:

    Ответ отправил: _Ayl_, 5-й класс
    Ответ отправлен: 10.06.2009, 14:30

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 250763 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!



    Вопрос № 169239:

    Здравствуйте. Требуется решение следующей задачи:

    Строку – двоичное представление целого числа, преобразуйте в строку – 16-ичное представление этого числа

    Заранее спасибо!

    Отправлен: 10.06.2009, 12:55
    Вопрос задал: Vilgelm, Посетитель
    Всего ответов: 2
    Страница вопроса >>


    Отвечает _Ayl_, 5-й класс :
    Здравствуйте, Vilgelm.

    Код в приложении

    Приложение:

    Ответ отправил: _Ayl_, 5-й класс
    Ответ отправлен: 10.06.2009, 13:36

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 250761 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает Micren, Практикант :
    Здравствуйте, Vilgelm.
    Код:

    program Pascal_169236;

    type
    {* Класс-конвертер *}
    TBinary2HexConverter=object
    str:String;
    function NumConvert(b: String): Char;
    public
    constructor Init(s: String);
    function ToHex: String;
    end;

    {* Конструктор *}
    constructor TBinary2HexConverter.Init(s: String);
    var
    i: Integer;
    skipZeroes:Boolean;
    begin
    str:='';
    {* Флаг сигнализирующий, что ведущие нули еще не пропущены *}
    skipZeroes:=true;
    for i := 1 to Length(s) do begin
    {* Проверка на корректность строки *}
    if not (s[i] in ['0','1']) then begin
    Fail;
    end;
    {* Если не ноль или ведущие нули уже пропущены *}
    if not(skipZeroes and (s[i]=& #39;0') and (i<>Length(s))) then begin
    skipZeroes:=false;
    str:=str+s[i];
    end;
    end;
    end;

    {* конвертирует 4х битовую двоичную строку в шестнадцатиричное число *}
    function TBinary2HexConverter.NumConvert(b: String): Char;
    const
    hexdigits:array[0..15] of char='0123456789ABCDEF';
    var
    num:Integer;
    i: Integer;
    begin
    num:=0;
    for i := 1 to Length(b) do begin
    num:=(num shl 1) + (Ord(b[i]) - Ord('0'));
    end;
    NumConvert:=hexdigits[num];
    end;

    {* Собственно сам конвертер *}
    function TBinary2HexConverter.ToHex: String;
    var
    cur,len:Integer;
    res:String;
    begin
    res:='';
    cur:=1;
    while cur<=Length(str) do begin
    len:=(Length(str)-cur) mod 4+1;
    res:=res+ NumConvert(Copy(str,cur,len));
    Inc(cur,len);
    end;
    ToHex:=res;
    end;

    var
    s:String;
    bin:TBinary2HexConverter;

    begin
    Write('Enter binary number:&# 39;);
    ReadLn(s);
    if bin.Init(s) then begin
    WriteLn('In Hex:',bin.ToHex);
    end else begin
    WriteLn('This is not binary number');
    end;
    ReadLn;
    end.

    Пример:
    Код:

    Enter binary number:1001010101011011
    In Hex:955B

    Ответ отправил: Micren, Практикант
    Ответ отправлен: 10.06.2009, 14:41

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 250764 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!



    Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке:
    оценить выпуск >>

    подать вопрос экспертам этой рассылки >>

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.2 от 15.06.2009

    В избранное