Delphiпомощь, консультация
#2
Отправлено 01.12.2009, 17:11:19
вот задачка...с помощью while написать программу определения идеального веса для взрослых людей по формуле Идельн.вес=рост-100.Выход из цикла значение роста 250....вот то что сама написала....вообще программа не идёт..помогите!
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
const n=6;
var
i,f:integer;
b,a:array[1..n] of integer;
begin
with stringgrid1 do
begin
for i:=1 to n do
a[i]:=strtoint(stringgrid1.Cells[i-1,0]);
end;
for f:=1 to n do
while a[i]<250 do
begin
b[f]:=a[i]-100;
with stringgrid2 do
cells[f-1,0]:=inttostr(b[f]);
end;
end;
end.
#3
Отправлено 02.12.2009, 09:33:54
procedure TForm1.Button1Click(Sender: TObject);
var
currRost: Integer; //Текущий рост
begin
StringGrid1.ColCount := 2; //Устанавливаем кол-во колонок
StringGrid1.RowCount := 1; //Устанавливаем кол-во строк
StringGrid1.FixedCols := 0; //Устанавливаем кол-во фиксированных колонок
StringGrid1.Cells[0,0] := 'Рост';
StringGrid1.Cells[1,0] := 'Ид.вес';
currRost := 150; //Для примера возмем минимальный рост 150
while currRost <= 250 do //Выполняем цыкл пока рост не будет больше или равен 250
begin
//Увеличиваем кол-во строк
StringGrid1.RowCount := StringGrid1.RowCount + 1;
StringGrid1.Cells[0, StringGrid1.RowCount-1] := IntToStr(currRost); //рост
StringGrid1.Cells[1, StringGrid1.RowCount-1] := IntToStr(currRost - 100); //ид.вес
inc(currRost); //увеличиваем рост на 1см
end;
end;
Сообщение отредактировал Nolty: 02.12.2009, 09:36:51
#4
Отправлено 10.12.2009, 23:04:45
а вот ещё одна задача...
короче вводим в массив элементы,выщитываем сумму элементов,которые больше заданного определённого числа...но это я сделала...Как сделать,чтобы при заполнении массива,если вводим значение меньше 50 и больше ста выводилось....Showmessage'Ошибка!?ввести от 50 до 100'...пыталась забить это прям в самом Stringgride, так она вообще запрещает ввод!
for i:=1 to 20 do
a[i]:=strtoint(stringgrid1.Cells[i-1,0]);
if (a[i]>100) and (a[i]<50) then
Showmessage('ошибка!');
вот это куда пихнуть?
#7
Отправлено 22.12.2009, 21:03:17
посмотри в ббиблию delphi, там вроде это былоаааа,спасибо большое..и в правду что-то я тупонула...просто я хотела вывести результаты отдельно,что является глупо......
а вот ещё одна задача...
короче вводим в массив элементы,выщитываем сумму элементов,которые больше заданного определённого числа...но это я сделала...Как сделать,чтобы при заполнении массива,если вводим значение меньше 50 и больше ста выводилось....Showmessage'Ошибка!?ввести от 50 до 100'...пыталась забить это прям в самом Stringgride, так она вообще запрещает ввод!
for i:=1 to 20 do
a[i]:=strtoint(stringgrid1.Cells[i-1,0]);
if (a[i]>100) and (a[i]<50) then
Showmessage('ошибка!');
вот это куда пихнуть?
#8
Отправлено 23.12.2009, 10:09:10
посмотри в ббиблию delphi, там вроде это было
Не нужно никуда смотреть, подсказка была дана:
если а[итый] больше 100 и в то же время меньше 50 то ошибка
for i:=1 to 20 do
begin
a[i]:=strtoint(stringgrid1.Cells[i-1,0]);
if (a[i]>100) or (a[i]<50) then
Showmessage('ошибка!');
end
#11
Отправлено 08.01.2010, 16:41:19
подскажите алгоритм для групповой отсылки на почтовые адреса в списке..причем при указании нескольких адресов, чтобы каждый получатель видел только свой адрес..
На сколько я знаю, если адреса получателей перечислять списком например aa@gmail.com, ab@gmail.com итп
то получатели будут видеть друг друга, а если для каждого получателя оформлять отдельное письмо, то получатель соответственно будет один.
#12
Отправлено 10.01.2010, 17:44:56
По хорошему данную задачу нужно реализовывать не на Дельфи, а на готовых Вэб движках по рассылке.подскажите алгоритм для групповой отсылки на почтовые адреса в списке..причем при указании нескольких адресов, чтобы каждый получатель видел только свой адрес..
Если же все таки на Дельфи, то берете базу с адресами, открываете цикл и в цикле с помощью SMTP протокола шлете для каждого адреса отдельно сформированное письмо. Правда могут быть проблемы с временем ожидания сервера, может за спам бота принять. Но это поправимо. Если более конкретно пишите в личку, попробую помочь.
Сообщение отредактировал XIO: 10.01.2010, 17:51:02
#16
Отправлено 26.01.2010, 15:44:06
Нет универсальных софтовых методов. Все зависит от типа приложения и окружения.Эммм... я больше имел ввиду буферизацию, или какие-нибудь методы резервирования памяти для использования именно этой программы...
Едиснтвенный универсальный метод - апгрейд железа.
#17
Отправлено 31.01.2010, 05:16:29
более быстрый и эффективный алгоритм - меньше переменных и структур данных, бОльшая скорость обработки, меньше циклов...какие именно факторы и методы в коде влияют на общую скорость программы, и какие есть способы увеличить эту скорость???
много чего... каждый алгоритм оценивается...
неэффективным алгоритмом можно замедлить любое железо!
Сообщение отредактировал kedrnpp: 31.01.2010, 05:17:54
#20
Отправлено 05.02.2010, 12:24:22
Все начинается с выбора технологий, подходов, алгоритмов.
Например использование OLE объектов - кушает не мало ресурсов, в плане что это по умолчанию медленная технология и использовать её нужно рационально.
Говоря об алгоритмах, все зависит от рода задачь. Но даже при обычной работе с базой данных от программиста зависит как быстро будет программа работать. Ведь можно к примеру написать грамотный запрос, и вытащить все нужные данные и вытаскивать их снова лишь по реальной необходимости, а можно вытаскивать каждый раз всю кучу данных и потом ещё в самом приложении обрабатывать их так и сяк, мол "я так умею, поэтому так сделаю".
Можно заводить кучу ненужных переменных которые будут отжирать память и так далее. Просто нужно рационально подходить к задачам. Никогда нельзя делать так как умеешь, надо искать неизведанные тебе, но проверенные временем решения которые в конечном итоге сохранят и ресурсы компа и нервы и сопровождение софта сделают более простым.
Количество пользователей, читающих эту тему: 2
пользователей: 0, неизвестных прохожих: 2, скрытых пользователей: 0