Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.04.2017, 21:10
виталля виталля вне форума
Прохожий
 
Регистрация: 17.04.2017
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Моя 1 программа

Здравствуйте форумчане delphi sources!!!

Delphi-7
Хочу написать свою 1-ю программу с вашей помощью так, как
в исходниках уроков, ничего не нашел.
Смысыл программы состоит в следующем:

В программе:

1.Три чекбокса, которые при запуске не отмечены
2.кнопка = подсчет(+)сложение
3.окно вывода суммы = число сложенных чекбоксов

На словах это так: чекбокс-1 при нажатии(отмечен) имеет постоянную сумму=8,
чекбокс-2 при нажатии(отмечен) имеет постоянную сумму=15,
чекбокс-3 при нажатии(отмечен) имеет постоянную сумму=20. с учетом!!! суммы могут быть трех значными.

Далее сумма НАЖАТЫХ чекбоксов слаживается, при нажатии кнопки = подсчет(+). сумма отображется в окне вывода например: 8; 15; 23; 28; 35 или 43 или например чекбокс сначала был отмечен(да) а после отменен(нет)-он НЕ ДОЛЖЕН суммироваться.
а при не выбранных всех 3х чекбоксов сумма равна = 000
типа так: 8+20=28 и.т.д
Как это прописать в глоб.переменной, и в процедуре.

Спасибо Виталля .
Ответить с цитированием
  #2  
Старый 17.04.2017, 21:21
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну и ТЗ. В смысле, изложение...

Код:
procedure TForm1.Button1Click(Sender : TObject);
var
  S : Integer;
begin
  S := 0;
  If CheckBox1.Checked Then S := S + 8;
  If CheckBox2.Checked Then S := S + 15;
  If CheckBox3.Checked Then S := S + 20;

  If S = 0
    Then Label1.Caption := '000'
    Else Label1.Caption := IntToStr(S);
end;
Ответить с цитированием
  #3  
Старый 17.04.2017, 21:36
виталля виталля вне форума
Прохожий
 
Регистрация: 17.04.2017
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

lmikle спасибо.

Сейчас буду пробовать.
Ответить с цитированием
  #4  
Старый 18.04.2017, 10:26
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию

Потому что сумма НАЖАТЫХ чекбоксов слаживается (с)
Ответить с цитированием
  #5  
Старый 18.04.2017, 19:12
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от ApxaHGe1
Потому что сумма НАЖАТЫХ чекбоксов слаживается (с)

Ну и к чему это?
Я бы посмотрел как ты напишешь ТЗ, когда сам не до конца понимаешь то, что пытаешься объяснить.
Ответить с цитированием
  #6  
Старый 24.04.2017, 02:04
виталля виталля вне форума
Прохожий
 
Регистрация: 17.04.2017
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
Вопрос

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

Основная трасса

Как пример:
1нас.пункт = 8 км
2нас.пункт = 15км
3нас.пункт = 20км
4нас.пункт = 12км
5нас.пункт = 17км
6нас.пункт = 3км
и так далее N=колич.

здесь общий км = 75 в чем заключается фишка программы если я вечером знаю маршрут на завтра например; 1, 4, 5, 6
я нажимаю соответствующие кнопки (Нас.пунктов)= 40км, заранее знаю какой километраж мне нужно будет пройти завтра.


================================================== ========
Но столкнулся с такой проблемой если населенные пункты по одной линии, тогда это работает но, когда есть примыкающие ветки
а в них скажем условно 3 - населенных пункта: (1а, 2а и 3а),тогда нужно к общей линии прибавить километраж
этих (1а и 3а без заезда например в 2а, которое находится по середине или два из трех значений ) километраж не отмеченных нас.пунктов также
нужно будет прибавить а он отличается если был бы отмечен.

Примыкание к основной трассе

Примерно так:

1а нас пункт при не отмеченном (откл) S=8 проезд мимо
1а нас пункт при отмеченном (включ) S=10 с заездом
2а нас пункт при не отмеченном (откл) S=12 проезд мимо
2а нас пункт при отмеченном (включ) S=15 с заездом
3а нас пункт при отмеченном (включ) S=7 с заездом

Ведь после примыкания боковых веток с них нужно возвращаться ОБРАТНО на основную трассу и к ней суммировать примыкание и продолжать двигаться по основной трассе?

думаю, что здесь нужны логические операции (да, нет или)

================================================== ========
Ответить с цитированием
  #7  
Старый 24.04.2017, 06:17
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Не совсем. Тут скорее надо использовать граф.
Т.е. ты задаешь сами пункты, которые являются узлами графа. Далее соединяешь их ребрами. У ребра есть "стоимость" - в твоем случае расстояние между пунктами. Далее 2 варианта:
1. Ты просто задаешь очередность проезда пунктов, программа по графу вычисляет планироуемое расстояние и сообщает тебе. Тут есть проблемка - если граф не полный, т.е. между некоторыми пунктами нет дороги (прямой). Можно сделать так, что бы программа сама искала возможную дорогу, или просто тебя спрашивала.
2. Более сложный вариант. Ты даешь список пунктов, программа вычисляет кратчайший марщрут с заездом во все укащанные пункты. Тут можно решать перебором, не "сваливаясь" в теорию графов, для твоей НЕБОЛЬШОЙ задачки нормально. Ну а если задача большая (кол-во узлов и ребер графа), то придется читать теорию и реализовывать сложный алгоритм.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:16.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter