Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

C 2-мя программками

-

Вопросы и ответы, обсуждения

- Ваши вопросы по Pascal/Delphi только в данном разделе

Ответ
 
Опции темы
Старый 22.09.2011, 23:30   #1
 Разведчик
Аватар для Logo424
 
Logo424 неизвестен в этих краях
Регистрация: 01.05.2010
Сообщений: 2
Популярность: -67
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
 
Question C 2-мя программками

Помогите или подскажите пожалуйста
программа на delphi

1)
Задано целое число типа WORD. Поменять местами содержимое последних двух разрядов с содержимым первых двух. Алгоритм преобразования оформить в виде функции. Исходное число и результат вывести в двоичной и десятичной форме.

2)
Создать программу с функциями упаковки/распаковки группы из 8 чисел диапазона 0..7 (000..111) в 3 байтах.


Заранее спасибо
  Ответить с цитированием
Старый 23.09.2011, 12:42   #2
 Разведчик
Аватар для Duha666
 
Duha666 на правильном пути
Регистрация: 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
Заблокирован
 Пехотинец
Аватар для lolwut98
 
lolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражанияlolwut98 блестящий пример для подражания
Регистрация: 16.07.2011
Сообщений: 97
Популярность: 2528
Сказал(а) спасибо: 61
Поблагодарили 336 раз(а) в 61 сообщениях
Отправить сообщение для lolwut98 с помощью ICQ Отправить сообщение для lolwut98 с помощью Skype™
 
По умолчанию 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.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 01:35.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net