Статьи /  Pascal /  
Pascal Операторы ввода и вывода

Pascal. Массивы.

Массив – совокупность конечного числа данных одного типа.


Объявление массива.

var ИмяМассива : array[first..final] of ТипМассива;
Также объявить массив можно таким образом:
type ИмяТипа = array[first..final] of ТипМассива;
var ИмяМассива : ИмяТипа;
,где ТипМассива : тип данных(real, integer ..)
first..final – размер массива, например [1..20] , означает что массив содержит 20 элементов, к котором можно обратится по адресам от 1 до 20 Обращение к элементу массива производится через его индекс
k1 := a[-5]; k2 := a[3];

Ввод элементов массива

Для заполнения массива числами нужно ввести
for i := 1 to 10 do begin
    Write(i,’: ’);
    readln(a[i]);
end;

Формирование массива с помощью генератора случайных чисел

Randomize;{процедура, инициализирующая генератор случайных чисел}
for i := 1 to 10 do a[i] := random(100);
//в данном случае сгенерированные числа будут соответствовать отрезку от 0 до 99 включительно
for i := 1 to 20 do b[i] := 20 * random();
//Функция random без параметра генерирует числа, принадлежащие интервалу (0, 1). Коэффициент 20 растягивает интервал до (0, 20)

Задание массива в виде последовательности констант

type s = array [1..5] of real;
Тогда элементы массива можно инициализировать следующим образом
const mas : s = (1.2, 0.1, -0.2, 0.5, 1.0);

Двумерный массив.

Допустим нам необходимо объявить, сформировать и распечатать двумерный массив в виде квадратной матрицы 20 x 20.

Объявление двумерного массива.

const n = 20;
type s = array [1..n, 1..n];
var a : s;

Формирование двумерного массива.

Randomize;
for i := 1 to n do
for j := 1 to n do
    a[i,j] := 1 + random(50);

Вывод двумерного массива.

For I := 1 to n do begin
for j := 1 to n do
    write(a[i, j], ‘ ’);
writeln();//перевод курсора на следующую строку
end;

Формирование символьного массива. Задача: из десяти букв латинского алфавита выбрать случайным образом одну.

Var c : array[1..10] of char;
begin
    randomize;
    for i := 1 to 10 do
        c[i] := chr(97 + random(26));
end.

В таблице кодировки строчные буквы латинского алфавита располагаются последовательно друг за другом. 97('a') .. 122('z').

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

Program massiv;
uses crt;
type s = array[1..25] of integer;
var a:s;
    i, m, n : integer;
begin
    clrscr;
    randomize;
    N := random (10) + 16; {величина изменяющаяся от 16 до 25}
    for i := 1 to n do
        a[i] := random(50) + 1;
    for i := 1 to n do begin
        if odd(i) then
            textcolor(14)
        else
            textcolor(7); {нечетные элементы выводятся желтым цветом}
        write(a[i], ' ');
    end;
    textcolor(14);
    m := (n+1) div 2;
    for i := 1 to m-1 do
        a[i+1] := a[2*i + 1];
    for i := 1 to m do
        write(a[i], ' ');
    readln;
end.


Яндекс.Метрика