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; flag : boolean; // will true after 5 hits one after another - флаг "успех/неуспех" - здесь он не нужен. begin // инициализация: randomize; // генератора псевдослучайных чисел kb := 0; // счётчика количества бросков kp := 0; // счётчика количества попаданий (обнуляется, если между попаданиями есть один промах) max_p := 0; // максимального количества попаданий подряд num_p := 0; // количества успешных бросков (попаданий) за тренировочный день num_s := 0; flag := FALSE; while (kb <= b) do // начало тренировочного дня begin hit := random ( random (20) ); // random внутри random - задел для набора игроков writeln ('hit = ', hit ); // печатаем результат статуса броска if hit <> 0 then // начало блока "если попал" begin kp := kp + 1; // счётчки количествва попаданий увеличиваем на 1 if kp >= p then // если уже 5 попаданий, то begin // flag := TRUE; // "успех" устанавливаем в один writeln (kp, ' раз подряд ', flag, ' total hits= ', 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 // начало блока "если НЕ попал" begin kp := 0; // обнуляем счётчки количества попаданий, так как не попал // flag := FALSE; // "успех" устанавливаем в ноль end; kb := kb + 1; // счётчик оличества бросков увеличиваем на 1 end; // конец тренировочного дня writeln( 'Количество серий ', num_s, ' рекорд попаданий подряд = ', max_p, ', num_p = ', num_p, ' из ', kb-1); end.
run
|
edit
|
history
|
help
0
считалочка01
kk
testMatrice0.1
BubbleSort (standaard)
BubbleSort (standaard)
Задача №3549. Замечательные числа - 5
3
Грицанова, стр. 26, пример 1.7
непарное число в массиве
zadacha9