![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Друзья нужна помощь, я пишу лабораторную работу, создание калькулятора. Калькулятор почти готов, но нужно еще добавить кнопку чтоб он переводила из десятичной системы счисления в шестнадцатиричную. Напишите пожалуста код пожалуста.
|
|
#2
|
||||
|
||||
|
Поблема стала тепер такая, калькулятор зделал еле как. Теперь нужно добавить кнопку или же сразу две, чтоб одна переводила в 10-ую, а другая в 16-ую. Если так не получится, то есть код программы которая переводит из 10-й в 16-ую. А теперь как этот код вставить в кнопку для перевода и что нужно подправить.
Цитата:
|
|
#3
|
||||
|
||||
|
Написал программу перевода из 10 в 16 на паскале, открыл Делпхи , скопировал код для консольного режима а программа не ззапускается, в чем дело. Помогите. Как сделать прогу мою на Делпхи в консольном режиме и что надо подправить.
Цитата:
|
|
#4
|
||||
|
||||
|
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
EditHex: TEdit;
EditDec: TEdit;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
EditHex.Text:=IntToHex(1234567890123456789, 16);
EditDec.Text:=IntToStr(StrToInt64('$'+EditHex.Text));
end;
end. |
|
#5
|
||||
|
||||
|
Извините меня NumLock, ваша програма почемута ругается. Особенно на два слова EditHex, EditDec. Я бы хотел уточнить это програ под DOS или нет то откуда мне взять EditHex, EditDec или их надо переименовать в Edit1 и Edit 2. На каких они вкладках находятся? Что то я отупел в конец
![]() |
|
#6
|
||||
|
||||
|
это едиты на форме:
Код:
type
TForm1 = class(TForm)
EditHex: TEdit;
EditDec: TEdit;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; |
|
#7
|
||||
|
||||
|
Я все понимаю, но смотрите, как я делал по вашему примеру. Я на формул кинул из вкладки стандартные Edit1 и Edit2. И они прописываются так:
Цитата:
Цитата:
Цитата:
|
|
#8
|
||||
|
||||
|
В чем собственно вопрос? Edit1 и EditHex - это один и тот же компонент, с разными именами...
Код:
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
...
Edit1.Text:=IntToHex(1234567890123456789, 16);
Edit2.Text:=IntToStr(StrToInt64('$'+EditHex.Text)); |
|
#9
|
||||
|
||||
|
Теперь он ругается на другое, посотрите на код где подчеркнуто на то и ругается:
Цитата:
Заранее всем спасибо за помощь. |
|
#10
|
||||
|
||||
|
Ну что сложно догадаться? Вы ж сами поменяли имя компоненту едиту...
Код:
...
Edit2.Text:=IntToStr(StrToInt64('$'+Edit1.Text)); |
|
#11
|
||||
|
||||
|
Теперь я понил. Но смотрите, в ем вопрос. Мы уже вписываем в нитри самой программе какое число перевести в 16 сист.счисления. А точнее говоря уже у нас в Edit2 уже вписано число и при запуске программы мы видим, что уже перевод готов. А нельзя ли сделать так что при запуке программы было так: Программа запустилась, но ничего там нет(пустые Edit), и мы вводим число в Edit1 и сразу появляется перевод в 16-ную в Edit2. А то постоянно менять в корне программу числа это как то затруднительно. Заранее спасибо.
|
|
#12
|
||||
|
||||
|
Код:
program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;
var
s: String;
begin
while True do
begin
Write('Enter number (prefix $ for hex): ');
Readln(s);
if s='' then Exit;
if s[1]='$' then
begin
Writeln('hex number='+s);
Writeln('dec number='+IntToStr(StrToInt64Def(s, 0)));
end else
begin
Writeln('dec number='+s);
Writeln('hex number=$'+IntToHex(StrToInt64Def(s, 0), 16));
end;
end;
end. |
|
#13
|
||||
|
||||
|
Большое человеческое спасибо вам NumLock и v1s2222, за помощь
. |
|
#14
|
||||
|
||||
|
сделаєш одну копку и одно поле Edit1 и все
begin nn:=strtoint(edit1.Text); Edit1.Text:=inttohex(nn, 8); end; |
|
#15
|
||||
|
||||
|
Y+4/Y-4=X решите очень нужно
|