Массивы (array)

Надпись array

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

Для объявления массива используют ARRAY, затем задают количество элементов массива (например от 1 до 10) в квадратных скобках [1..10] и объявляют его тип.

...
program massiv;
m:array[1..10] of integer;
...

Таким образом, данный выше массив можно представить как 10 переменных, названных одним именем, но различающимся по числовому индексу. Для ввода элементов в массив необходимо указать имя массива (переменную) и номер его элемента. Например:

...
m[1]:=5;
n:=m[1];
...

В данном примере вместо числового индекса (1) можно использовать переменную целого типа (INTEGER). Таким образом можно ввести в каждый элемент массива определенное количество данных.

...
for i:=1 to 10 do
readln(m[i]);
...

Точно так же происходит вывод элементов массива на экран.

Такие массивы обычно мы называем одномерными. Двумерные массивы используются, например, для хранения таблиц или таких данных, где требуются значения X и Y.

...
program massive;
m:array[1..10,1..5] of string;
...

Массив, который больше двумерного (трехмерный и т.д.) обычно нигде не используется. Но в Паскале увеличить его можно, добавив еще один диапазон элементов массива.

Ввод и вывод двумерного массива такой же, как и у одномерного. Только теперь нужно указывать не один индекс (в квадратных скобках), а два (через запятую):

...
for i1:=1 to 5 do
begin
for i2:=1 to 4 do
begin i:=i+1;
m[i1,i2]:=i;
end;
i:=0;
end;
...

Задания:

  • Вставить на k место элемент, равный m.
  • Удалить из одномерного массива числа, равные заданному числу.
  • В одномерном массиве, заполненном целыми числами, подсчитать число различных элементов.
  • Дана прямоугольная таблица. Найти количество положительных элементов.
  • Найти количество отрицательных элементов в каждой строке двумерного массива.
  • Даны две квадратные матрицы A и B. Вывести на экран ту из них, у которой след (сумма элементов главной диагонали) меньше.


Ответы к заданиям предыдущей статьи:

  • Разработать программу преобразования 16-ой системы счисления в 10-ую и наоборот.

Для начала уясним, что такое 10-ая и 16-ая система счисления. Итак, все наши числа состоят из 10 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9. Дальше все цифры повторяются и поэтому наша система счисления - десятичная. Компьютер использует двоичную систему счисления: 0 и 1, так как электрический сигнал или присутствует, или его нет вообще. Шестнадцатеричная система счисления имеет 16 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Теперь поговорим о том, как можно перевести 10-ую систему счисления в 16-ую.

Давайте попробуем использовать все три системы счисления одновременно (сначала 10-ую переводим в 2-ую, а затем в 16-ую). Чтобы перевести 10-ую в 2-ую, нужно десятичное число всегда делить на два, а затем собрать все нули и единицы в обратном порядке:

Pascal Перевод десятичного числа в двоичное

Таким образом мы получаем из десятичного числа 145 двоичное число 10010001.

Теперь переведем это двоичное число в шестнадцатеричное. Для этого, начиная с последней цифры, разделим двоичное число по четыре цифры (1001.0001), а затем воспользуемся следующей таблицей:

Двоичная Шестнадцатеричная
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

Находим двоичные значения (1001 и 0001) и переводим соответственно в шестнадцатеричную систему счисления. Таким образом у нас 10-ое число 145 преобразовалось в 16-ое 91. Однако если двоичное число не получается поровну разделить по четыре цифры, можно в начало этого числа дописать необходимое количество нулей.

Это первый, более долгий метод решения данной задачи. Попробуем ее упростить и будем переводить сразу из 10-ой в 16-ую. Для этого также, как и при переводе из 10-ой в 2-ую, будем делить всё время на 16, а остатки заберем. Получим следующую программу:

Pascal Перевод десятичного числа в шестнадцатиричное

Нетрудно теперь и обратно (из 16-ой в 10-ую перевести) перевести:

Pascal Перевод шестнадцатиричного числа в десятичное

  • Проверить, является ли слово перевертышем.

Pascal Проверить является ли число перевертышем (палиндромом)

Следует учесть, что в данном случае программа учитывает регистр.

  • Найти самое длинное слово в предложении и вывести его на экран.

Нахождение самого длинного слова в предложении на Pascal

Данная программа очень эффективна для очень большого объема текста, так как берет одно слово и сравнивает с последующими. Если другое слово оказывается длиньше, берет его и продолжает искать еще длиннее слово.


<<Предыдущая статья                                     Следующая статья >>

Опубликовано:

Читайте также:
Заказывайте товары и услуги:

Комментарии (0)
Оставить комментарий