ПМИ - Прикладная математика и информатика; направление, по которому в ВУЗах готовят программистов и системных администраторов.
Задача: Узнать, является ли 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.