Задача:
Напишите программу, которая генерирует случайный набор из 10 чисел и отображает их на экране в виде гистограммы. PHP.
План:
- Алгоритм решения
- Код программы
- Примеры входных данных и ожидаемых результатов
- Объяснение кода программы
- Блок-схема
Алгоритм решения:
-
Инициализация пустого массива
$numbers
. -
Генерация случайных чисел:
- Запуск цикла, выполняющегося 10 раз.
- В каждой итерации генерируется случайное число от 1 до 20 с помощью
rand(1, 20)
. - Добавление сгенерированного числа в массив
$numbers
.
-
Вывод заголовка гистограммы.
-
Отображение гистограммы:
- Запуск цикла
foreach
для перебора элементов массива$numbers
. - Для каждого элемента:
- Вывод номера строки (индекс + 1), выровненного по правому краю.
- Вывод двоеточия и пробела.
- Отображение звездочек (
*
) в количестве, равном значению текущего элемента. - Вывод числового значения элемента в скобках.
- Переход на новую строку.
- Запуск цикла
Код программы на языке PHP:
Код PHP
<?php
// Generate an array of 10 random numbers
$numbers = array();
for ($i = 0; $i < 10; $i++) {
$numbers[] = rand(1, 20);
}
// Display the histogram
echo "Histogram:\n";
foreach ($numbers as $index => $value) {
echo str_pad($index + 1, 2, ' ', STR_PAD_LEFT) . ": ";
echo str_repeat('*', $value) . " ($value)\n";
}
?>
Примеры входных данных и ожидаемых результатов:
Input: (Программа не требует ввода данных, так как числа генерируются случайным образом)
Possible Output 1:
Histogram:
1: ********** (10)
2: ******* (7)
3: ************* (13)
4: ***** (5)
5: ********* (9)
6: ***************** (17)
7: *** (3)
8: ******** (8)
9: ************ (12)
10: ****** (6)
Possible Output 2:
Histogram:
1: *** (3)
2: ******** (8)
3: ************* (13)
4: ********** (10)
5: ***** (5)
6: ******* (7)
7: **************** (16)
8: ********* (9)
9: ** (2)
10: *********** (11)
Объяснение кода программы:
-
Генерация массива случайных чисел:
Создается пустой массив$numbers = array(); for ($i = 0; $i < 10; $i++) { $numbers[] = rand(1, 20); }
$numbers
. Затем в циклеfor
генерируются 10 случайных чисел от 1 до 20 с помощью функцииrand()
и добавляются в массив. -
Вывод заголовка гистограммы:
Выводится строка "Histogram:" и символ новой строки.echo "Histogram:\n";
-
Отображение гистограммы:
Используется циклforeach ($numbers as $index => $value) { echo str_pad($index + 1, 2, ' ', STR_PAD_LEFT) . ": "; echo str_repeat('*', $value) . " ($value)\n"; }
foreach
для перебора элементов массива$numbers
.str_pad()
форматирует номер строки, выравнивая его по правому краю.str_repeat()
создает строку из звездочек, количество которых соответствует значению числа.- В конце каждой строки выводится само число в скобках и символ новой строки.