Перейти к содержимому

Фотография

Delphiпомощь, консультация


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 239

#1
Nolty

Nolty
  • Гость
  • 14 сообщений
Дабы не создавать много тем по сабжу, предлагаю писать все проблемы и вопросы в данную тему.
Буду стараться отвечать в кратчайшие сроки.
  • 0

#2
Botashechka

Botashechka
  • Частый гость
  • 53 сообщений
буду первопроходцем в этой теме...
вот задачка...с помощью 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.
  • 0

#3
Nolty

Nolty
  • Гость
  • 14 сообщений
Не совсем понял зачем нужна была вторая таблица, но вот примерчик с использованием одной таблицы.

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

  • 0

#4
Botashechka

Botashechka
  • Частый гость
  • 53 сообщений
аааа,спасибо большое..и в правду что-то я тупонула...просто я хотела вывести результаты отдельно,что является глупо......
а вот ещё одна задача...
короче вводим в массив элементы,выщитываем сумму элементов,которые больше заданного определённого числа...но это я сделала...Как сделать,чтобы при заполнении массива,если вводим значение меньше 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('ошибка!');

вот это куда пихнуть?
  • 0

#5
smug

smug
  • Свой человек
  • 513 сообщений

for i:=1 to 20 do
a[i]:=strtoint(stringgrid1.Cells[i-1,0]);
if (a[i]>100) and (a[i]<50) then
Showmessage('ошибка!');

вот это куда пихнуть?


если а[итый] больше 100 и в то же время меньше 50 то ошибка :laugh:
  • 0

#6
RomaR3

RomaR3
  • Завсегдатай
  • 237 сообщений
Вопрос тем, кто имеет опыт с компонентами DevExpress.
Программа, написанная с использованием этих компонентов (cxGrid, cxEdit, и т.д.) отказывается запускаться, если на компе установлен казахский локал. Кто нить лечил эту проблему, куда копать?
  • 0

#7
Таня Ким

Таня Ким
  • Гость
  • 13 сообщений

аааа,спасибо большое..и в правду что-то я тупонула...просто я хотела вывести результаты отдельно,что является глупо......
а вот ещё одна задача...
короче вводим в массив элементы,выщитываем сумму элементов,которые больше заданного определённого числа...но это я сделала...Как сделать,чтобы при заполнении массива,если вводим значение меньше 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('ошибка!');

вот это куда пихнуть?

посмотри в ббиблию delphi, там вроде это было
  • 0

#8
Nolty

Nolty
  • Гость
  • 14 сообщений

посмотри в ббиблию 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
  • 0

#9
_dreamer_

_dreamer_
  • Гость
  • 5 сообщений
:dont:
  • 0

#10
Techni4ko

Techni4ko
  • Гость
  • 29 сообщений
подскажите алгоритм для групповой отсылки на почтовые адреса в списке..причем при указании нескольких адресов, чтобы каждый получатель видел только свой адрес..
  • 0

#11
Yerkekyz

Yerkekyz
  • Гость
  • 7 сообщений

подскажите алгоритм для групповой отсылки на почтовые адреса в списке..причем при указании нескольких адресов, чтобы каждый получатель видел только свой адрес..


На сколько я знаю, если адреса получателей перечислять списком например aa@gmail.com, ab@gmail.com итп
то получатели будут видеть друг друга, а если для каждого получателя оформлять отдельное письмо, то получатель соответственно будет один.
  • 0

#12
Иксилимьюз

Иксилимьюз
  • Свой человек
  • 966 сообщений

подскажите алгоритм для групповой отсылки на почтовые адреса в списке..причем при указании нескольких адресов, чтобы каждый получатель видел только свой адрес..

По хорошему данную задачу нужно реализовывать не на Дельфи, а на готовых Вэб движках по рассылке.
Если же все таки на Дельфи, то берете базу с адресами, открываете цикл и в цикле с помощью SMTP протокола шлете для каждого адреса отдельно сформированное письмо. Правда могут быть проблемы с временем ожидания сервера, может за спам бота принять. Но это поправимо. Если более конкретно пишите в личку, попробую помочь.

Сообщение отредактировал XIO: 10.01.2010, 17:51:02

  • 0

#13
YPKIS

YPKIS
  • Гость
  • 5 сообщений
Всем привет! )

Никак не могу найти инфу... какие именно факторы и методы в коде влияют на общую скорость программы, и какие есть способы увеличить эту скорость???

Заранее благодарю!!! ))
  • 0

#14
xxel

xxel
  • Завсегдатай
  • 146 сообщений

Всем привет! )

Никак не могу найти инфу... какие именно факторы

частота CPU, объем RAM, тормознутось пользователя

и методы

Application.Run;

в коде влияют на общую скорость программы, и какие есть способы увеличить эту скорость???

поменять CPU, добавить RAM
  • 0

#15
YPKIS

YPKIS
  • Гость
  • 5 сообщений
Эммм... я больше имел ввиду буферизацию, или какие-нибудь методы резервирования памяти для использования именно этой программы...
  • 0

#16
xxel

xxel
  • Завсегдатай
  • 146 сообщений

Эммм... я больше имел ввиду буферизацию, или какие-нибудь методы резервирования памяти для использования именно этой программы...

Нет универсальных софтовых методов. Все зависит от типа приложения и окружения.
Едиснтвенный универсальный метод - апгрейд железа.
  • 0

#17
kedrnpp

kedrnpp
  • Случайный прохожий
  • 3 сообщений

какие именно факторы и методы в коде влияют на общую скорость программы, и какие есть способы увеличить эту скорость???

более быстрый и эффективный алгоритм - меньше переменных и структур данных, бОльшая скорость обработки, меньше циклов...
много чего... каждый алгоритм оценивается...

неэффективным алгоритмом можно замедлить любое железо!

Сообщение отредактировал kedrnpp: 31.01.2010, 05:17:54

  • 0

#18
xxel

xxel
  • Завсегдатай
  • 146 сообщений

более быстрый и эффективный алгоритм - меньше переменных и структур данных

сидись. два
  • 0

#19
Айданусик

Айданусик
  • Гость
  • 10 сообщений
Пыталась понять о чём вы тут .Честно пыталась.Ничего непоняла...
  • 0

#20
ixilimuse

ixilimuse

    он же XIO

  • Забанен
  • 3 сообщений
Позвольте не согласиться про железо. Да сейчас настал век когда программисты (их большинство) напрочь не задумываются об оптимизации, если программа тормозит они раскручивают людей на железо и пофиг что проблемма то вовсе не в железе.

Все начинается с выбора технологий, подходов, алгоритмов.

Например использование OLE объектов - кушает не мало ресурсов, в плане что это по умолчанию медленная технология и использовать её нужно рационально.

Говоря об алгоритмах, все зависит от рода задачь. Но даже при обычной работе с базой данных от программиста зависит как быстро будет программа работать. Ведь можно к примеру написать грамотный запрос, и вытащить все нужные данные и вытаскивать их снова лишь по реальной необходимости, а можно вытаскивать каждый раз всю кучу данных и потом ещё в самом приложении обрабатывать их так и сяк, мол "я так умею, поэтому так сделаю".
Можно заводить кучу ненужных переменных которые будут отжирать память и так далее. Просто нужно рационально подходить к задачам. Никогда нельзя делать так как умеешь, надо искать неизведанные тебе, но проверенные временем решения которые в конечном итоге сохранят и ресурсы компа и нервы и сопровождение софта сделают более простым.


Количество пользователей, читающих эту тему: 2

пользователей: 0, неизвестных прохожих: 2, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.