36574

Структурный тип массив. Обработка массивов

Контрольная

Информатика, кибернетика и программирование

Такие операторы присваивания могут использоваться для копирования одного массива в другой. Однако над массивами не определены отношения. Кроме того, в Турбо Паскале нельзя использовать выражения над массивами.

Русский

2013-09-22

31 KB

2 чел.

Структурный тип массив. Обработка массивов.

Для массивов допустим оператор присваивания в форме:

<переменная1-массив> := < переменная2 -массив>;

где: левая и правая части содержат переменные массивов только одного типа.

Такие операторы присваивания могут использоваться для копирования одного массива в другой. Однако над массивами не определены отношения <,>,<=,>=,=.<>. Кроме того, в Турбо Паскале нельзя использовать выражения над массивами.

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

<переменная-массив> [<индексная переменная>] := < выражение >;

где: < выражение > должно быть согласовано по типу с типом элементов массива. Индексированные имена могут входить в состав выражений соответствующего типа также как простые имена.

Важным средством обработки массивов являются циклы. Хотя для обработки массивов можно использовать описанные ранее итерационные циклы, обычно более удобными являются циклы с параметром.

В Турбо Паскале имеются две разновидности циклов с параметром (циклов for):

for <параметр> := < нач.зн.> to <кон.зн.> do <оператор тела цикла>;

for <параметр> := <кон.зн.> downto <нач.зн.> do <оператор тела цикла>;

Параметром цикла for может быть переменная любого порядкового типа.

< нач.зн.> и <кон.зн.> - выражения того же типа, что и параметр, определяющие границы изменения параметра в данном цикле.

<оператор тела цикла> - любой оператор Турбо Паскаля.

Цикл с параметром (первая его разновидность) выполняется следующим образом: вначале вычисляются < нач.зн.> и < кон.зн.> и осуществляется присваивание параметру цикла < нач.зн.>. Проверяется, не превышает ли параметр значения <кон.зн.> (т.е. выполняется сравнение <параметр> < <кон.зн.>), и если не превышает, то выполняется тело цикла, после чего параметру присваивается следующее по порядку значение (т.е. succ(< нач.зн.>)) и цикл повторяется. Если параметр превысил <кон.зн.>, цикл завершается (осуществляется переход к следующему за циклом оператору программы).

Таким образом, цикл for повторяет выполнение оператора тела цикла несколько раз с разными значениями параметра от начального значения до конечного значения.

Вторая разновидность цикла с параметром отличается при выполнении лишь тем, что параметр изменяется в обратном направлении - от конечного значения к начальному. Выход из этого цикла осуществляется, если значение параметра меньше начального значения.

При использовании цикла for желательно, чтобы параметр цикла, выражения <нач.зн.> и <кон.зн.> не изменяли свои значения при выполнении тела цикла ( а также <нач.зн.> и <кон.зн.> не имели зависимости от параметра цикла). Это гарантирует завершение цикла за конечное число шагов и ясную для понимания структуру цикла.

Хотя часто цикл for используют с целочисленным параметром, полезно помнить, что он может быть использован с параметром любого порядкового типа, что придает ему значительно большую гибкость, чем имеют циклы с параметром в других языках (например, в Фортране).

Задача 4.2.6(12)

program Project12;

type mas=array[1..4,1..5] of Integer;

var a:mas;

i,j,l1,l2,d1,d2,s:Integer;

procedure p(x:mas; e1,e2:Integer; var n,k:integer);

var j,max:Integer;

begin

max:=x[e1,1];

n:=e1;

k:=1;

for i:=e1 to e2 do

for j:=1 to 5 do

if x[i,j]>max then

begin

max:=x[i,j];

n:=i;

k:=j;

end;

end;

begin

for i:=1 to 4 do

for j:=1 to 5 do

read(a[i,j]);

p(a,1,2,l1,d1);

p(a,3,4,l2,d2);

s:=a[l1,d1];

a[l1,d1]:=a[l2,d2];

a[l2,d2]:=s;

Writeln;

for i:=1 to 4 do begin

for j:=1 to 5 do begin

write(a[i,j],' ');

end; writeln; end;

Readln;

end.


 

А также другие работы, которые могут Вас заинтересовать

5159. Определение гранулометрического (зернового) состава грунта 61 KB
  Определение гранулометрического (зернового) состава грунта. Цель работы: определить вид и степень неоднородности грунта. Приборы и оборудование: набор сит (с поддоном) сита с размером отверстий 107 53 2 1 0,5 0,25 мм весы лабораторные по ГО...
5160. Определение физических характеристик грунта 124 KB
  Определение физических характеристик грунта Цель работы: определить основные и производные физические характеристики грунта. Приборы и оборудование: весы лабораторные по ГОСТ 19491 пикнометры по ГОСТ 22524-77 шкаф сушильный шпатель режущее коль...
5161. Определение консистенции связного грунта 40.5 KB
  Определение консистенции связного грунта. Цель работы: определить вид и состояние глинистого грунта. Приборы и оборудование, весы лабораторные по ГОСТ 19491 ступка фарфоровая по ГОСТ 9147-73 пестик по ГОСТ 9147-73 с резиновым наконечником чашка ф...
5162. Компрессионные испытания грунтов 161.5 KB
  Компрессионные испытания грунтов. Цель работы: освоить методику испытания грунта методом компрессионного сжатия для определения коэффициента сжимаемости, модуля деформации Е, структурной прочности на сжатие . Приборы и оборудование: компрессионный...
5163. Определение прочностных характеристик грунта 114 KB
  Определение прочностных характеристик грунта Цель работы:освоить методику испытания грунта методом одноплоскостного среза для определения прочностных характеристик грунтов (сопротивления грунта срезу угла внутреннего трения и удельного сцепле...
5164. Дорожная строительная техника. Погрузчики 342.5 KB
  Погрузчики Погрузчики – это современные высокопроизводительные машины, предназначенные для выполнения землеройных работ, погрузки и переработки разнородных материалов: различных видов грунтов и горных пород, угля, песка, щебня, металлической ст...
5165. Кривые линии и поверхности 325 KB
  Линии занимают особое положение в начертательной геометрии. Используя линии, можно создать наглядные модели многих процессов и проследить их течение во времени. Линии позволяют установить и исследовать функциональную зависимость между разл...
5166. Hасчёт и конструирование колонны, фермы и подкрановой балки 979.5 KB
  Курсовой проект разработан в соответствии с заданием на проектирование. Объёмно-планировочное и конструктивное решения соответствуют требованиям нормативной документации по проектированию производственных зданий. Проект состоит из поясните...
5167. Реализация решения уравнения программным способом 157 KB
  1. Постановка задачи В данном программном продукте необходимо реализовать решение на примере уравнения: y(x)=x3+a*x2+b*x+c. Вместо коэффициентов должны использоваться параметры a, b, c, которые принимают значения, вводимые пользователем. Для нахожде...