Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Помогите с кодом!

Здравствуйте, господа !

Помогите, пожалуйста, с проблемой. Это послание относится к тем, кто имеет дело
с языком Паскаль.
Я написал следующий нехитрый код (сам я не работаю с Паскалем):

Uses CRT;
var
b,b1,b2,b3,z:real;
bb,b0,c0,c1,c2,c3,c4,p,s:real;
i:integer;
const
a=8589934592;

BEGIN
s:=256;
c0:=8**2*s;
c1:=2**2*c0;
c2:=2**10*c0;
c3:=2**18*c0;
c4:=2**26*c0;
b0:=4;
b:=a;
i:=1;
While i>=1 do
Begin
if b<=c1 then
begin
if b0=1 then bb:=1;
end;
if b>c1 then
begin
if b<=c2 then
begin
if b0=2 then bb:=2;
end;
end;
if b>c2 then
begin
if b<=c3 then
begin
if b0=3 then bb:=3;
end;
end;
if b>c3 then
begin
if b<=c4 then
begin
if b0=4 then bb:=4;
end;
end;

if bb=b0 then p:=256*8*(2*bb+1);
if bb=b0 then b0:=b0-1;

b3:=b;
b1:=b/24;
b2:=int(b1);
If b1>b2 then b1:=b2+1;
b1:=b1*13;
b1:=b1/8;
b2:=int(b1);
b:=b2*8;
if b1>b2 then b:=b+8;
b:=b+p;
z:=a/b;
write(i,' || ',b,' || ',z);
i:=i+1;
if b>=b3 then i:=-1;
Readln;
end;
END.

Но есть одно "но" (точнее, два):

1] Не знаю, какой код нужно написать и куда эту кодовую строку вставить, чтобы
пользователь мог вводить константу "a=" сам, без помощи программиста, в режиме
интерактива (в приведенном коде константа a=8589934592;) ?

2] И, второе "НО" - Какой код нужно написать и куда эту кодовую строку вставить,
чтобы результаты типа "write(i,' || ',b,' || ',z);" можно было бы выводить не
только на экран, но и:

- во-первых, во вновь создаваемый текстовой файл;

ИЛИ,

- во-вторых, в заранее очищенный текстовой файл ?

Подскажите, кто знает. Буду очень признателен.

--
С уважением, Н.К.
Mail: nick***@i*****.ru

Номер выпуска : 5209
Возраст листа : 895 (дней)
Количество подписчиков : 548
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/522882
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответы:

Здравствуйте, Namik.

Friday, March 3, 2006, 4:45:55 PM, you wrote:

дело

чтобы

В одной из строк между
begin
и
b:=a;
вставьте типа нечто такого:
Write('Введите значение а => ');
Readln(a);
...........................

не

И "во-первых", и "во-вторых" - это делается одним и тем же куском
кода:

var
....
f :Text; {переменная файлового типа}
........

begin
Assign(f, ИМЯ_ФАЙЛА); {связываем переменную с файлом, причеи ИМЯ_ФАЙЛА
переменная или константа строкового типа}
Rewrite(f); {открываем его на запись; если файл существовал,
он как бы опустошается}
............
write(f, i,' || ',b,' || ',z); {пишем в файл}
..........................
Close(f); {после всех дел с файлом закроем его}
end.

Ответить   Вадим Шешунов (#522966)

 

Hello comp,

Сабж касается утечки памяти, связанные с SetBitmap, который работает в цикле.
Т.е. на кнопке
через цикл перерисовается картинка. 5 переменных HBITMAP, которые передаются
в SetBitmap, инициализируются
при создании кнопки. Попытки использовать DeleteObject приводят к стиранию картиночки
на кнопке. Такой
вот интересный случай.
Еще интересное наблюдение - утечки памяти определяю через таскменеджер
(там все время растет память, выделяемая
программой, когда перерисовывается картинка на кнопке), там же показывается быстрый
рост каких-то GDI handles.
Подскажите, люди, где про них почитать можно.

Ответить   Fri, 21 Apr 2006 21:40:34 +0400 (#540315)

 

Hello Deni_S,

Похоже этот SetBitmap глючноват сам по себе. Так, делаю в цикле
SetBitmap(NULL);
т.е. никакая картинка непрорисовывается и все равно происходит
описанная ситуация (даже в сочетании с DeleteObject). Думается надо попробовать
использовать
какую-нибудь другую альтернативу, например, ImageList_DrawEx
во время самопрорисовки.

Friday, April 21, 2006, 9:40:34 PM, you wrote:

картиночки

быстрый

Ответить   Sun, 23 Apr 2006 02:28:35 +0400 (#540791)