Написать программу, которая заполняет массив из 6 элементов случайными неповторяющимися целочисленными...

Тематика Информатика
Уровень 5 - 9 классы
Программирование Паскаль массив случайные числа без повторений пользовательский ввод сравнение loto проверка данных целые числа
0

Написать программу, которая заполняет массив из 6 элементов случайными неповторяющимися целочисленными значениями от 1 до 49. После этого программа просит пользователя ввести 6 целых чисел от 1 до 49 (при вводе проверяется, что вводимое число соответствует данному условию; в противном случае число вводится повторно). Программа считает, сколько чисел из введённых пользователем оказалась в массиве, и выводит их количество на экран. Паскаль абс срочно без плагеата

Program Loto;

Uses Crt;

Const

lt = 49; ( количество шаров в лототроне )

shar = 6; ( количество выигрышных шаров)

Var

lott : array [1.lt] of integer;

i, nom : integer;

Begin

randomize;

for i:=1 to lt do

  lott[i]:=i;

i:=1;

while i

avatar
задан 6 дней назад

2 Ответа

0

Для создания программы на Паскале, которая заполняет массив случайными неповторяющимися целыми числами от 1 до 49 и позволяет пользователю ввести свои числа, мы можем воспользоваться следующей структурой. Программа будет включать в себя следующие этапы:

  1. Генерация массива из 6 уникальных случайных чисел от 1 до 49.
  2. Запрос у пользователя ввода 6 уникальных целых чисел с проверкой на допустимый диапазон.
  3. Подсчет количества совпадений между числами пользователя и сгенерированными числами.
  4. Вывод результата.

Вот пример реализации данной программы на Паскале:

Program Loto;

Uses Crt;

Const
    lt = 49;     (* количество шаров в лототроне *)
    shar = 6;    (* количество выигрышных шаров *)

Var
    lott: array[1.shar] of Integer;    (* массив для выигрышных чисел *)
    userInput: array[1.shar] of Integer; (* массив для ввода пользователя *)
    i, j, count: Integer;
    valid: Boolean;
    num: Integer;

Procedure GenerateLottoNumbers();
Var
    temp: array[1.lt] of Integer;
    index, randomIndex, tempValue: Integer;
Begin
    Randomize;

    (* Инициализация массива от 1 до 49 *)
    For i := 1 to lt do
        temp[i] := i;

    (* Генерация 6 уникальных случайных чисел *)
    For i := 1 to shar do
    Begin
        randomIndex := Random(lt - i + 1) + 1;  (* случайный индекс *)
        lott[i] := temp[randomIndex];            (* выбираем значение *)
        temp[randomIndex] := temp[lt - i + 1];  (* заменяем на последний элемент *)
    End;
End;

Function IsValidInput(num: Integer): Boolean;
Begin
    IsValidInput := (num >= 1) and (num 

avatar
ответил 6 дней назад
0

Вот полный код программы на языке Pascal, который выполняет все необходимые действия, описанные в задаче. Код написан с учетом генерации случайных неповторяющихся чисел, проверки ввода пользователя и подсчета совпадений:

program Loto;

uses Crt;

const
    lt = 49;  // Максимальное значение чисел (от 1 до 49)
    shar = 6; // Количество чисел в массиве

var
    lott: array[1.shar] of integer; // Массив для случайных чисел
    userNumbers: array[1.shar] of integer; // Массив для чисел, введенных пользователем
    i, j, temp, matches: integer;
    isUnique: boolean;

begin
    randomize; // Инициализация генератора случайных чисел

    // Генерация массива из 6 случайных неповторяющихся чисел
    for i := 1 to shar do
    begin
        repeat
            temp := Random(lt) + 1; // Генерация числа от 1 до 49
            isUnique := true;
            // Проверяем, что число уникально
            for j := 1 to i - 1 do
            begin
                if lott[j] = temp then
                begin
                    isUnique := false;
                    break;
                end;
            end;
        until isUnique;
        lott[i] := temp;
    end;

    // Пользователь вводит 6 чисел
    writeln('Введите 6 чисел от 1 до 49:');
    for i := 1 to shar do
    begin
        repeat
            write('Число ', i, ': ');
            readln(temp);
            isUnique := true;

            // Проверяем, что число в диапазоне от 1 до 49
            if (temp < 1) or (temp > lt) then
            begin
                writeln('Ошибка! Число должно быть от 1 до 49. Попробуйте снова.');
                isUnique := false;
            end;

            // Проверяем, что числа не повторяются среди введенных
            for j := 1 to i - 1 do
            begin
                if userNumbers[j] = temp then
                begin
                    writeln('Ошибка! Число уже введено. Попробуйте снова.');
                    isUnique := false;
                    break;
                end;
            end;

        until isUnique;
        userNumbers[i] := temp;
    end;

    // Подсчет совпадений
    matches := 0;
    for i := 1 to shar do
    begin
        for j := 1 to shar do
        begin
            if userNumbers[i] = lott[j] then
            begin
                matches := matches + 1;
                break;
            end;
        end;
    end;

    // Вывод результата
    writeln;
    writeln('Случайные числа:');
    for i := 1 to shar do
        write(lott[i], ' ');
    writeln;

    writeln('Вы ввели:');
    for i := 1 to shar do
        write(userNumbers[i], ' ');
    writeln;

    writeln('Количество совпадений: ', matches);

    readln; // Ожидание, чтобы пользователь мог увидеть результат
end.

Пояснение работы программы:

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

    • Используется массив lott для хранения 6 случайных чисел.
    • Числа генерируются с помощью функции Random, и проверяется их уникальность в массиве.
  2. Ввод чисел пользователем:

    • Пользователь вводит 6 чисел, которые должны быть в диапазоне от 1 до 49.
    • Проверяется, чтобы введенные числа не повторялись.
  3. Подсчет совпадений:

    • Каждый элемент из массива userNumbers (числа пользователя) сравнивается с элементами массива lott (случайные числа).
    • Если находится совпадение, счетчик совпадений увеличивается.
  4. Вывод результата:

    • На экран выводятся случайные числа, введенные числа и количество совпадений.

Программа полностью соответствует описанным требованиям.

avatar
ответил 6 дней назад

Ваш ответ

Вопросы по теме