 |
C 2-мя программками - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе |
22.09.2011, 23:30
|
#1
|
|
|
|
Разведчик
|
 Регистрация: 01.05.2010
 Сообщений: 2
 Популярность: -67
 Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
|
C 2-мя программками
Помогите или подскажите пожалуйста
программа на delphi
1)
Задано целое число типа WORD. Поменять местами содержимое последних двух разрядов с содержимым первых двух. Алгоритм преобразования оформить в виде функции. Исходное число и результат вывести в двоичной и десятичной форме.
2)
Создать программу с функциями упаковки/распаковки группы из 8 чисел диапазона 0..7 (000..111) в 3 байтах.
Заранее спасибо   
|
|
|
23.09.2011, 12:42
|
#2
|
|
|
|
Разведчик
|
 Регистрация: 22.08.2010
 Сообщений: 13
 Популярность: 22
 Сказал(а) спасибо: 0
Поблагодарили 7 раз(а) в 6 сообщениях
|
Re: C 2-мя программками
1) Извращенный вариант:
Код:
function atata(n: longint);
var
str: string;
begin
str = intostr(n);
if length(str) > 3 then result := strtoint(str[length(str)] + str[length(str) - 1] + copy(str, 3, length(str) - 4) + str[1] + str[2]);
if length(str) = 3 then result := strtoint(str[3] + str[2] + str[1]);
if length(str) < 3 then result := n;
end;
function ans(n: longint);
var
x: longint;
writeln(n);
for i := 0 to 14 do write(n shr i mod 2);
writeln;
x := atata(n);
writeln(x);
for i := 0 to 14 do write(x shr i mod 2);
2) Упаковка(a - массив чисел):
Код:
x := 0 / / Выходное число
for i := 1 to 7 do
for j := 0 to 2 do
x := x shl 1 + a[i] shr j mod 2;
Распаковка:
Код:
for i := 1 to 7 do
for j := 0 to 2 do
a[i] := a[i] shl 1 + x shr (i + j - 1);
Код не тестировал, компилятора под рукой нет.
________________
Повелеваю плюшками
Последний раз редактировалось Duha666; 23.09.2011 в 13:35.
|
|
|
23.09.2011, 13:00
|
#3
|
|
|
|
Пехотинец
|
 Регистрация: 16.07.2011
 Сообщений: 97
 Популярность: 2528
 Сказал(а) спасибо: 61
Поблагодарили 336 раз(а) в 61 сообщениях
|
Re: C 2-мя программками
если я правильно тебя понял, то вот 1 программа:
Код:
program Project3;
{$APPTYPE CONSOLE}
uses
SysUtils;
function reverse(w: word): word;
var
s, s1, s2: string;
begin
s := inttostr(w);
s1 := copy(s, 1, 2);
s2 := copy(s, length(s) - 1, 2);
insert(s2, s, 1);
delete(s, 3, 2);
insert(s1, s, length(s) - 1);
delete(s, length(s) - 1, 2);
result := strtoint(s);
end;
function dec2bin(x: integer): string;
var
s: string;
begin
s := '';
while x > 0 do
begin
s := chr(ord('0') + x mod 2) + s;
x := x div 2;
end;
result := s;
end;
var
w: word;
begin
w := 12345;
writeln(inttostr(w) + '=' + inttostr(reverse(w)));
writeln(dec2bin(w)+ '=' + dec2bin(reverse(w)));
readln;
end.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 02:49.
|
 |