RE: Решение задач на Паскале и Delphi
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
RE: Решение задач на Паскале и Delphi - 2009-07-23 13:34:40.016666
|
|
|
raven314
Сообщений: 101
Оценки: 0
Присоединился: 2008-11-02 11:03:05.490000
|
ребят, можете объяснить что такое UnDelphiX, для чего нужен и как с ним работать. прошу, с самого простейщего, в плоть до того, какисм образом его импортировать в дельфи. стоит дельфи 7. прошу подробный мануал. заранее спасибо.)
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-07-23 15:12:43.653333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
http://lmgtfy.com/?q=UnDelphiX
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-07-24 16:43:50.073333
|
|
|
raven314
Сообщений: 101
Оценки: 0
Присоединился: 2008-11-02 11:03:05.490000
|
на одном из форумов посоветовали использовать "dglEngine" для работы с графикой. скачал архив, в котором были все компоненты и примеры. скинул ВСЕ компоненты в папку lib лежащую в дериктории с дельфи. так вот. как мне этими элементами пользоваться? раскрыв дельфи (7 версия) я немогу найти компоненты движка на панелях =/ что делать, помогите, мануала по подобному ненашел, ибо это слишком элементарно. а я незнаю "D ай нид хелп.)
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-08-08 14:20:36.053333
|
|
|
sizwar
Сообщений: 6
Оценки: 0
Присоединился: 2009-06-16 09:41:48.580000
|
Парни посоветуйте пожалуйста компонент для работы с COM портом а то я нечего немого найти работаю сейчас компонентом COMPORT а он роботает только с первые 20 портов а мне примерно нужно чтобы программа работала с 197 портами. Пробовал ставить Comm32 он у меня не пошел у меня Delphi 6 уже не знаю что делать. Заранее спасибо!
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-08-17 20:58:55.480000
|
|
|
Alexandr617
Сообщений: 104
Оценки: 0
Присоединился: 2008-01-12 00:53:55.466666
|
Всем привет! Прашу памочь мне. У меня в порога нормально хеширует MD5 когда небольшое слово вводиш (рис.1) а когда начинаеш вводить большие слова то прога начинает неправильно хешировать (рис.2) Для проверки своей проги я использовал DAMN_HashCalc Памагите исправить ошибку. плиз unit Unit1;
interface
uses
Windows, SysUtils, Classes, Graphics, Forms, XPMan, ShellAPI, Controls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
XPManifest1: TXPManifest;
EHash: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Umd5;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if trim(Edit1.Text)<>'' then
EHash.Text:=md5(trim(Edit1.Text));
end;
end. unit Umd5;
interface
uses Windows, SysUtils;
type
THash = DWord;
function md5 (buf: string): string;
implementation
var HEX: array[Word] of string;
function LRot32 (a, b: LongWord): LongWord;
asm
mov ecx, edx
rol eax, cl
end;
function md5 (buf: string): string;
type
pint = ^Integer;
tdata = array [0..15] of DWORD;
pdata = ^tdata;
tbyte = array [0..15] of byte;
pbyte = ^tbyte;
var
i, Len: Integer;
data: pdata;
CurrentHash: array[0..3] of DWord;
P: array[0..7] of Word absolute CurrentHash;
A, B, C, D: DWord;
begin
Len := Length (buf);
SetLength (buf, 64);
buf[Len+1] := #$80;
FillChar (buf[Len+2], 63 - Len, 0);
pint (@buf[57])^ := Len * 8;
CurrentHash[0] := $67452301;
CurrentHash[1] := $efcdab89;
CurrentHash[2] := $98badcfe;
CurrentHash[3] := $10325476;
A := CurrentHash[0];
B := CurrentHash[1];
C := CurrentHash[2];
D := CurrentHash[3];
data := addr (buf[1]);
A := B + LRot32 (A + (D xor (B and (C xor D))) + data^[ 0] + $d76aa478, 7);
D := A + LRot32 (D + (C xor (A and (B xor C))) + data^[ 1] + $e8c7b756, 12);
C := D + LRot32 (C + (B xor (D and (A xor B))) + data^[ 2] + $242070db, 17);
B := C + LRot32 (B + (A xor (C and (D xor A))) + data^[ 3] + $c1bdceee, 22);
A := B + LRot32 (A + (D xor (B and (C xor D))) + data^[ 4] + $f57c0faf, 7);
D := A + LRot32 (D + (C xor (A and (B xor C))) + data^[ 5] + $4787c62a, 12);
C := D + LRot32 (C + (B xor (D and (A xor B))) + data^[ 6] + $a8304613, 17);
B := C + LRot32 (B + (A xor (C and (D xor A))) + data^[ 7] + $fd469501, 22);
A := B + LRot32 (A + (D xor (B and (C xor D))) + data^[ 8] + $698098d8, 7);
D := A + LRot32 (D + (C xor (A and (B xor C))) + data^[ 9] + $8b44f7af, 12);
C := D + LRot32 (C + (B xor (D and (A xor B))) + data^[10] + $ffff5bb1, 17);
B := C + LRot32 (B + (A xor (C and (D xor A))) + data^[11] + $895cd7be, 22);
A := B + LRot32 (A + (D xor (B and (C xor D))) + data^[12] + $6b901122, 7);
D := A + LRot32 (D + (C xor (A and (B xor C))) + data^[13] + $fd987193, 12);
C := D + LRot32 (C + (B xor (D and (A xor B))) + data^[14] + $a679438e, 17);
B := C + LRot32 (B + (A xor (C and (D xor A))) + data^[15] + $49b40821, 22);
A := B + LRot32 (A + (C xor (D and (B xor C))) + data^[ 1] + $f61e2562, 5);
D := A + LRot32 (D + (B xor (C and (A xor B))) + data^[ 6] + $c040b340, 9);
C := D + LRot32 (C + (A xor (B and (D xor A))) + data^[11] + $265e5a51, 14);
B := C + LRot32 (B + (D xor (A and (C xor D))) + data^[ 0] + $e9b6c7aa, 20);
A := B + LRot32 (A + (C xor (D and (B xor C))) + data^[ 5] + $d62f105d, 5);
D := A + LRot32 (D + (B xor (C and (A xor B))) + data^[10] + $02441453, 9);
C := D + LRot32 (C + (A xor (B and (D xor A))) + data^[15] + $d8a1e681, 14);
B := C + LRot32 (B + (D xor (A and (C xor D))) + data^[ 4] + $e7d3fbc8, 20);
A := B + LRot32 (A + (C xor (D and (B xor C))) + data^[ 9] + $21e1cde6, 5);
D := A + LRot32 (D + (B xor (C and (A xor B))) + data^[14] + $c33707d6, 9);
C := D + LRot32 (C + (A xor (B and (D xor A))) + data^[ 3] + $f4d50d87, 14);
B := C + LRot32 (B + (D xor (A and (C xor D))) + data^[ 8] + $455a14ed, 20);
A := B + LRot32 (A + (C xor (D and (B xor C))) + data^[13] + $a9e3e905, 5);
D := A + LRot32 (D + (B xor (C and (A xor B))) + data^[ 2] + $fcefa3f8, 9);
C := D + LRot32 (C + (A xor (B and (D xor A))) + data^[ 7] + $676f02d9, 14);
B := C + LRot32 (B + (D xor (A and (C xor D))) + data^[12] + $8d2a4c8a, 20);
A := B + LRot32 (A + (B xor C xor D) + data^[ 5] + $fffa3942, 4);
D := A + LRot32 (D + (A xor B xor C) + data^[ 8] + $8771f681, 11);
C := D + LRot32 (C + (D xor A xor B) + data^[11] + $6d9d6122, 16);
B := C + LRot32 (B + (C xor D xor A) + data^[14] + $fde5380c, 23);
A := B + LRot32 (A + (B xor C xor D) + data^[ 1] + $a4beea44, 4);
D := A + LRot32 (D + (A xor B xor C) + data^[ 4] + $4bdecfa9, 11);
C := D + LRot32 (C + (D xor A xor B) + data^[ 7] + $f6bb4b60, 16);
B := C + LRot32 (B + (C xor D xor A) + data^[10] + $bebfbc70, 23);
A := B + LRot32 (A + (B xor C xor D) + data^[13] + $289b7ec6, 4);
D := A + LRot32 (D + (A xor B xor C) + data^[ 0] + $eaa127fa, 11);
C := D + LRot32 (C + (D xor A xor B) + data^[ 3] + $d4ef3085, 16);
B := C + LRot32 (B + (C xor D xor A) + data^[ 6] + $04881d05, 23);
A := B + LRot32 (A + (B xor C xor D) + data^[ 9] + $d9d4d039, 4);
D := A + LRot32 (D + (A xor B xor C) + data^[12] + $e6db99e5, 11);
C := D + LRot32 (C + (D xor A xor B) + data^[15] + $1fa27cf8, 16);
B := C + LRot32 (B + (C xor D xor A) + data^[ 2] + $c4ac5665, 23);
A := B + LRot32 (A + (C xor (B or (not D))) + data^[ 0] + $f4292244, 6);
D := A + LRot32 (D + (B xor (A or (not C))) + data^[ 7] + $432aff97, 10);
C := D + LRot32 (C + (A xor (D or (not B))) + data^[14] + $ab9423a7, 15);
B := C + LRot32 (B + (D xor (C or (not A))) + data^[ 5] + $fc93a039, 21);
A := B + LRot32 (A + (C xor (B or (not D))) + data^[12] + $655b59c3, 6);
D := A + LRot32 (D + (B xor (A or (not C))) + data^[ 3] + $8f0ccc92, 10);
C := D + LRot32 (C + (A xor (D or (not B))) + data^[10] + $ffeff47d, 15);
B := C + LRot32 (B + (D xor (C or (not A))) + data^[ 1] + $85845dd1, 21);
A := B + LRot32 (A + (C xor (B or (not D))) + data^[ 8] + $6fa87e4f, 6);
D := A + LRot32 (D + (B xor (A or (not C))) + data^[15] + $fe2ce6e0, 10);
C := D + LRot32 (C + (A xor (D or (not B))) + data^[ 6] + $a3014314, 15);
B := C + LRot32 (B + (D xor (C or (not A))) + data^[13] + $4e0811a1, 21);
A := B + LRot32 (A + (C xor (B or (not D))) + data^[ 4] + $f7537e82, 6);
D := A + LRot32 (D + (B xor (A or (not C))) + data^[11] + $bd3af235, 10);
C := D + LRot32 (C + (A xor (D or (not B))) + data^[ 2] + $2ad7d2bb, 15);
B := C + LRot32 (B + (D xor (C or (not A))) + data^[ 9] + $eb86d391, 21);
Inc (CurrentHash[0], A);
Inc (CurrentHash[1], B);
Inc (CurrentHash[2], C);
Inc (CurrentHash[3], D);
Result := StrLower(PChar(HEX[P[0]]));
for i := 1 to 7 do
Result := Concat (Result, StrLower(PChar(HEX[P[i]])));
end;
var DEC, Tmp: Integer;
LH: string;
initialization
for DEC := 0 to $ffff do
begin
Tmp := DEC and $ff;
LH := IntToHex (Tmp, 2);
Tmp := DEC shr 8;
HEX[DEC] := Concat (LH, IntToHex (Tmp, 2));
end;
end. Вот ссылка на скрины: http://dump.ru/file/3252486 Скрины я несмог здесь выложить всевремя выводилось сообщение: quote:
<forum.xakep.ru> Не заполнены все требуемые поля!
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-08-28 13:34:00.250000
|
|
|
Snipe3002
Сообщений: 1
Оценки: 0
Присоединился: 2008-12-30 23:23:08.633333
|
Возникло такое затруднение надо написать прогу, производящую операции над матрицами. Я торможу на их умножении. Ввод первой -через StringGrid1 Ввод второй - через StringGrid2 Вывод результатов - через StringGrid3 Количество столбцов первой матрицы определяется через UpDown1.position Количество ее строк через UpDown2.Position Количество строк второй матрицы - через UpDown3.position. Все вместе это выглядит как-то так 1) Получаем первую матрицу for i:=0 to Form1.UpDown2.Position - 1
do begin
for j:=0 to Form1.Updown1.Position-1
do begin
n[i][j]:=StrToFloat(Form1.StringGrid1.Cells[i,j]);
end;
end; 2) Получаем вторую for j:=0 to Form1.UpDown3.Position - 1
do begin
for k:=0 to Form1.Updown2.Position-1
do begin
m[j][k]:=StrtoFloat(form1.StringGrid2.Cells[j,k]);
end;
end; 3)Считаем: for i:=0 to UpDown3.Position-1 do begin
for j:=0 to UpDown1.Position-1 do begin
for k:=0 to UpDown2.position-1 do begin
s[i][j]:=n[i][k]*m[k][j] ;
s[i][j]:=s[i][j]+n[i][k]*m[k][j];
end;
end;
end; 4) Выводим результаты for i:=0 to UpDown2.Position-1 do begin
for j:=0 to UpDown2.Position-1 do begin
StringGrid3.Cells[i,j]:=FloatToStr(s[i][j]);
end;
end; Тут где-то ошибки у меня, а какие- ни фига не могу скумекать. Помогите разобраться, bitte.
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-08-28 14:35:32.430000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Объявления массивов покажи
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-08-28 15:05:32.680000
|
|
|
kreol
Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
|
3) ...
for i := 0 to UpDown2.position - 1 do
s[i][j] := n[i][k] * m[k][j]; // ошибка здесь
s[i][j] := s[i][j] + n[i][k] * m[k][j];
end;
... Ну попробуй сам себе объяснить, что происходит в этом твоём цикле, и почему указанная мной строчка лишняя.
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-08-28 15:10:11.440000
|
|
|
kreol
Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
|
Да, и плюс массивы нужно инициализировать нулями.
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-08-28 16:35:56.736666
|
|
|
=OutlaW=
Сообщений: 382
Оценки: 0
Присоединился: 2009-01-08 17:19:13.703333
|
Тупой вопрос, но все же я не нашел ответа. Вот при нажатии на батон запускается процедура обработчик этого события, например происходят вычисления. Как сделать чтобы при нажатии на другую кнопку эта процедура останавливалась и/или приостанавливалась?
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-08-28 16:53:51.406666
|
|
|
VaZoNeZ
Сообщений: -6758
Оценки: 0
Присоединился: 2008-10-31 14:38:43.796666
|
Сделай что-то вроде переключателя - заведи переменную типа boolean, например. Одной кнопкой меняй значение, а другой проверяй.
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-08-28 17:03:44.693333
|
|
|
kreol
Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
|
Самый простой способ - вести переменную типа boolean, которую проверять в цикле в первой процедуре-обработчике событий, и если она равна false, останавливать обработку. Во второй процедуре (по нажатию второй кнопки) просто менять это значение.
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-08-28 19:21:21.803333
|
|
|
r[oo]t
Сообщений: 36
Оценки: 0
Присоединился: 2009-08-13 05:56:26.320000
|
как вариант можно еще усложнить и сделать на потоках, тогда все чики пуки будет=)) но гемору поольше.
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-08-28 19:42:25.960000
|
|
|
kreol
Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
|
quote:
ORIGINAL: r[oo]t как вариант можно еще усложнить и сделать на потоках, тогда все чики пуки будет=)) но гемору поольше. Потоки в любом случае должны быть, ибо если всё делать в один поток, то как только начнёт работать первый обработик, приложение зависнет и будет ждать, пока он не отработает. Или ты имеешь ввиду прерывать поток извне? Так это чревато дополнительными ограничениями в самом прерываемом потоке. В частности, при насильном прерывании потока он может не успеть отдать системе испльзуемые ресурсы.
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-08-30 00:53:45.220000
|
|
|
slardan
Сообщений: 1
Оценки: 0
Присоединился: 2009-08-30 00:21:17.650000
|
Народ помогите плизз решить задачу!!! сам вобще почти не бум бум… Задача: Даны натуральное число n,последовательность S1,…,Sn. Преобразовать данную последовательность,заменив точку многоточием(т.е. тремя точками) Сам с помошью другана пытались сделать но чет не получаеться вот примерное решение наверное: Program Mnogotochie; const n=100; Var st: string[n]; k: integer; Begin writeln(' '); readln(st); while k<> length(st) do begin if st[k]='.' then while(st[k+(-1)='…') and (k> length(st)) do delete(st,k+(-1),(-1); вот сдесь курсор мигает когда запускаю)) k:=k+(-1) end; writeln(' ') End.
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-08-30 15:12:23.733333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
var
src, dst:string;
i:integer;
begin
readln( src );
for i := 1 to Length( src ) do
if src[i] = '.' then
dst := dst + '...'
else
dst := dst + src[i];
writeln( dst );
readln;
end.
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-14 15:13:55.936666
|
|
|
Bilargo
Сообщений: 17
Оценки: 0
Присоединился: 2009-09-12 11:13:50.780000
|
Всем доброго времени суток, в общем у меня такая загвоздка, я учусь на управленца, и мне по несчастному року судьбы поставили добавили в курс программирование, вот сейчас сижу парюсь, уже 2ой час рою инфу насчет одной задачки, но ничего не понимаю. В общем необходимо создать процедуру, которая будет считать кол-во слов в тексте, ну или пробелы, пытался через Pos, но в итоге пришел только, к тому, что он считывает символы до этого пробела, читал ещё что с помощью while можно здесь как-то выкрутиться, но ничего не знаю про него, может кто-нибудь подсказать, или объяснить, как все таки сделать? Вообще исходный текст задачи таков: Написать программу, вычисляющую стоимость телеграммы по формуле: Стоимость_телеграммы = Количество_слов*Стоимость_слова + Доплата. Входные данные: текст телеграммы (с адресом), стоимость одного слова и величина доплаты (вводятся пользователем). Выходные данные: стоимость телеграммы в формате *** руб., ***коп. Определение количества слов в тексте телеграммы оформить в виде подпрограммы (процедуры или функции) Вот из этого всего не знаю, только как со строками разобраться.
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-14 15:29:30.850000
|
|
|
Bilargo
Сообщений: 17
Оценки: 0
Присоединился: 2009-09-12 11:13:50.780000
|
Так, отбой тревоги, додумался сам. procedure TForm1.mmoChange(Sender: TObject); var i,count:Integer; begin count:=0; for i:=1 to Length(mmo.Text) do if mmo.Text=' ' then count:=count+1; Но столкнулся с некоторым явлением, таким как например 2 пробела рядом, что с этим можно сделать? Как исключить такой вариант?
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-14 15:47:37.016666
|
|
|
QunneD
Сообщений: 833
Оценки: 0
Присоединился: 2008-11-09 20:54:38.113333
|
quote:
ну или пробелы, пытался через Pos, но в итоге пришел только, к тому, что он считывает символы до этого пробела, читал ещё что с помощью while можно здесь как-то выкрутиться, но ничего не знаю про него, может кто-нибудь подсказать, или объяснить, как все таки сделать? function GetSpaces(str : String):Integer; var i,f : integer; s : string; begin for i := 0 to length(str) do begin f := pos(' ', str); if f > 0 then begin delete(str,1,f); s := s+' '; end; end; result := length(s); end;
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-14 17:35:46.723333
|
|
|
Bilargo
Сообщений: 17
Оценки: 0
Присоединился: 2009-09-12 11:13:50.780000
|
Хм…вот ещё одна загвоздка… Написал 2 процедуры, одну procedure TForm1.mmoChange(Sender: TObject); и вторую procedure TForm1.btn1Click(Sender: TObject); но не могу завершить вторую, так как в ней нужно использовать результаты первой, как их связать или установить связь между этими значениями?
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-14 19:03:32.410000
|
|
|
QunneD
Сообщений: 833
Оценки: 0
Присоединился: 2008-11-09 20:54:38.113333
|
Создать глобальную переменную?
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-14 19:23:41.576666
|
|
|
Bilargo
Сообщений: 17
Оценки: 0
Присоединился: 2009-09-12 11:13:50.780000
|
Если честно не имею преставления о чем ты, ну смотри, ситуация такая, вот тогда я посчитал кол-во пробелов(слов), а теперь мне надо эту функцию, или переменную импортировать в другую процедуру, которая уже срабатывает при нажатии на копку.
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-14 20:07:08.986666
|
|
|
VaZoNeZ
Сообщений: -6758
Оценки: 0
Присоединился: 2008-10-31 14:38:43.796666
|
quote:
Если честно не имею преставления о чем ты Ну и куда с такими знаниями лезть в дельфи? Начни с чего-нибуть попроще…
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-14 20:21:15.100000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: QunneD Создать глобальную переменную? вот в этом месте стоило бы грязно выругаться
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-15 09:05:20.550000
|
|
|
Bilargo
Сообщений: 17
Оценки: 0
Присоединился: 2009-09-12 11:13:50.780000
|
Да друзья поймите, мне программирование как снег на голову свалилось, я учусь даже не на математика, я гуманитарий до кончиков своей души =) И всё эти логические процессы у меня с трудом укладываются в голове, если не вызывают помутнение рассудка) Я понимаю, здесь нет ничего сверх сложного, просто я не знаю с помощью каких операторов, можно выполнить мою задачу, с помощью чего можно связать 2 процедуры? Т.е. результат другой процедуры зависит от уже известного рез-та этой. Так, что я бы рад не лезть с такими знаниями в дельфи, но выбора у меня другого нет, не я составляю программу курса, я лишь её выполняю =)
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-15 11:09:51.286666
|
|
|
Bilargo
Сообщений: 17
Оценки: 0
Присоединился: 2009-09-12 11:13:50.780000
|
Всё, сделал сам =)) Оказывает не совсем критическая у меня нехватка знаний)
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-16 16:16:58.680000
|
|
|
Bilargo
Сообщений: 17
Оценки: 0
Присоединился: 2009-09-12 11:13:50.780000
|
Привет всем, это снова я, с новой бедой, т.с. пожаловал я =) Пытаюсь написать простенький калькулятор, который только складывает и вычитает, ну со сложением все понятно: procedure TForm1.btn10Click(Sender: TObject); begin a:=StrToInt(edt1.Text); edt1.Text:='0'; end; procedure TForm1.btn15Click(Sender: TObject); begin edt1.Text:=IntToStr(StrToInt(edt1.Text)+a) end; А вот как сделать вычитание? Нужно ли создавать новую процедуру? Или как-то модернизировать существующую? Подскажите ребят.
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-16 16:34:12.966666
|
|
|
D. Scandal
Сообщений: 1360
Оценки: 345
Присоединился: 2007-12-01 16:39:35.550000
|
Все точно так же. Единственная разница в самой арифметической операции. Используй вместо операции сложения, операцию вычитания.
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-16 16:37:17.670000
|
|
|
Bilargo
Сообщений: 17
Оценки: 0
Присоединился: 2009-09-12 11:13:50.780000
|
Ну это то понятно, только вот как это оформить? 2 процедуры ведь нельзя для 1ой кнопки равно? Может надо задать условия? При выполнении процедуры?
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-16 17:21:13.876666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Можно, если нужно, переставай мыслить линейно. Запоминай где-нибудь "текущую" арифметическую операцию, а когда нажимается "равно" - то в зависимости от операции делай нужное действие.
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-16 17:32:56.683333
|
|
|
Bilargo
Сообщений: 17
Оценки: 0
Присоединился: 2009-09-12 11:13:50.780000
|
Ммм… ну я примерно это и пытаюсь сделать. Ввел 2ую переменную для случая с минусом, но не знаю как правильней задать условия. procedure TForm1.btn10Click(Sender: TObject); begin a:=StrToInt(edt1.Text); edt1.Text:='0'; end; procedure TForm1.btn6Click(Sender: TObject); begin b:=StrToInt(edt1.Text); edt1.Text:='0'; end; procedure TForm1.btn15Click(Sender: TObject); begin if ——как здесь сделать?—- then // пробовал здесь ставить a>0, но почему-то ответ при операции с минусом, выдавался именно с минусом, т.е. 9-6=-3. edt1.Text:=IntToStr(StrToInt(edt1.Text)+a) else edt1.Text:=IntToStr(StrToInt(edt1.Text)-b) end;
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-16 20:14:58.823333
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Слушай, убейся… Ты можешь хотя-бы нормальные имена методам давать? Причём тут a > 0 ?! - тебе нужно сравнивать ЗНАКИ а не сами числа.
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-16 22:23:56.923333
|
|
|
Bilargo
Сообщений: 17
Оценки: 0
Присоединился: 2009-09-12 11:13:50.780000
|
Это ты меня слушай последний этап эволюции, или компьютерный червь, я программирую всего 3 дня своей жизни по несчастной воле методистов, которые вклинили мне этот предмет, да он мне нужен не больше чем козе баян, а такие уникумы как ты вместо того, чтобы разъяснить(как казалось бы), только отбивают на прочь все желание, кое и без того практически отсутствует. На мой взгляд кому и надо убиться дак это тебе, видимо избыток знаний слишком давит на твой рассудок. И вообще ради чего существует эта тема?! Только базарите не по делу! Мне тут пока ещё никто ничего дельного не подсказал на доступном мне языке.
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-16 23:50:36.320000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: Bilargo Это ты меня слушай последний этап эволюции, или компьютерный червь, я программирую всего 3 дня своей жизни по несчастной воле методистов, которые вклинили мне этот предмет, да он мне нужен не больше чем козе баян, а такие уникумы как ты вместо того, чтобы разъяснить(как казалось бы), только отбивают на прочь все желание, кое и без того практически отсутствует. На мой взгляд кому и надо убиться дак это тебе, видимо избыток знаний слишком давит на твой рассудок. И вообще ради чего существует эта тема?! Только базарите не по делу! quote:
ORIGINAL: Bilargo Мне тут пока ещё никто ничего дельного не подсказал на доступном мне языке. ты уверен, что ты правда этого хочешь?
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-17 12:34:59.646666
|
|
|
QunneD
Сообщений: 833
Оценки: 0
Присоединился: 2008-11-09 20:54:38.113333
|
Bilargo, давай без обид. здесь тебе не форум чайников, где помогают делать калькуляторы. Тебе сюда http://programmersforum.ru. А теперь по поводу твоих вопросов. var a : real; begin a := 2+2-2*2/2; showmessage(floattostr(a)); end; к дополнению, больше 3 эдитов и одной кнопки тебе не понадобиться. первый эдит и третий будут предназначены для ввода значений. второй эдит будет предназначен для узнавания какой тип операции проводить, например: Procedure TForm1.Button1Click(Sender: TObject); Var A : Real; Begin If (Edit2.Text = '+') Then Begin A := StrToFloat(Edit1.Text)+StrToFloat(Edit3.Text); ShowMessage('Результат: '+FloatToStr(A)); End Else If (Edit2.Text = '-') Then Begin A := StrToFloat(Edit1.Text)-StrToFloat(Edit3.Text); ShowMessage('Результат: '+FloatToStr(A)); End; End; Надеюсь больше глупых вопросов от тебя не будет
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-17 13:39:16.580000
|
|
|
Bilargo
Сообщений: 17
Оценки: 0
Присоединился: 2009-09-12 11:13:50.780000
|
Спасибо Qunned, да нету не каких обид, я понимаю я в этом не силен, и вопросы которые для меня имеют первичное значение, вам исходя из вашего уровня знаний кажутся весьма не существенными, вот только выражать это нужно в более терпимой форме, чему бы я посоветовал, поучится сударю Saz(y), потому-что "грязи" и так хватает, без его нервных окриков. Ну в общем всего хорошего вам ребята ;)
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-17 15:12:43.030000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
quote:
ORIGINAL: Bilargo вот только выражать это нужно в более терпимой форме, чему бы я посоветовал, поучится сударю Saz(y), потому-что "грязи" и так хватает, без его нервных окриков. Ну в общем всего хорошего вам ребята ;) Это была попытка радикально-экстримальным способом отвернуть тебя от пути по которому ты идёшь. Основываясь на формошлёпстве, при этом даже ленясь переименовывать стандартные названия типа button1048576, ты ничему не научишься. Подробнее почему - уже сто раз писали. Полистай форум.
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-17 16:05:48.076666
|
|
|
Doom_Rooster
Сообщений: 2
Оценки: 0
Присоединился: 2008-12-03 22:58:59.100000
|
Здравствуйте. Мне нужно, чтобы программа соединялась с некоторым сайтом в интернете, вводила в поля на нем некоторую информацию и нажимала на кнопки, либо напрямую отправляла запрос. Например я хочу чтобы моя прога сама на рамблере вводила мой логин и пароль и заходила на почту. Подскажите пожалуйста, какие средства необходимо для этого использовать!!!
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-17 16:21:15.846666
|
|
|
vzadnikov
Сообщений: 82
Оценки: 0
Присоединился: 2009-07-01 02:27:18.446666
|
Самое простое это использовать компонент класса TidHTTP. Посложнее - сокет. Отпрака запроса: HTTP.Post(….)
|
|
|
RE: Решение задач на Паскале и Delphi - 2009-09-17 16:22:01.186666
|
|
|
Bilargo
Сообщений: 17
Оценки: 0
Присоединился: 2009-09-12 11:13:50.780000
|
quote:
Это была попытка радикально-экстримальным способом отвернуть тебя от пути по которому ты идёшь. Основываясь на формошлёпстве, при этом даже ленясь переименовывать стандартные названия типа button1048576, ты ничему не научишься. Подробнее почему - уже сто раз писали. Полистай форум. Сударь, вам стоит узнать людей получше, прежде чем делать столь скорые ошибочные суждения на их счет, ваша попытка как вы видите не увенчалась успехом, поэтому пересмотрите свои методы, ради вашего же блага. И проявляйте терпимость в конце концов. Я знаю, что я ничему не научусь, если буду слушать таких некчемных советодателей, как - ВЫ. И к слову о лености, я как только научился "ходить" сразу повелению судьбы удалил один очень вредный орган, который присутствует в теле каждого биологического индивида от его рождения, он называется - ЛЕНЬ! Не переименовываю я стандартные названия компонентов, потому-что я люблю симметрию, и мне так удобней, а не потому-что я ленивый! Надеюсь больше я от вас сообщений в мой адрес не увижу.
|
|
|
|
|