Главная Главная страница форума Регистрация Вход
Новые сообщения Участники форума Правила форума Поиск
Страница 1 из 11
Модератор форума: stalker, Ekz 
Форум » Все о Delphi » Начинающим » помогите, пожалуйста...
помогите, пожалуйста...
RiderДата: Воскресенье, 13.06.2010, 18:49 | Сообщение # 1
Ранг 1
Группа: Пользователи
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Здравствуйте, помогите, пожалуйста, вычесть Короткое Целое из ОДЦ. ОченьДлинноеЦелое – неотрицательное число состоит из большого количества цифр (>100), так что операции с такими числами не поддерживаются ни в одном числовом типе данных. За рание спасибо!
 
AdminДата: Воскресенье, 13.06.2010, 22:16 | Сообщение # 2
Ранг 10
Группа: Пользователи
Сообщений: 1268
Награды: 16
Репутация: 2
Статус: Offline
За вас написать код? Вы хотябы сами чего-нибудь придумали? Какой ход ваших мыслей?

По всей видимости тут нужно реализовать обычный "столбик", который во 2-ом классе изучали. Вспомните, порисуйте на листочке, попробуйте разные числа, и переведите на код.

Заводите 2 переменных String в ней будут числа. Результат будет в переменной такого же типа. Пробегаете всю строку и получаете каждый символ s[i], а дальше уже думайте, там надо алгоритм изобретать.


Не оказываю помощь через личные сообщения и ICQ
 
RiderДата: Воскресенье, 13.06.2010, 22:23 | Сообщение # 3
Ранг 1
Группа: Пользователи
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
procedure TForm1.Button1Click(Sender: TObject);
var ODC, b: String; s:real;
var i, n, o, m: Integer;

begin
for i := 1 to 200 do
ODC:= ODC+ IntToStr(RandomRange(0, 10));
label1.caption:=ODC;
end;

procedure TForm1.Button2Click(Sender: TObject);
var ODC,b,k: String; //s:real;
var i, n, l, s, m: Integer;
begin
n:=strtoint(Edit1.Text);
s:=0;
repeat
m:=n mod 10;
n:=n div 10;
s:=s+1;
until n=0;

k:=inttostr(n);
b:=copy(ODC, Length(ODC)-s,s);
if b<k then
b:=copy(ODC, Length(ODC)-s-1,s);
end;

вот ход моих мыслей, осталось дело за малым это вычитание, по идее L:=b-k, вот хочу узнать совета...

 
AdminДата: Понедельник, 14.06.2010, 10:46 | Сообщение # 4
Ранг 10
Группа: Пользователи
Сообщений: 1268
Награды: 16
Репутация: 2
Статус: Offline
Code
repeat  
m:=n mod 10;  
n:=n div 10;  
s:=s+1;  
until n=0;

Я вот это не совсем пойму зачем. Подсчет количества символов?

А дальше идет это:

Code
k:=inttostr(n);

Но ведь n будет всегда 0, так как условие выхода из цикла n=0;

Code
b:=copy(ODC, Length(ODC)-s,s);

тут ODC пустая, а следовательно и копировать оттуда нечего.

Ну а теперь про L:=b-k.
b и k - строки. Как вычесть? Но ведь в этих переменных хранятся символы-цифры? Ну я бы начал с такого:

Code
L:=strToInt(b) - strToInt(k)

Ну и если нужно то все это выражение преобразовать к нужному типу.


Не оказываю помощь через личные сообщения и ICQ
 
RiderДата: Понедельник, 14.06.2010, 10:49 | Сообщение # 5
Ранг 1
Группа: Пользователи
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
почему ODC пустая? мы же ее генерируем и выводиться все правильно, а с переменными спасибо, не обратила внимание
 
AdminДата: Понедельник, 14.06.2010, 13:12 | Сообщение # 6
Ранг 10
Группа: Пользователи
Сообщений: 1268
Награды: 16
Репутация: 2
Статус: Offline
Quote (Rider)
мы же ее генерируем и выводиться все правильно

procedure TForm1.Button1Click(Sender: TObject);
тут она локальная

procedure TForm1.Button2Click(Sender: TObject);
тут тоже

Следовательно нажав 1 кнопку, в локальной переменной что-то будет. Нажав вторую кнопку, эта переменная будет не та которая в процедуре клика первой кнопки.


Не оказываю помощь через личные сообщения и ICQ
 
RiderДата: Понедельник, 14.06.2010, 13:14 | Сообщение # 7
Ранг 1
Группа: Пользователи
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
а если все в одну процедуру?
 
AdminДата: Понедельник, 14.06.2010, 16:36 | Сообщение # 8
Ранг 10
Группа: Пользователи
Сообщений: 1268
Награды: 16
Репутация: 2
Статус: Offline
То будет нормально (но это не означает что так и нужно)

Не оказываю помощь через личные сообщения и ICQ
 
RiderДата: Понедельник, 14.06.2010, 16:37 | Сообщение # 9
Ранг 1
Группа: Пользователи
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
хорошо, спасибо!
 
Форум » Все о Delphi » Начинающим » помогите, пожалуйста...
Страница 1 из 11
Поиск:

Copyright DelphiDevelop.ru © 2008-2018
Хостинг от uCoz