Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 16

Массив записей о спортсменах: вывести спортсменов занявших первое место

29.09.2015, 06:58. Показов 1151. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Определить тип данных запись, имеющий поля Фамилия,Страна и результаты шести выстрелов. Определить массив из 10 записей. В программе ввести в массив данные и вывести на экран список спортсменов по алфавиту и страну , спортсмены которой заняли первое место.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.09.2015, 06:58
Ответы с готовыми решениями:

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

Определить результаты спортсменов, занявших первое и второе места
В массиве хранится информация о результатах 22 спортсменов, участвовавших в соревнованиях по бегу на 100 м. Определить результаты...

Определить результаты спортсменов, занявших первое и второе места
3. В двух массивах записаны результаты 20 игр двух футбольных команд (если игра окончилась выигрышем данной команды, то записано число 2,...

9
11 / 10 / 4
Регистрация: 08.01.2015
Сообщений: 238
29.09.2015, 07:45
Тебе в консольном приложении надо, или в оконном?
В консольном такая программа будет меньше и проще.
И какое условие для занявших первое место? наибольшее попадание или определенное число попаданий.
То есть, если у нас спортсмен А набрал 6 попаданий из 6, а остальные по 5, то первое место будет только у него.
0
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 16
29.09.2015, 08:13  [ТС]
В оконном, наверное наибольшее попадание
0
11 / 10 / 4
Регистрация: 08.01.2015
Сообщений: 238
29.09.2015, 08:34
а в чем затык?
Где застряла?
0
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 16
29.09.2015, 08:40  [ТС]
Я даже не знаю, с чего начать и как писать
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
29.09.2015, 08:48
Цитата Сообщение от Nastya19 Посмотреть сообщение
спортсмены которой заняли первое место.
Может это командные соревнования и от каждой страны должно быть равное число спортсменов, например по 2?
Посмотрите еще раз условие, может чуть не так списали.
0
11 / 10 / 4
Регистрация: 08.01.2015
Сообщений: 238
29.09.2015, 08:50
Ну сейчас напишем.
Такой вопрос. Ты хочешь понять, как оно написано, или лишь бы было написано?
0
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 16
29.09.2015, 08:56  [ТС]
Проверила условие,правильно списала

Добавлено через 10 секунд
Понять бы тоже желательно
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
29.09.2015, 08:59
Цитата Сообщение от Nastya19 Посмотреть сообщение
правильно списала
Ну значит условие тупое...
0
11 / 10 / 4
Регистрация: 08.01.2015
Сообщений: 238
29.09.2015, 09:37
Ну значит смотри как я сделал.
Во первых организация формы. Я сделал все по минимуму.
У меня 2 едита на ввод имени и страны. 1 комбобокс на количество попаданий. 1 кнопка на запись значений. 1 Стринггрид для отображения данных.

Edit для имени называется NameAt
Edit для страны NameCo
ComboBox для оценки ShotBox
Кнопка для вводы SaveBtn

это чтобы в коде не потеряться.
объявляем тип:
Delphi
1
2
3
4
5
6
type
  mass= record
    RNameAt: string[20];
    RNameCo: string[40];
    RNmbShot: integer;
  end;
Дальше я подготавливаю форму для работы.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var
  Form1: TForm1;
  RecAt: array[1..10] of mass;
  RA: mass;
  MxSht: integer;
  i: integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  i := 0;
  with stringgrid1 do
    begin
      Cells[0,0] := 'Спортсмен';
      Cells[1,0] := 'Страна';
      Cells[2,0] := 'Кол-во';
    end;
  MxSht := 0;
end;
Для начала мы заполняем все поля на форме.
Дальше жмем на кнопку.
А теперь алгоритм.
У меня есть переменная для максимальной оценки MxSht.
Я ее сравниваю с последним введенным значением. Если MxSht меньше последнего введенного значения, то я присваиваю MxSht это значение. Теперь я знаю самую большую оценку, которая будет соответствовать первому месту.

Теперь нужно упорядочить массив записей по алфавиту (я сперва думал по оценкам, но по алфавиту было проще).
И так, записи (Все, не только первые места). Упорядочены.
Просматриваем массив заново, выбираем те записи, которые соответствуют максимальной оценке и выводим их в стринггрид.
Дальше код решения:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
procedure TForm1.SaveBtnClick(Sender: TObject);
var
  k,j: integer;
begin
  inc(i);
  with RecAt[i] do
    begin
      RNameAt := NameAt.Text;
      RNameCo := NameCo.Text;
      RNmbShot := 0;
      RNmbShot := strtoint(ShotBox.text);
      if MxSht < RNmbShot then MxSht := RNmbShot;
    end;
 
  ra := RecAt[i];
  Stringgrid1.RowCount := 10;
 
  j := 1;
 
  for k := 1 to i do
    if (RecAt[k].RNameAt >= RecAt[i].RNameAt)  then
      begin
        RA := RecAt[k];
        RecAt[k] := RecAt[i];
        RecAt[i] := RA;
      end;
 
  for k := 1 to i do
    if (RecAt[k].RNmbShot = MxSht) then
      begin
        stringgrid1.Cells[0,j] := RecAt[k].RNameAt;
        stringgrid1.Cells[1,j] := RecAt[k].RNameCo;
        stringgrid1.Cells[2,j] := inttostr(RecAt[k].RNmbShot);
        inc(j);
        stringgrid1.RowCount := j;
      end;
end;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.09.2015, 09:37
Помогаю со студенческими работами здесь

Напечатайте списки учеников, занявших первое место
30. На олимпиаде по информатике на школьников заполнялась анкета, содержащая следующую информацию: фамилия, номер школы, класс, набранный...

Определить количество студентов занявших первое место в летнем виде спорта
Имя входного файла: z1271.in Имя выходного файла: z1271.out Про студентов даны сведения фамилия, курс, спортивное хобби – зимнее и...

Распечатайте анкетные данные спортсменов, занявших первые 3 места
Составьте список группы спортсменов, участвовавших в гонках на спортивных машинах, включающей N человек. Для каждого гонщика укажите...

Вывести все результаты спортсменов, и конечно кто занял 1, 2 и 3 место
В соревнованиях, принимают участие 5 участников. Каждый из них, прыгает по 3 раза. Имена ввести в массив, раздел const. Результат...

Известны данные о 5 спортсменах по стрельбе:фамилия,сколько очков выбил.Вывести на экран данные о тех спортсменах,которые выбили более 45 очков.
Помогите решить задачу


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru