Массивы - это переменные, которые предназначены в основном для хранения списков данных. При этом они имеют одно и то же имя, однако у каждого элемента массива, чтобы не возникло путаницы, есть свой числовой индекс.
Для объявления массива используют 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-ую, нужно десятичное число всегда делить на два, а затем собрать все нули и единицы в обратном порядке:
Таким образом мы получаем из десятичного числа 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, а остатки заберем. Получим следующую программу:
Нетрудно теперь и обратно (из 16-ой в 10-ую перевести) перевести:
- Проверить, является ли слово перевертышем.
Следует учесть, что в данном случае программа учитывает регистр.
- Найти самое длинное слово в предложении и вывести его на экран.
Данная программа очень эффективна для очень большого объема текста, так как берет одно слово и сравнивает с последующими. Если другое слово оказывается длиньше, берет его и продолжает искать еще длиннее слово.
<<Предыдущая статья Следующая статья >>
Опубликовано: 2012-02-24 14:53:36