Решение №10 из главы 15.Напишите программу, которая заполняет массив из 10 элементов случайными числами
Primary tabs
Напишите программу, которая будет заполнять массив из 10 элементов случайными числами из диапазона от 0 до 20, при этом в полученном массиве не должно быть одинаковых значений.
program pascal_random_array_unique; type b = array[1..10] of integer; // секция обьявления типов { функция заполнения массива } function filling_array( min, max : integer ) : b; var count, i, j, l, number : integer; // секция обьявления переменных arr : b; begin // начало тела функции count := 0; l := 1; j := 0; randomize; // вызов процедуры while( count < 10 ) do // пока меньше 10 begin j := 0; number := random( max - (min + 1) + min ) ; // случайные числа if( arr[1] = 0 ) then // если значение элемента массива с индексом 1 равно 0 begin arr[1] := number; // присваиваем значение count += 1; // увеличиваем счетчик end else begin for i := low( arr ) to high( arr ) do // обходим массив begin if( arr[i] <> number ) then // если значение массива не равно значению random begin j += 1; // считаем длинну if( j = high( arr ) ) then // если длинна равна длинне массива begin l += 1; // увеличиваем индекс элемента массива arr[l] := number; // значение массива равно значению random count += 1; // увеличиваем счетчик end; end; end; end; end; filling_array := arr; // возвращаем значение функции end; // завершение тела функции procedure print_result ( arr : b ); // процедура вывода var i : integer; begin // начало тела процедуры for i := low( arr ) to high( arr ) do begin writeln( arr[i], ' ' ); // вывод значений end; end; // завершение тела процедуры var number1, number2 : integer; result_arr : b; begin // начало основной программы writeln( 'input min and max' ); readln( number1, number2 ); // считывание min и max значения result_arr := filling_array( number1, number2 ); print_result ( result_arr ); // вызов процедуры readln(); // удержание консоли end. // завершение основной программы
- Log in to post comments
- 9609 reads
vedro-compota
Wed, 07/08/2020 - 20:05
Permalink
Проверить ситуацию
Проверить ситуацию
-- второе число, если не совпадает с первым, должно попасть во вторую ячейку.
_____________
матфак вгу и остальная классика =)
vedro-compota
Wed, 07/08/2020 - 20:10
Permalink
2) проверить код на
2) проверить код на выполнимость.
_____________
матфак вгу и остальная классика =)
sergio
Thu, 07/09/2020 - 22:15
Permalink
поправил
vedro-compota
Sat, 07/11/2020 - 20:24
Permalink
нужна оптимизация:
нужна оптимизация:
_____________
матфак вгу и остальная классика =)
sergio
Sat, 07/11/2020 - 23:24
Permalink
поправил
vedro-compota
Wed, 07/15/2020 - 19:24
Permalink
объяснить назначение
объяснить назначение переменных:
-- если подозрение, что они "дублируют" счетчик i и что без них можно обойтись.
И ещё:
-- подозрительно синхронно увеличиваются, не дублируют ли они друг друга?
_____________
матфак вгу и остальная классика =)
sergio
Sat, 07/18/2020 - 21:18
Permalink
поправил, убрал лишние переменные
vedro-compota
Sat, 07/18/2020 - 20:45
Permalink
можно обойтись без переменной
можно обойтись без переменной k
_____________
матфак вгу и остальная классика =)