Этейн была на минном поле, окруженная людьми, которые не могли оттуда уйти, и некоторые из них истекали кровью до смерти от тяжёлых ран. Их крики переворачивали ей душу. Говорят, что раненые солдаты зовут маму, но у клонов не было матери. Они звали своих братьев…
Во время бойни на Квиилуре
Карен Тревисс, "Истинное лицо"





Сколько глобус ни крути, там Fess-Style не найти...
Сайт Fess'a » Является ли i-тое число в двоичной записи числа 0 или 1? - Форум
[ Новые сообщения · Участники · Правила форума · Поиск ]
Страница 1 из 11
Форум » Программирование » Паскаль » Является ли i-тое число в двоичной записи числа 0 или 1? (Первые задачи в курсе ПМИ)
Является ли i-тое число в двоичной записи числа 0 или 1?
FessДата: Суббота, 07.09.2013, 20:03 | Сообщение # 1

Добрый админ
Сообщений: 2338
Статус:
ПМИ - Прикладная математика и информатика; направление, по которому в ВУЗах готовят программистов и системных администраторов.

Задача: Узнать, является ли i-тое число в двоичной записи числа a:byte нулём или единицей. Программа помогает представить каким образом числа хранятся в ячейках памяти.

Среда: Lazarus

Код
program Homework1;

{$mode objfpc}{$H-}{$R-}{$Q-}

uses
    {$IFDEF UNIX}{$IFDEF UseCThreads}
    cthreads,
    {$ENDIF}{$ENDIF}
    Classes, sysUtils
    { you can add units after this };

Label Cycle, Start;

var
    i:byte;                  // Индекс массива
    a:byte;                  // Вводимое число
    b:byte;                  // Номер позиции в двоичном числе
    M:array [0..7] of byte;  // Массив с двоичной записью числа

begin
Start:
    writeln('Enter number in range [0-255]...');
    readln(a);

    for I:=0 to 7 do
     begin
     M[i]:=a mod 2;       // Записываем остаток от деления на 2
     a:=a shr 1;          // Побитово сдвигаем число на 1 бит вправо
     end;

    for I:=7 downto 0 do  // Выводим массив в обратном порядке
     write('',M[i]); writeln();

    writeln('Enter the position number in the line posted above [0-7]...');
Cycle:
    read(b);
    for I:=7 downto 0 do write('',M[i]);
     writeln();
    for I:=7 downto 0 do if(i=b) then write('^') else write('-');
     writeln();

    writeln (format('In: %d Out: %d ------- 254 to STOP \ 255 to restart',[b,M[b]]));

    if(b=255) then goTo Start;     // Ввод нового числа
    if(b<>254) then goTO Cycle;    // Выбор другой позиции

end.
 
Форум » Программирование » Паскаль » Является ли i-тое число в двоичной записи числа 0 или 1? (Первые задачи в курсе ПМИ)
Страница 1 из 11
Поиск: