Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];

Вниз

Перевод целого р- ичного числа (2<= p<= q) в десятичную систему с   Найти похожие ветки 

 
Лена   (2003-11-16 20:24) [0]

Как выполнить перевод целого р- ичного числа (2<= p<= q) в десятичную систему счисления (с использованием схемы Горнера вычисления полинома).

пожалуйста помогите !! надо на pascale сделать а я в этом не смыслю, хоть намек дайте что да как


 
Лена   (2003-11-16 20:33) [1]

неучто никто не может помочь решить задачку первого курса ? :(


 
Лена   (2003-11-16 20:37) [2]

прощу вас пожалуйста помогите .

или напишите почему не можете помочь


 
Alexious   (2003-11-16 20:48) [3]

C помощью схемы Горнера я незнаю как. Да и вопрос не очень понял
Если вопрос идет о переводах систем исчисления то помочь могу


 
Лена   (2003-11-16 20:50) [4]

да вопрос про системы счисления
сейчас я вариант покажу кака я сделала, только мне кажется неправильно


 
Лена   (2003-11-16 20:51) [5]


uses crt;
var
chislo_mas:array[1..10] of integer;
p,i,z,otvet:integer;
chislo:string;

{// *STRING type --> INTEGER type*}
function StrToInt(str:string):integer;
var int,code :integer;
begin
Val(str, int, Code);
if code = 1 then WriteLN("! ERROR !... v funkcii StrToInt");
StrToInt:=int;
end;
{*STRING type --> INTEGER type* //}

{// *INTEGER type --> STRING type*}
function IntToStr(I: Integer): String;
var
S: string[11];
begin
Str(I, S);
IntToStr := S;
end;
{*INTEGER type --> STRING type* //}

{// *vozvodit chislo v stepen, rabotaet TOLKO S POLOSHITELNIMI chislami*}
function stepen(chislo,st:integer):integer;
var
i,otvet:integer;
begin
otvet:=1;
If (st>0)or(st<0) then
For i:=1 to st do
begin
otvet:=otvet*chislo;
end;
stepen := otvet;
end;
{*vozvodit chislo v stepen, rabotaet TOLKO S POLOSHITELNIMI chislami* //}

Begin
Write("vvedite chislo >> "); ReadLN(chislo);
Write("v kakoy SS vvedenoe chislo ? >> "); ReadLN(p);
z:=Length(chislo)+1;
For i:=1 to Length(chislo) do
begin
If (chislo[i]>="0")and(chislo[i]<="9") then chislo_mas[i]:=StrToInt(chislo[i])
else
begin
If (chislo[i]="A") then chislo_mas[i]:=10;
If (chislo[i]="B") then chislo_mas[i]:=11;
If (chislo[i]="C") then chislo_mas[i]:=12;
If (chislo[i]="D") then chislo_mas[i]:=13;
If (chislo[i]="E") then chislo_mas[i]:=14;
If (chislo[i]="F") then chislo_mas[i]:=15;
end;
end;

For i:=(Length(chislo)) downto 1 do
begin
WriteLN(chislo_mas[z-i],"*",p,"^",i-1);
otvet:=otvet+chislo_mas[z-i]*stepen(p,i-1);
end;
WriteLN(otvet);
ReadLN;
End.


 
Лена   (2003-11-16 21:01) [6]

ктонить проверте плиз работает или нет программа


 
Alexious   (2003-11-16 21:10) [7]

Ты делаешь на чистом паскале?
Есть встроеная функция HexToInt Для 16
Вот для двоичной

procedure bin2dec(bin: string): longint;
var
J : longint;
Error: boolean;
dec : longint;
begin
dec := 0;
Error := false;
for J := 1 TO Length(bin) DO
begin
if (bin[J] <>"0") and (bin[J] <>"1") then Error := true;
if bin[J] = "1" then dec := dec + (1 shl (Length(bin) - J));
end;
if Error then bin2dec := 0
else bin2dec := dec;
end;


И для восьмеричной

procedure OCT2dec(OCT: string): longint;
CONST
OCTSet: SET OF CHAR = ["0".."7"];
var
J : longint;
Error: boolean;
dec : longint;
begin
dec := 0;
Error := false;
for J := 1 TO Length(OCT) DO
begin
if NOT (UpCase(OCT[J]) iN OCTSet) then Error := true;
dec := dec + (Ord(OCT[J]) - 48) shl ((Length(OCT) - J) * 3);
{ 8^N = 2^(N * 3) }
{ N shl ((Length(OCT) - J) * 3) = N * 8^(Length(OCT) - J) }
end;
if Error then OCT2dec := 0
else OCT2dec := dec;
end;

Так делал я в своё время. Все работает


 
Лена   (2003-11-16 21:18) [8]

да я на чистом паскале ))

причем заметь у меня в любой от двоичной до 16ричной

сейчас проверила прогу свою вродебы правильно рабоатет ))

********
кстати ты тоже можешь запустиь эту прогу в дельфи достаточно подключить модуль DOS вродебы


 
Alexious   (2003-11-16 21:29) [9]

Знаю сейчас пробую.
Тебе надо из любой системы чтоли? Если да то код сейчас кину


 
Лена   (2003-11-16 21:30) [10]

да из любой надо
кинь пожалуйста


 
Alexious   (2003-11-16 21:48) [11]

function perevod(s1:integer;kakaiasistema:integer;vkakuusistemu:integer):string;
var i,t,k,flag: integer;
itog, e: longint;
s:string;
begin
s:=inttostr(s1);
k:=10;
e:=1;
itog:=0;
for i:=length(s) downto 1 do begin
if ord(s[i])<60 then t:=ord(s[i]) - ord("0") else t:=Ord(s[i])-ord("A")+10;
itog:=itog+e*t;
e:=e*k;
end;
flag:=0;
s:="";
repeat
e:=itog mod vkakuusistemu;
itog:=itog div vkakuusistemu;
if itog=0 then flag:=1;
if e>=10 then s:=chr(e+ord("A")-kakaiasistema)+s else s:=chr(e+ord("0"))+s;
until flag=1;
result:=s;


 
Лена   (2003-11-16 21:52) [12]

Огромнейшее спасибочки ! :)
чтоб у тебя все шло как по маслу и в ближаёшее время ты работал в майкрасофт и получал 100 000$ /месяц


 
Alexious   (2003-11-16 22:15) [13]

ага спасибо.
Пиши если что.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
1-89830
romeo
2003-11-18 15:35
2003.11.27
Все время черно-белая картинка!!! Блин...


3-89732
Мыш
2003-11-09 18:16
2003.11.27
Выбрать данные из нескольких таблиц. SQL.


3-89738
beware
2003-11-08 05:56
2003.11.27
Сбор данных


14-90085
Mike B.
2003-11-04 15:02
2003.11.27
Аз, буки... :)


6-90037
Xeon
2003-09-30 20:06
2003.11.27
Сокеты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский