  | 
	
		
	
	
		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, время: 16:49. 
		 
	 
 
 | 
  |