Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Примеры часто встречающихся алгоритмов работы с массивами





Пример 4.1. Вычислить сумму n элементов одномерного массива А .

S:=0;

for i:=1 to n do

S:=S+A[i];

 

Пример 4.2. Вычислить сумму модулей всех элементов матрицы В .

S:=0;

for i:=1 to n do

for j:=1 to m do

S:=S+abs(B[i, j]);

 

Пример 4.3. Вычислить сумму диагональных элементов квадратной матрицы В

S:=0;

for i:=1 to n do

S:=S+B[i, i];

 

Пример 4.4. Вычислить значение и номер максимального элемента одномерного массива А.

max:=A[1]; // за максимум принимается первый элемент массива

nmax:=1; // номер максимального элемента массива равен 1

for i:=1 to n do

if A[i]>max then begin // если A[i] больше максимального, то...

max:=A[i]; // за максимум принимается A[i]

nmax:=i; // номер максимального элемента равен i

end;

 

Пример 4.5. Переставить местами элементы одномерного массива А: первый элемент меняется с n-м, второй - с (n-1)-м, третий - с (n-2)-м и т.д.

i:= 1; j:= n;

Repeat

r:= A[i];

A[i]:= A[j];

A[j]:= r;

i:= i+1;

j:= j-1;

until i >= j;

Для обмена данными между ячейками используется вспомогательная переменная r.

 

Пример 4.6. Переставить местами элементы квадратной матрицы А (размером n×m) относительно главной диагонали: все элементы, стоящие ниже главой диагонали поменять с элементами, которые стоят выше главной диагонали.

В квадратной матрице А размером n×m элементы главной диагонали имеют одинакорые индексы (ai,i, i=1, n). Каждому элементу, стоящему выше главой диагонали (ai,j, 1≤ i ≤ n-1, i+1≤ j ≤ n) соответствует симметричный ему элемент, стоящий ниже главной диагонали (aj,i, 1≤ i ≤ n-1, i+1≤ j ≤ n).

for i:= 1 to n-1 do

for j:= i+1 to n do begin

r:=A[i, j];

A[i, j]:= A[j, i];

A[j, i]:= r;

end;

 

Пример 4.7. В матрице А размера n×m переставить местами строки с номерами k1 и k2.

for j:=1 to n do begin

r:=A[k1, j];

A[k1, j]:= A[k2, j];

A[k2, j]:= r;

End;

Пример 4.8. Отсортировать одномерный массив А в порядке возрастания элементов. Использовать метод пузырька.

for i:= 2 to n do

for j:= n downto i do

if A[j-1] > A[j] then begin

r:= A[j];

A[j]:= A[j-1];

A[j-1]:= r;

end;

Для данного примера возможен и другой алгоритм (тот же метод пузырька):

for i:= 1 to n-1 do

for j:= i+1 to n do

if A[j] < A[i] then begin

r:= A[i];

A[i]:= A[j];

A[j]:= r;

end;

 

4.4. Компонент TStringGrid для ввода/вывода массивов

В Delphi имеется возможность организовать ввод/вывод двухмерных и одномерных массивов с отображением их на форме. Для этого используют специальный компонент TStringGrid (находится на странице Additional), который предназначен для отображения информации в виде двухмерной (одномерной) таблицы каждая ячейка которой представляет собой окно однострочного редактора (аналогично окну TEdit). Доступ к информации осуществляется с помощью свойства Cells[ACol: Integer; ARow: Integer]: String, где ACol, ARow – индексы элемента двумерного массива. Свойства ColCount и RowCount устанавливают количество столбцов и строк в таблице, а свойства FixedCols и FixedRows задают количество столбцов и строк фиксированной зоны. Фиксированная зона выделена другим цветом, и в нее запрещен ввод информации с клавиатуры.

Date: 2015-06-08; view: 655; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию