Разделы презентаций


Алгохитрости Системы счисления

Перевод из десятичной системы в другую (от 2-ой до 16-ой)Program ten_to_Х_case (* перевод из десятичной в любую другую систему *)const Size=18;Var na, a, i, j, osn: integer; mas:

Слайды и текст этой презентации

Слайд 1Алгохитрости - Системы счисления
Перевод чисел из десятичной позиционной системы счисления


в другую и наоборот


При переводе целого числа (целой

части числа) из десятичной системы счисления в любую другую: исходное число (или целую часть) надо разделить на основание системы счисления, в которую выполняется перевод. Деление выполнять, пока частное не станет меньше основания новой системы счисления. Результат перевода определяется остатками от деления: первый остаток дает младшую цифру результирующего числа, последнее частное от деления дает старшую цифру.



Операция перевода в десятичную систему выглядит гораздо проще, так как любое десятичное число можно представить в виде
x = a0·pn + a1·pn–1 +... + an–1·p1 + an·p0,
где a0 ... an – это цифры данного числа в системе счисления с основанием p.
Например, перевести число 4A3F в десятичную систему.
По определению, 4A3F= 4·163 + A·162 + 3·161 + F ·160.
При замене A на 10, а F на 15, получается 4·163 + 10·162 + 3·16 + 15·1 = 19007.


И+ПРГ

Алгохитрости - Системы счисленияПеревод чисел из десятичной позиционной системы счисления в другую и наоборот  При переводе

Слайд 2Перевод из десятичной системы в другую (от 2-ой до 16-ой)
Program

ten_to_Х_case (* перевод из десятичной в любую другую систему

*)
const Size=18;
Var na, a, i, j, osn: integer; mas: array[1..Size] of integer; num: string[Size];
begin
write('Введите число в десятичной системе счисления: ');
readln(na); a:=na;
write('Введите основание системы счисления: ');
readln(osn);
i:=1;
while (a<>0) do
begin
mas[i]:=a mod osn;
i:=i+1;
a:=a div osn;
end;
for j:=i-1 DownTo 1 do
if mas[j]<10
then num:=num+chr(mas[j]+48)
else case mas[j] of
10: num:=num+'A';
11: num:=num+'B';
12: num:=num+'C';
13: num:=num+'D';
14: num:=num+'E';
15: num:=num+'F';
end;
writeln('Десятичное число ',na,' равно ', osn,'-ичном числу ',num);
end.

И+ПРГ

Pascal

Выбор цифр систем счисления старше 10-тичной
в операторе множественного выбора case

Алгохитрости - Системы счисления

