Заполнение массива и его вывод на экран

Задача

В задачах по программированию очень часто встречается необходимость заполнить массив данными и вывести их потом на экран. Методов этого не так уж много и особым разнообразием они не отличаются. Поэтому хорошо бы их оформить в виде процедур и использовать по мере необходимости.

Решение

 

Создадим две процедуры заполнения одномерного массива целыми числами: одну с использованием функции random и одну, где пользователь самостоятельно задает значения. Также создадим процедуру вывода массива на экран. Затем вызовем в основной ветке программы эти процедуры, передав им в качестве аргументов переменные, связанные с массивами.

Программа на языке Паскаль: 

 

const
    n = 10;
 
type
    miniarr = array[1..n] of integer;
 
var
    a, b: miniarr;
 
procedure arr_rand (k:integer; var arr: miniarr);
    var i: byte;
    begin
        writeln ('Заполнение массива случайными числами.');
        randomize;
        for i := 1 to k do
            arr[i] := random (100);
    end;
 
procedure arr_user (k:integer; var arr: miniarr);
    var i: byte;
    begin
        write ('Введите  ', k, ' чисел через пробел: ');
        for i := 1 to k do
            read (arr[i]);
    end;
 
procedure arr_out (k:integer; var arr: miniarr);
    var i: byte;
    begin
        write ('Вывод массива: ');
        for i := 1 to k do
            write (arr[i]:4);
        writeln;
    end;
 
begin
 
    arr_rand (n, a);
    arr_out (n, a);
    writeln;
    arr_user (n, b);
    arr_out (n, b);
 
readln
end.

 

Тема

Процедуры, функции, рекурсии

Уровень

Комбинированные задачи

Комментарии

Массив заполняется вручную. После этого с помощью процедуры он сортируется в порядке возрастания.

const N = 10;
type
    arr = array[1..N] of integer;
var
    a: arr;
    i,j: byte;
 
procedure sort(var mas: arr);
    var b: integer;
    begin
        for i:=1 to N-1 do
            for j:=1 to N-i do
                if mas[j] > mas[j+1] then begin
                    b := mas[j];
                    mas[j] := mas[j+1];
                    mas[j+1] := b;
                end;
    end;
 
begin
    writeln('Введите ',N,' чисел: ');
    for i:=1 to N do 
        read(a[i]);
 
    sort(a);
 
    for i:=1 to N do 
        write(a[i],' ');
    writeln;
end.