Практика программирования (Бейсик, Си, Паскаль)


         

n Введите два целых числа


#include <stdlib.h>

int rasst(long nl, long n2);

char s [ 4 0];

main() {

long M1,M2;

printf("\ n Введите два целых числа : ");

scanf("%ld %ld",&Ml,&M2);

printf("\nMl =%32s",ltoa(Ml,s,2)); /* Двоичное разложение N1*/

printf("\nM2 =%32s",ltoa(M2,s,2)); /* Двоичное разложение N2*/

printf("\nXOR=%32s",ltoa(MlAM2,s,2));

printf("\nРасстояние между этим кодами = %5d",rasst(M1,M2));

getch();

}

int rasst(long nl,long n2)

{

int Result=0,k;

long j=0x00000001;
for(k=0; k <32; k++)

{
/* Сравнение одноименных двоичных разрядов */
if((j & nl)!=(j & n2)) Result++;
j=j « 1; /* сдвиг шкалы на разряд влево */
}

return Result; }

Программа 2_15.pas

program distance;

{ Определение расстояния между двоичными кодами }

var

Ml,M2:longint;

function rasst(nl,n2:longint):byte;
const

Result:byte=0 ;

j:longint=$00000001;
var

k:byte;

n3:longint;
begin

n3:=nl xor n2;

for k:=0 to 31 do { цикл подсчета единиц в двоичном числе }
begin

if (j and n3)<>0 then inc(Result);
j:=j shl 1;
{ сдвиг шкалы на разряд влево }
end;

rasst:=Result; end; begin

write('Введите два целых числа : ');

readln(Ml,M2);

writeln('Расстояние между этим кодами = ',rasst(Ml,M2));

readln; end.

Задание 2.16. Чтение числа справа налево

Составить функцию invert (n), аргументом которой является длинное целое число. Возвращаемое значение должно быть равно числу, полученному из n перестановкой цифр в обратном порядке. Знак числа при этом сохраняется на прежнем месте. Например:

invert(314159) =951413
invert(-2718) = -8172

Совет 1 (общий)

Очевидно, что самый простой алгоритм состоит в том, чтобы последовательно находить десятичные цифры, начиная с младшей, и тут же использовать их для вычисления перевернутого числа. Нужно только не забыть отделить от числа его знак, иначе каждый остаток от деления на 10 будет наследовать знак исходного числа.


Программа 2_16.bas

Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий