Мой сайт
Среда, 22.01.2025, 07:01
» Меню сайта
» Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Массивы

     Основное предназначение современных компьютеров — обра­ботка большого количества данных. При этом надо как-то обра­щаться к каждой из тысяч (или даже миллионов) ячеек с данны­ми. Очень сложно дать каждой ячейке собственное имя и при этом не запутаться. Из этой ситуации выходят так: дают имя не ячейке, а группе ячеек, в которой каждая ячейка имеет собствен­ный номер. Такая область памяти называется массивом.

     Массив – это структурированный тип данных, состоящий из фиксированного числа упорядоченных однотипных элементов. 

Элементы массива упорядочены по индексам, определяющим положение каждого элемента в массиве. Элементы массива могут быть любого типа, включая структурированный. Индексы могут быть любого порядкового типа, кроме Longint.

I

1

2

10

A[ i ]

A[ 1 ]

A[ 2 ]

A[ 10 ]

I/J

1

2

5

1

A[ 1,1]

A[ 1,2]

A[ 1,3]

2

A[ 2,1]

A[ 2,2]

A[ 2,3]

3

A[ 1,3]

A[ 2,3]

A[3,3 ]

 

 

i – индекс или номер элемента

 

i –номер строки ; j – номер столбца

Одномерный массив соответствует понятию линейной таблицы (с одним индексом), двумерный – понятию прямоугольной таблицы или матрицы (с двумя индексами). Если количество индексов n – массив называется n – мерным. Размерность ограничена объёмом памяти конкретного компьютера.

Для описания массива предназначено словосочетание array of (массив из). После слова array указывается тип индексов в квадратных скобках, после слова of - тип самих компонент (элементов массива).

Формат: 1 способ

Type   <имя типа> = array [тип индекса] of <тип компонент>;

Пример: 

Type A=array [1..10] of integer;   {массив из 10 целых чисел}

AB=array [1..3,1..5] of real;  {двумерный массив из вещественных чисел размерностью 3 строки и 5 столбцов}

2 способ
Массив можно описать без представления типа непосредственно в разделе описаний типов данных:
Var <идентификатор> : array [тип индекса] of <тип компонент>;
Пример:

var A: array[1..5] of integer;    // массив из 5 элементов целого типа

     V: array[0..5] of real;          // массив из 6 элементов вещественного типа

     L: array[-5..5] of boolean;  // массив из 11 элементов логического типа

     S: array[65..90] of char;    // массив из 26 элементов символьного типа

Для описания массива можно использовать предварительно определённые константы:

Const N1=4; N2=5;

Var Mas: array[1..N1,1..N2] of  real;

или массив из постоянных величин  const b: array [1..5] of integer = (4, 2, 3, 5, 7);

Способы заполнения массива

1 способ. Ввод каждого значения с клавиатуры:

  for i:=1 to10 do read (a[i]);

2 способ. С помощью оператора присваивания (по формуле):

  for i:=1 to 10 do a[i]:=i;

3 способ. С помощью оператора присваивания (случайными числами):

  randomize;

  for i:=1 to 10 do a[i]:=random(100);

Функция Random [0;N):

x = random;   [0;1)
 x = random (50)  [0;49]
 x = random (100)+50  [50;149]
 x = random (100)-50   [-50;49]
 x = random (254)-123  [-123;130]

Вывод массива

1 способ. Элементы массива можно вывести в строку, разделив их пробелом:

for i:=1 to 10 do write (a[i], ' '); Пример: 25 15 13 48 56 30 12 24 17 62 

2 способ. Элементы массива можно вывести в строку, указав количество зарезервированных ячеек под число:

for i:=1 to 10 do write (a[i]:5); Пример: 25   15   13   48   56   30   12   24   17   62 

3 способ. Вывод с комментариями:

for i:=1 to 10 do writeln ('a[', i, ']=', a[i]);

Пример: a[1]=4  a[2]=1  a[3]=6  a[4]=3  a[5]=8  a[6]=5  a[7]=9  a[8]=4  a[9]=8  a[10]=7

Задача 1:  Определение суммы и произведения элементов в массиве. Сформировать и вывести на экран массив из 15 случайных чисел в интервале от 1 до 100. Определить сумму и произведение всех элементов.

program p1;
     uses Crt;  //подключение библиотек 

     var a: array [1 ..15] of integer;
     i, S: integer;
     p: longint;

begin
     ClrScr; //очистка экрана
     p:=1; //первоначальное значение произведения 1

     s:=0; //первоначальное значение суммы 0
  randomize; //Инициализация счётчика случайных чисел
  for i:=1 to 15 do // для номеров массива от 1 до 15
  begin
      a[i] := random (100)+1;  // заполнение массива случайными числами
      write (a[i],'  ');  //вывод элементов массива через пробел
      S:= S + a[i];  //подсчёт суммы 
      P:= P * a[i]; //подсчёт произведения
   end;
       writeln;   //вставка пустой строки
       writeln  ('произведение = ', p);
       writeln  ('сумма = ', s);

end.

Задача 2. Определение количества заданных элементов в массиве. Ввести с клавиатуры массив целых чисел А[10]. Положительные элементы возвести в квадрат, подсчитать количество отрицательных и чётных чисел. Вывести полученный массив.

program p2;

uses Crt;//подключение библиотек
var A: array[1..10] of integer;
      i, otr, n: integer;

begin
ClrScr;
     otr:=0; n:=0;
//обнуление результатов
     for i:=1 to 10 do begin
          write('Введите элемент массива А[',i,']= '); // заполнение массива с клавиатуры
          readln(A[i]);//ввод массива с клавиатуры
     end;

     writeln('Итоговый массив A:');
   
 for i:=1 to 10 do begin
          if A[i]>0 then begin

          A[i]:= sqr(A[i]); write (a[i]:4); end;// возведение в квадрат положительных элементов и вывод нового массива
          if A[i]<0 then otr:= otr + 1;//подсчет отрицательных элементов
          if A[i] mod 2=0 then n:= n + 1;//подсчет четных элементов
     end;
     writeln;
writeln('количество чётных = ',N);
writeln('количество отрицательных = ',Otr)

end.

» Вход на сайт
» Поиск
» Календарь
«  Январь 2025  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
» Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • База знаний uCoz

  • » Инфознайка
    Copyright MyCorp © 2025uCoz