Умные решения для умных людей

Задача:

Напишите программу, которая генерирует случайный набор из 10 чисел и отображает их на экране в виде гистограммы. PHP.

План:

  • Алгоритм решения
  • Код программы
  • Примеры входных данных и ожидаемых результатов
  • Объяснение кода программы
  • Блок-схема

Алгоритм решения:

  1. Инициализация пустого массива $numbers.

  2. Генерация случайных чисел:

    • Запуск цикла, выполняющегося 10 раз.
    • В каждой итерации генерируется случайное число от 1 до 20 с помощью rand(1, 20).
    • Добавление сгенерированного числа в массив $numbers.
  3. Вывод заголовка гистограммы.

  4. Отображение гистограммы:

    • Запуск цикла 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)

Объяснение кода программы:

  1. Генерация массива случайных чисел:

    $numbers = array();
    for ($i = 0; $i < 10; $i++) {
        $numbers[] = rand(1, 20);
    }
    Создается пустой массив $numbers. Затем в цикле for генерируются 10 случайных чисел от 1 до 20 с помощью функции rand() и добавляются в массив.

  2. Вывод заголовка гистограммы:

    echo "Histogram:\n";
    Выводится строка "Histogram:" и символ новой строки.

  3. Отображение гистограммы:

    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() создает строку из звездочек, количество которых соответствует значению числа.
    • В конце каждой строки выводится само число в скобках и символ новой строки.

Блок-схема:

Нажмите на изображение, чтобы увеличить

Блок-схема к задаче: Напишите программу, которая генерирует случайный набор из 10 чисел и отображает их на экране в виде гистограммы.

Личный кабинет

  1. Приоритетная обработка
    Запросы от пользователей личного кабинета обрабатываются в первую очередь
  2. Бонус за регистрацию
    Стартовый бонус на счёт личного кабинета (~20 запросов), без регистрации - 3 запроса
  3. Все передовые нейросети
    В личном кабинете представлен широкий выбор нейросетей (20+).
  4. Генерация реалистичных изображений
    Midjourney 6.0, Stable Diffusion XL, Dall-E 3, Playground v2.5, Flux.1 Schnell, Flux.1 Dev, Flux.1 Pro, Flux.1.1 Pro, Kolors, Recraft v3, GPT Image 1 (low), GPT Image 1 (medium), GPT Image 1 (high)
  5. Создание музыки
    Нейросеть Suno создает музыку на основе вашего текста
  6. Нет ограничения на количество символов
    Без регистрации вы можете отправить запрос не более 1000 символов
  7. Работа с файлами
    Поддержка всех популярных форматов: pdf, excel, word, powerpoint, odt, c, js, php, py, html, sql, xml, yaml, markdown, txt, json, csv, png, jpeg и другие
Зарегистрироваться
Личный кабинет smartbuddy.ru