• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Очень важно решение в Делфи

eugen_96

Ученик
Регистрация
26 Фев 2014
Сообщения
8
Реакции
0
Баллы
0
Очень важно решение в Делфи

помогите пожалуйста решить задачу
вот условие:
Известны баллы, набранные каждым из 20-ти спортсменов-пятиборцев в каждом из пяти видов спорта. Определить Фамилию спортсмена-победителя соревнований.
 
Используем TStringGrid. В него заносим по столбцам Фамилию, баллы за 1 вид, баллы за 2 вид и т.д.
Далее спокойненько пробегаем по гриду до конца:
суммируем баллы первого спортсмена, затем - второго и сравниваем. Если у второго сумма больше, его индекс запоминаем и сравниваем второго с третьим, четвертым и т.д. Если же сумма баллов у первого спортсмена больше, чем у второго - запоминаем индекс (номер строки) первого и сравниваем его с третьим. И так до конца грида.
 
можно код в делфи...плиз...
 
Можно будет завтра, сейчас у меня уже 21:29. Только опиши условия поподробнее.
Я так понимаю, имеем форму, в которой вводим нужные данные и нажимаем кнопку "Рассчитать" и получаем результат. Так? Или данные берутся из файла, или еще как?
Утром (своим, московия+7) напишу
 
Можно будет завтра, сейчас у меня уже 21:29. Только опиши условия поподробнее.
Я так понимаю, имеем форму, в которой вводим нужные данные и нажимаем кнопку "Рассчитать" и получаем результат. Так? Или данные берутся из файла, или еще как?
Утром (своим, московия+7) напишу
Данные берутся из файла.....плиз помоги.....
 
Так... Вот решение, написано на Delphi XE5. Текстовый файл (Results.txt) в комплекте. Я в него вписал 6 строчек всего, формат: Фамилия 1_вид 2_вид 3_вид 4_вид 5_вид, разделители - пробелы.
Сначала файл считывается в StringGrid, который на форме (кол-во строк в нем изменяется динамически, т.е. в файле записей может быть и 3 и 100500).
Ну а дальше уже простейший подсчет. Если что-то сделать по-другому, пиши. Исходник с комментариями
 

Вложения

Вдогонку: порядковый номер-то я в StringGrid засунул, а вот записывать его - забыл.
Добавь между
begin
if sg.RowCount<Ind+1 then
sg.RowCount:=Ind+1;
sg.Cells[Sum,Ind]:=Copy(s,1,Pos(' ',s)-1);//Данные
Delete(s,1,Pos(' ',s));//Удаляем данные
end;
и
sg.Cells[6,Ind]:=s;
end;
строку
sg.Cells[0,Ind]:=IntToStr(Ind);

Т.е., этот кусок будет так:
begin
if sg.RowCount<Ind+1 then
sg.RowCount:=Ind+1;
sg.Cells[Sum,Ind]:=Copy(s,1,Pos(' ',s)-1);//Данные
Delete(s,1,Pos(' ',s));//Удаляем данные
end;
sg.Cells[0,Ind]:=IntToStr(Ind);
sg.Cells[6,Ind]:=s;
end;
 
Так... Вот решение, написано на Delphi XE5. Текстовый файл (Results.txt) в комплекте. Я в него вписал 6 строчек всего, формат: Фамилия 1_вид 2_вид 3_вид 4_вид 5_вид, разделители - пробелы.
Сначала файл считывается в StringGrid, который на форме (кол-во строк в нем изменяется динамически, т.е. в файле записей может быть и 3 и 100500).
Ну а дальше уже простейший подсчет. Если что-то сделать по-другому, пиши. Исходник с комментариями
понимаешь, у меня просто версия Делфи 7 и стремно то, что нет формы когда код открываешь.....вот что.....и сокращения не такие как в Делфи 7...и библиотека не такая...но это не страшно....если сокращения переименовать как в 7 Делфи...пррога будет работать?
 
Будет. В юните убери в секции uses начало System.
Морда формы - открой unit1 в блокноте. Вообще, сделай новый проект, на форму закинь StringGrid, Label, OpenDialog и Button. Расположение возьми с моего скомпилированного файла (Win32\Release). Названия компонентов возьми из юнита. Навскидку: sg - StringGrid, рядов - 2, столбцов - 7, фиксированны первый ряд и столбец. Кнопка и Label - названия по умолчания, по-моему. OpenDialog - oDialog. В смысле, это названия компонентов :)
Потом тупо скопируй все, что после секции type в Unit своего проекта, и все.
ЗЫ: мою скомпилированную прогу запускал? То, что надо?

ЗЫЫ: сокращения - это про что? Различие только в секции uses; плюс, там в описание .dfm дополнения добавились. Сам код сработает, изменений в языке нет
 
Будет. В юните убери в секции uses начало System.
Морда формы - открой unit1 в блокноте. Вообще, сделай новый проект, на форму закинь StringGrid, Label, OpenDialog и Button. Расположение возьми с моего скомпилированного файла (Winn32\Release). Названия компонентов возьми из юнита. Навскидку: sg - StringGrid, рядов - 2, столбцов - 7, фиксированны первый ряд и столбец. Кнопка и Label - названия по умолчания, по-моему.
Потом тупо скопируй все, что после секции type в Unit своего проекта, и все.
ЗЫ: мою скомпилированную прогу запускал? То, что надо?
да, работает! Спасибо большое! Выручил!
 
Ну вот... Задачка простая :) Не забыл вставить код, что я дописывал? Ну, ту одну строчку? А то незаконченно получается.
ЗЫ: проверки корректности там нету, если в файле баллы будут буквами или в конце будет пустая строка - вывалится ошибка. Поставить второй try ... except можно, но я не ставил.
А в общем, надеюсь, намано пройдет как шаблон для фантазий прогеров :)
 
Назад
Сверху