Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
basketball_player_training
program basketball_player_training; { Моделирование тренировки баскетболиста. Цель: за тренировочный день сделать заданное количество попаданий подряд. Тренировочный день определяется заданным количеством бросков. В качестве броска используется функция random: если не 0, то попал, иначе не попал. Когда не один игрок, а команда, то random (10) определяет начальный уровень игрока: вероятность попадания выше у игрока с random (10), чем у игрока с random (3). То есть, когда будет моделироваться команда, то начальные данные у каждого игрока в общем случае должны быть разные. После приобретения навыка броска, 3 может увеличиваться. Например, по алгоритму: каждый новый день навык улучшается, если есть хотя бы одна серия из 5 попаданий. Далее навык улучшается, если есть две серии и т. д. } const b = 30; // всего бросков за тренировочный день p = 5; // число попаданий подряд: тренировка успешна, если достигается p var kb, kp, // счётчики количества: бросков, попаданий max_p, // рекордное количество попаданий подряд num_p, // количество попаданий всего за тренировочный день num_s, // количество серий 5 попаданий подряд hit // переменная, в которой хранится статус броска: попал или нет : integer; begin // инициализация: randomize; // генератора псевдослучайных чисел kb := 0; // счётчика количества бросков kp := 0; // счётчика количества попаданий (обнуляется, если между попаданиями есть один промах) max_p := 0; // максимального количества попаданий подряд num_p := 0; // количества успешных бросков (попаданий) за тренировочный день num_s := 0; while (kb <= b) do // начало тренировочного дня begin hit := random ( random (15) ); // random внутри random - задел для набора игроков writeln ('hit = ', hit ); // печатаем результат статуса броска if hit <> 0 then // начало блока "если попал" begin kp := kp + 1; // счётчки количествва попаданий увеличиваем на 1 if kp >= p then // если уже 5 попаданий, то begin writeln (kp, ' раз подряд, бросков = ', kb); // kb := b + 1; - убрать // если попал 5 раз подряд, и можешь СРАЗУ уходить домой // - оставить // если нужно посмотреть сколько раз попал num_p // нужно найти рекорд количества попаданий подряд max_p num_s := num_s + 1; // счётчик успешных серий попаданий подряд увеличиваем на 1 end; if max_p < kp then max_p := kp; // здесь считаем рекорд попаданий подряд num_p := num_p + 1; // здесь считаем общее количество попаданий из всех бросков end // конец блока "если попал" else // начало блока "если НЕ попал" kp := 0; // обнуляем счётчки количества попаданий, так как не попал kb := kb + 1; // счётчик оличества бросков увеличиваем на 1 end; // конец тренировочного дня writeln( 'Количество серий ', num_s, ', рекорд попаданий подряд = ', max_p, ', попаданий ', num_p, ' из ', kb-1); end.
run
|
edit
|
history
|
help
0
123456
solar system 7
Calculatrice 1.0
Potenztabelle
two number sum
buscar_numero_V2_divisible_5
Genetic Pascal
test16
fgh
test10