Перевод из десятичной системы в другую (от 2-ой до 16-ой)Program ten_to_Х_case  (* перевод из десятичной в

Слайд 3Перевод из десятичной системы в другую (от 2-ой до 16-ой)

// перевод из десятичной системы счисления в любую другую позиционную

систему
#include
#include
#define Size 15

void main()
{ int na, a, i, j, k=0, osn; int mas[Size]; char num[Size]={'\x0'};
printf("\nВведите десятичное число: "); scanf("%i", &na); a=na;
printf("\nВведите основание системы счисления: "); scanf("%i", &osn);
i=0;
while (a!=0)
{ mas[i]=a%osn; i++; a=(int)a/osn; }
for (j=i-1; j>=0; j--, k++)
if (mas[j]<10)
num[k]=(char)(mas[j]+48);
else
switch (mas[j]) {
case 10: {num[k]='A'; break;}
case 11: {num[k]='B'; break;}
case 12: {num[k]='C'; break;}
case 13: {num[k]='D'; break;}
case 14: {num[k]='E'; break;}
case 15: {num[k]='F'; break;}
}
printf("\nДесятичное число %d равно %d-ичному числу %s\n", na, osn, num);
}

И+ПРГ

С/С++

Выбор цифр систем счисления старше 10-тичной
в операторе множественного выбора switch

Алгохитрости - Системы счисления


Слайд 4Перевод из десятичной системы в другую (от 2-ой до 16-ой)
Program

ten_to_X_string; (* перевод из десятичной в любую другую

систему счисления *)
Var
ost, osn: integer; (* остаток от деления и основание системы счисления *)
na, a10 : longint; (* десятичное число и его дубль *)
aQ : string[18]; (* число, переведенное в систему счисления с основанием osn *)
c : string[16]; (* строка цифр систем счисления от 2-ной до 16-ричой *)

Begin
c:='0123456789ABCDEF';
write('Введите число в десятичной системе счисления: ');
readln(na); a10:=na;
write('Введите основание системы счисления: ');
readln(osn);
aQ:='';
while(a10<>0)do
begin
ost := a10 mod osn;
aQ := c[ost+1] + aQ;
a10 := a10 div osn;
end;
writeln('Десятичное число ', na, ' равно ', osn,'-ичном числу ', aQ);
end.

И+ПРГ

Pascal

Выбор цифр систем счисления от 2-ой до 16-ричной
с помощью строки, хранящей эти цифры

Алгохитрости - Системы счисления

Перевод из десятичной системы в другую (от 2-ой до 16-ой)Program  ten_to_X_string;  (* перевод из десятичной

Слайд 5Перевод из десятичной системы в другую (от 2-ой до 16-ой)

// перевод из десятичной системы счисления в любую другую позиционную

систему
#include
#include
#define Size 15

void main()
{ int na, a10, i=0, j, k=0, ost, osn;
char cifr[]="0123456789ABCDEF";
int mas[Size];
char num[Size]={'\x0'};
printf("\nВведите десятичное число: ");
scanf("%i", &na);
a10=na;
printf("\nВведите основание системы счисления: ");
scanf("%i", &osn);
while (a10!=0)
{
mas[i]=a10%osn;
i++;
a10=(int)a10/osn;
}
for (j=i-1; j>=0; j--, k++)
num[k]=cifr[mas[j]];

printf("\nДесятичное число %d равно %d-ичному числу %s\n", na, osn, num);
}

И+ПРГ

С/С++

Выбор цифр систем счисления от 2-ой до 16-ричной
с помощью строки, хранящей эти цифры

Алгохитрости - Системы счисления


Слайд 6Перевод из десятичной системы в другую (от 2-ой до 16-ой)
Program

ten_to_X_symbol; (* перевод из десятичной в любую другую

систему счисления *)
Var
ost, osn: integer; (* остаток от деления и основание системы счисления *)
na, a10 : longint; (* десятичное число и его дубль *)
aQ : string[18]; (* число, переведенное в систему счисления с основанием osn *)

Begin
write('Введите число в десятичной системе счисления: ');
readln(na); a10:=na;
write('Введите основание системы счисления: ');
readln(osn);
aQ:='';
while(a10<>0)do
begin
ost := a10 mod osn;
if ost < 10
Then
aQ:=chr(ost+48)+aQ
Else
aQ:=chr(ost+55)+aQ;
a10 := a10 div osn;
end;
writeln('Десятичное число ', na, ' равно ', osn,'-ичном числу ', aQ);
end.

И+ПРГ

Pascal

Выбор цифр систем счисления от 2-ой до 16-ричной
с помощью приращения кода ASCII

Алгохитрости - Системы счисления

Выбор цифр систем счисления от 2-ой до 16-ричной
с помощью приращения кода ASCII

Перевод из десятичной системы в другую (от 2-ой до 16-ой)Program  ten_to_X_symbol;  (* перевод из десятичной

Слайд 7Перевод из десятичной системы в другую (от 2-ой до 16-ой)
И+ПРГ
Алгохитрости

- Системы счисления
Выбор цифр систем счисления от 2-ой до 16-ричной


с помощью приращения кода ASCII

С/С++

// перевод из десятичной системы счисления в любую другую позиционную систему
#include
#include
#define Size 15

void main()
{ int na, a10, i=0, j, k=0, ost, osn;
int mas[Size];
char num[Size]={'\x0'};
printf("\nВведите десятичное число: ");
scanf("%i", &na);
a10=na;
printf("\nВведите основание системы счисления: ");
scanf("%i", &osn);
while (a10!=0)
{
mas[i]=a10%osn;
i++;
a10=(int)a10/osn;
}
for (j=i-1; j>=0; j--, k++)
if (mas[j] < 10)
num[k]=(char)(mas[j]+48);
else
num[k]=(char)(mas[j]+55);
printf("\nДесятичное число %d равно %d-ичному числу %s\n", na, osn, num);
}


Слайд 8Алгохитрости - Системы счисления
Перевод чисел из десятичной позиционной системы счисления


в другую и наоборот


При переводе целого числа (целой

части числа) из десятичной системы счисления в любую другую: исходное число (или целую часть) надо разделить на основание системы счисления, в которую выполняется перевод. Деление выполнять, пока частное не станет меньше основания новой системы счисления. Результат перевода определяется остатками от деления: первый остаток дает младшую цифру результирующего числа, последнее частное от деления дает старшую цифру.


Операция перевода в десятичную систему выглядит гораздо проще, так как любое десятичное число можно представить в виде
x = a0·pn + a1·pn–1 +... + an–1·p1 + an·p0,
где a0 ... an – это цифры данного числа в системе счисления с основанием p.
Например, перевести число 4A3F в десятичную систему.
По определению, 4A3F= 4·163 + A·162 + 3·161 + F ·160.
При замене A на 10, а F на 15, получается 4·163 + 10·162 + 3·16 + 15·1 = 19007.


И+ПРГ

Алгохитрости - Системы счисленияПеревод чисел из десятичной позиционной системы счисления в другую и наоборот  При переводе

Слайд 9Program X_to_10_case; (* перевод из любой системы счисления

в десятичную *)
Var
osn, rez, st, i: integer; (*основание

системы, результат, основание в степени позиции, переменная цикла*)
str: string[20]; (* число для перевода *) fl: boolean; (* флаг неправильного ввода числа *)
begin
write ('Введите основание системы счисления '); readln(osn);
write('Введите число в системе счисления от 2-ой до 16-ой: '); readln(str);
writeln ('Переводим число ', str, ' в десятичную систему');
st:=1; rez:=0; i:=length(str); fl:=true;
while (i<>0) do
begin
if (integer(str[i])-48)<10
then rez:=(integer(str[i])-48)*st+rez
else case str[i] of
'A', 'a': rez:=10*st+rez;
'B','b': rez:=11*st+rez;
'C','c': rez:=12*st+rez;
'D','d': rez:=13*st+rez;
'E','e': rez:=14*st+rez;
'F','f': rez:=15*st+rez;
else begin writeln ('Неправильный ввод числа!'); fl:=false; end;
end;
st:=st*osn; i:=i-1;
end;
if fl = true then
writeln('Число ', str, ' в ', osn,'-ой системе счисления равно ', rez,' в десятичной системе');
end.

И+ПРГ

Pascal

Выбор цифр систем счисления старше 10-тичной
в операторе множественного выбора case

Перевод из систем с основанием от 2-ой до 16-ой в десятичную

Алгохитрости - Системы счисления

Program X_to_10_case;   (* перевод из любой системы счисления в десятичную *)Var osn, rez, st, i:

Слайд 10Перевод из систем с основанием от 2-ой до 16-ой в

десятичную
#include // перевод числа из системы

счисления от 2-х до 16-и в десятичную
#include
main()
{ int osn, rez, st, i;
/* osn - основание системы счисления переводимого числа,
rez - результат перевода: число в десятичной системе счисления,
st - основание системы счисления в степени текущей позиции цифры в числе */
char str[20]; // строка содержащая исходное число в системе счисления от 2-ч до 16-и
printf("Перевод числа в 10-ичную систему счисления. \n");
printf("Введите число "); gets(str);
printf("\nВведите основание системы счисления: "); scanf("%i", &osn);
st=1; rez=0; i=strlen(str)-1;
while (i>=0)
{ if ((int(str[i])-48)<10)
rez=int(str[i]-48)*st+rez;
else switch (str[i]) {
case 'A': case 'a': {rez=10*st+rez; break;}
case 'B': case b': {rez=11*st+rez; break;}
case 'C': case 'c': {rez=12*st+rez; break;}
case 'D': case 'd': {rez=13*st+rez; break;}
case 'E': case 'e': {rez=14*st+rez; break;}
case 'F': case 'f': {rez=15*st+rez; break;}
}
st=st*osn; i--;
}
printf("%i", rez); return 0;
}

И+ПРГ

С/С++

Выбор цифр систем счисления от 2-ой до 16-ричной
в операторе множественного выбора switch

Алгохитрости - Системы счисления


Слайд 11Перевод из систем с основанием от 2-ой до 16-ой в

десятичную
И+ПРГ
Выбор цифр систем счисления от 2-ой до 16-ричной
с

помощью строки, хранящей эти цифры

Алгохитрости - Системы счисления

program X_to_10_srting;
(* перевод из системы счисления от 2-ой до 16-ой в десятичную (цифры из строки) *)
uses crt;
var
i,n,st,osn, a10: integer;
aP: string[20];
c: string [16];
begin
clrscr;
c:='0123456789ABCDEF';
write ('Введите основание системы счисления ');
readln(osn);
write ('Введите число в системе счисления от 2-ой до 16-ой: ');
readln(aP);
writeln ('Переводим число ', aP, ' в десятичную систему');

a10:=0;
st:=1;
for i:=length(aP) downto 1 do
begin
n:=pos(upcase(aP[i]),c)-1;
a10:=a10+n*st;
st:=st*osn;
end;
writeln('Число ', aP, ' в ', osn,'-ой системе счисления равно ', a10,' в десятичной системе');
repeat until keypressed;
end.

Pascal

Перевод из систем с основанием от 2-ой до 16-ой в десятичную И+ПРГВыбор цифр систем счисления от 2-ой

Слайд 12Перевод из систем с основанием от 2-ой до 16-ой в

десятичную
И+ПРГ
С/С++
Выбор цифр систем счисления от 2-ой до 16-ричной
с

помощью строки, хранящей эти цифры

Алгохитрости - Системы счисления

#include // перевод из любой системы счисления в десятичную (цифры из строки)
#include
main()
{

int osn, rez=0, st=1, i, k=0;
char cifr[]="0123456789ABCDEF";
int mas[Size];
char str[20]; // строка содержащая исходное число в системе счисления от 2-ч до 16-и
printf("Перевод числа в 10-ичную систему счисления. \n");
printf("Введите число для перевода - "); gets(str);
printf("\nВведите основание системы счисления: "); scanf("%i", &osn);

for (i=strlen(str)-1; i>=0; i--)
{
for (k=0; k {
if (toupper(str[i])==cifr[k])
{ rez=rez+k*st; break; }
}
st=st*osn;
}
printf("%i", rez);
return 0;
}


Слайд 13Перевод из систем с основанием от 2-ой до 16-ой в

десятичную
И+ПРГ
Выбор цифр систем счисления от 2-ой до 16-ричной
с

помощью приращения кода ASCII

Алгохитрости - Системы счисления

program X_to_10_symbol;
(* перевод из системы счисления от 2-ой до 16-ой в десятичную (цифры из ASCII) *)
var
i,n,st,osn, a10: integer; aP: string[20]; fl : boolean;
Begin
write ('Введите основание системы счисления '); readln(osn);
write ('Введите число в системе счисления от 2-ой до 16-ой: '); readln(aP);
writeln ('Переводим число ', aP, ' в десятичную систему');
a10:=0; st:=1;
for i:=length(aP) downto 1 do begin
if (ord(upcase(aP[i]))-48 >= 0) and (ord(upcase(aP[i]))-55 < 16) then begin
if (ord(upcase(aP[i]))-48 >= 0) and (ord(upcase(aP[i]))-48 < 10) then
n:=ord(upcase(aP[i]))-48
else n:=ord(upcase(aP[i]))-55;
a10:=a10+n*st; st:=st*osn;
fl:=true; end
else fl:=false;
end;
if fl = true then
writeln('Число ', aP, ' в ', osn,'-ой системе счисления равно ', a10,' в десятичной системе')
else begin
writeln ('Извините, введенно число, основание системы счисления которого');
writeln(' не находится в диапазоне от 2-х до 16-и');
end; readln;
end.

Pascal

Перевод из систем с основанием от 2-ой до 16-ой в десятичную И+ПРГВыбор цифр систем счисления от 2-ой

Слайд 14Перевод из систем с основанием от 2-ой до 16-ой в

десятичную
И+ПРГ
С/С++
Алгохитрости - Системы счисления
Выбор цифр систем счисления от 2-ой

до 16-ричной
с помощью приращения кода ASCII

#include // перевод из любой системы счисления в десятичную (цифры из строки)
#include
#include
#define Size 15
main()
{
int osn, rez, st, i;
char str[20]; // строка содержащая исходное число в системе счисления от 2-й до 16-и
printf("Перевод числа в 10-ичную систему счисления. \n");
printf("Введите число для перевода - "); gets(str);
printf("\nВведите основание системы счисления: "); scanf("%i", &osn);
st=1; rez=0;
i=strlen(str)-1;
while (i>=0)
{ if ((int(str[i])-48)<10)
rez=int(str[i]-48)*st+rez;
else
{ str[i]=toupper(str[i]);
rez=int(str[i]-55)*st+rez; }
}
st=st*osn;
i--;
}
printf("%i", rez);
return 0;
}


Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика