Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2011, 21:35   #1
zoomgel
 
Аватар для zoomgel
 
Регистрация: 25.02.2011
Сообщений: 8
По умолчанию Дельфи, задача перевод десятичного числа в восьмеричную

Здравствуйте. Собственно, сабж.
Вот тут "насочиняла" немного, и всё, ступор.
Помогите, пожалуйста, кто чем может.

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Button1: TButton;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
a,k:string;
b,i,d,c,j,r,z,s:integer;
    begin
          a:=edit1.Text;
          b:=StrToInt(a);
          i:=b;
          while i>8 do

          begin
            d:=i;
            i=:i div 8;
            c:=d-(i*8);
            k:k+IntTostr(c);

    end;

        j:=(lengh(S);
        r:=j
        while r>0 do
    begin
        z:=z+s(r);
        r:=r-1;

end.
zoomgel вне форума Ответить с цитированием
Старый 25.02.2011, 21:54   #2
VadikV
Форумчанин
 
Аватар для VadikV
 
Регистрация: 08.01.2011
Сообщений: 226
По умолчанию

Код:
k := '';
repeat
   k := IntToStr(i mod 8) + k;
   i := i div 8;
until i <> 0;
В к получишь число в восьмеричной
icq 223-630-454
e-mail vysotskiy@list.ru
сайт http://www.big-library.net/
VadikV вне форума Ответить с цитированием
Старый 25.02.2011, 21:57   #3
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Код:
    i := 1;
    Oct := 0;
    while (Dec > 8) do
    begin
        Oct := Oct + i*(Dec mod 8);
        Dec := Dec div 8;
        i := i*10;
    end;
    Oct := Oct + i*Dec;
Oct нужное число!!!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 25.02.2011, 22:03   #4
zoomgel
 
Аватар для zoomgel
 
Регистрация: 25.02.2011
Сообщений: 8
По умолчанию

Ругается на следующую строку:

Код:
i=:i div 8;
В чём может быть дело?

АПД: понятно..

Последний раз редактировалось zoomgel; 25.02.2011 в 22:05.
zoomgel вне форума Ответить с цитированием
Старый 25.02.2011, 22:05   #5
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Код:
i=:i div 8;
Надо :=
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 25.02.2011, 22:13   #6
zoomgel
 
Аватар для zoomgel
 
Регистрация: 25.02.2011
Сообщений: 8
По умолчанию

Спасибо большое, люди.

теперь ругаеццо на:

Код:
j:=(lengh(S);
Цитата:
i := 1;
Oct := 0;
while (Dec > 8) do
begin
Oct := Oct + i*(Dec mod 8);
Dec := Dec div 8;
i := i*10;
end;
Oct := Oct + i*Dec;

Oct нужное число!!!
К сожалению мы это не проходили на занятии, поэтому я не могу писать через Oct и Dec.
Простите за ламерство.
zoomgel вне форума Ответить с цитированием
Старый 25.02.2011, 22:14   #7
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Oct Gec это переменные!!!! Назови их как хочешь!!!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 25.02.2011, 22:20   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Oct и Dec
- это ИМЕНА переменных!
Код:
var 
   Oct, Dec : integer;
не нравится Oct, Dec - обзовите их O1 и D2

Цитата:
Код:
j:=(lengh(S);
правильно, length(S)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.02.2011, 22:40   #9
zoomgel
 
Аватар для zoomgel
 
Регистрация: 25.02.2011
Сообщений: 8
По умолчанию

упс, понятно.
Ладно. Вообщем так, на length(S) всё равно ругаеццо.

Попробовала вот так еще
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i,Oct, Dec : integer;
begin
i := 1;
Oct := 0;
while (Dec > 8) do
begin
Oct := Oct + i*(Dec mod 8);
Dec := Dec div 8;
i := i*10;
end;
Oct := Oct + i*Dec;

end;

end.
Запускается, но никаких вычислений не делает

И, еще вопрос, неужели без StrToInt можно обойтись?

(Еще раз благодарю за терпение)
zoomgel вне форума Ответить с цитированием
Старый 25.02.2011, 22:44   #10
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Вы с начало Dec ПРИСВОЙТЕ значение А после всего ВЫВЕДИТЕ Oct(посмотрите)!!!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перевод числа из десятичного представления в двоичное на Си Kastet14 Помощь студентам 11 29.04.2016 16:49
Перевод числа с десятичной системы в восьмеричную систему Yardik Помощь студентам 1 21.01.2010 08:41
Преобразование десятичного числа в двоичное. Quize Паскаль, Turbo Pascal, PascalABC.NET 4 12.04.2008 16:09
C++. Перевод десятичного числа в двоичное Panterka Помощь студентам 15 12.12.2007 15:04