Студопедия  
Главная страница | Контакты | Случайная страница

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

Структурные операторы.

Читайте также:
  1. В территориальных органах юстиции образуются соответствующие структурные подразделения, обеспечивающие исполнение функций, возложенных на органы юстиции.
  2. Вопрос 5 Основные структурные компоненты эукариот. Плазмалемма, цитоплазма, ядро. Органоиды, включения.
  3. ГЛАВА 8 i ГЛАВНЫЕ СТРУКТУРНЫЕ ЕДИНИЦЫ ЛИТОСФЕРЫ
  4. Гражданское общество: сущность и важнейшие структурные элементы
  5. Единство системы массмедиа и структурные сопряжения
  6. Инфраструктурные ресурсы.
  7. ИХ СТРУКТУРНЫЕ ЭЛЕМЕНТЫ
  8. ЛПО санитарного типа. Структурные единицы ЛПО санитарного типа.
  9. Нейроны и глиальные клетки - структурные элементы центральной нервной системы (ЦНС). Простые нервные цепи.
  10. Океаническая кора и ее структурные элементы (срединно-океанские хребты, трансформные разломы, внутриплитные океанические поднятия, абиссальные равнины, континентальные окраины).

 

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

Все структурные операторы можно разделить на 3 части:

- составной

- условные

- повтора

Составной оператор.

 

Представляет собой группу из произвольного числа операторов, отделенных друг от друга точкой с запятой и ограниченную операторными скобками (begin…end;)

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

           
   
   
 
 
оператор

 

 


Условные операторы.

 

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

       
 
   
 

 

 


If <условие> then <оператор> else <оператор>;

Система проверяет условие, если условие выполняется, выполняется оператор после then, если не выполняется, то выполняется оператор после else.

If <условие> then <оператор>;

Если else отсутствует, то в случае невыполнения условия, управление передается оператору, следующему за if.

Условия типа if могут быть вложенными. Перед else никогда не ставится «;»

 

 

Оператор выбора CASE.

Если один оператор if может обеспечить выбор из двух альтернатив, то оператор case позволяет сделать выбор из произвольного числа имеющихся вариантов.

Оператор case состоит из выражения селектора и списка параметров, каждому из которых предшествует список констант выбора (список может состоять из 1 константы)

 

 
 

 

 


Case <выражение-селектор> of

<список 1>:<оператор 1>;

<cписок 2>:<оператор 2>;

………………………….

<список n>:<оператор n>

else <операторы>;

end;

 

Оператор case работает следующим образом:

Сначала вычисляется выражение-селектор, затем обеспечивается реализация того оператора, константа которого равна текущему значению селектора.

Если ни одна из констант не равна текущему значению селектора, то выполняется оператор, стоящий за словом else. Если else отсутствует, то активизируется оператор, стоящий за словом end. То есть первый оператор за границей case.

Селектор должен относиться к одному из целочисленных типов (находящихся в диапазоне от –32768 до +32767) или литературному или пользовательскому.

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

x=10 y=x2

-5<x<8 y=ax

x=-6

x=15 y=1/x

x=20

y=1

program prim;

uses crt;

var a,x:integer;

y:real;

begin clrscr;

writeln(‘введи x и a’);

readln(x,a);

case x of

10:y:=sqr(x);

-4..7:y:=a*x;

-6,15,20:y:=1/x

else y:=1;

end;

writeln(‘y=’,y:10:2);

end.

Оператор повтора WHILE.

 

В ТП существует 3 оператора повтора:

1. while часто этот оператор называют оператором с пред условием.

 

 
 

 

 


While <условие продолжения повтора> do <оператор>;

Результат условия - булевское выражение. Если условие выполняется, то управление передается оператору, если условие не выполняется, то переходим к оператору, следующему за while.

Структура while подразумевает наличие одного оператора, если требуется большее, используем операторные скобки.

Оператор while повторяется до тех пор, пока не будет выполняться условие.

 

program pr;

uses crt;

var y,x,a:real;

begin clrscr;

writeln(‘введи a’);

readln(a);

x:=-10;

while x<=10 do

begin

if (x-a>0) then

begin

y:=sqr(x)-a/sqrt(x-a);

writeln(‘y=’,y:10:2);

end

else writeln(‘нет решения’);

x:=x+2;

end;

end.

Оператор повтора REPEAT.

 

Его также называют оператором повтора с пост условием.

 

 
 

 

 


Записывается так:

 

Repeat

<оператор>;

……………

<оператор>;

until <условие окончания цикла>;

 

оператор repeat имеет следующие отличия от оператор while:

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

2. критерием прекращения повторения цикла является равенство выражения константе.

 

Таким образом, если цикл while мы можем назвать циклом «пока», то цикл repeat – until – «до». Условие, записанное после until является условием выхода.

program ytro;

var у,x,a:real;

begin

writeln(‘введи a’);

readln(a);

x:=-10;

repeat

if (x-a>0) then

begin

y:=(sqr(x)-a)/sqrt(x-a);

writeln(‘y=’,y:10:3);

end

else writeln(‘нет решения’);

x:=x+2;

until x>10;

end.

 

Оператор повтора FOR.

 

В случаях, когда число повторений может быть заранее известно для организации циклической обработки информации применяется оператор for.

Часто этот оператор повтора называют оператором цикла с параметром, так как переменная, задающая число повторений называется параметром цикла или управляющая переменная.

       
 
 
   

 

 


Если управляющая переменная изменяется от меньшего выражения к большему, используется to.

Если изменяется от большего к меньшему, то используется downto.

 

For <переменная>:= <выражение> to <выражение> do <оператор>;

For <переменная>:= <выражение> downto <выражение> do <оператор>;

 

Ограничения для операторов for:

1. в качестве параметра должна использоваться простая переменная, описанная в текущем блоке.

2. управляющая переменная должна иметь дискретный (целый) путь.

3. начальное и конечное значение диапазона должна иметь тип, совместимый с управляющей переменной. Кроме вещественного типа.

4. в теле цикла запрещается явное изменение управляющей переменной.

5. после завершения оператора, значение управляющей переменной становится неопределенным. Если только оператор не был прерван оператором перехода.

 

k [-10;10] ш. 1

program prim;

var k:integer;

c,d,y:real;

begin

writeln(‘введи c и d’);

readln(c,d);

for k:=-10 to 10 do

begin

if (d-k<>0) and (k-c>=0) then

begin

y:=sqrt(k-c)/(d-k);

writeln(y);

end

else writeln(‘нет решения’);

end;

end.

Управление экраном.

 

В ТП есть возможность осуществлять вывод окнами и изменять цвет фона и шрифта. Следует помнить, что установленный цвет фона, цвет текста, также размер окна являются активными по умолчанию, то есть если не произвести переназначение, то эти параметры будут действительны до конца сеанса ТП и DOS.

Не рекомендуется:

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

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

 

Window(X1,Y1,X2,Y2)

X1,Y1 – левая верхняя точка окна.

X2,Y2 – правая нижняя точка.

 

Х изменяется от 1 до 80

Y изменяется от 1 до 25

 

Цвет текста Textcolor (<цвет>);

 

Цвет фона Textbackground (<цвет>);

 

Цвет фона изменяется от 0 до 6

Цвет текста изменяется от 0 до 16

 

В том и другом случае цвет может задаваться английским наименованием цвета или цифрой, соответствующей этому наименованию.

 

0 (black)

1 (blue)

2 (green)

3 (cyan)

4 (red)

5 (magenta)

6 (brown)

7 (light gray)

8 (dark gray)

9 (light blue)

10 (light green)

11 (light cyan)

12 (light red)

13 (light magenta)

14 (yellow)

15 (white)

16 (blink) - мерцающий

 

Включение мерцающего режима задается комбинацией цифр со знаком «+»

Цвет + режим мерцания.

 

Window(10,1,15,35);

Textbackground(green);

Textcolor(0);

Clrscr;

Writeln(‘введи число’);

Readln(a);

Window(10,1,80,25);

Textbackground(15);

Clrscr;

Textcolor(2); writeln(a);

Textcolor (14+16); writeln(a);

 

В ТП для модуля crt существует функция READKEY, которая приостанавливает выполнение программы. Запуск программы – любая клавиша.

 

Написать программу возведения числа в любую степень (an), n – целое число, может быть отрицательным «-». Интерфейс программы вводимое окно положительных значений прямоугольник (15,4). Окно вывода представляет собой прямоугольник (20,3). Информация посередине. Выводимое окно для положительных и отрицательных значений имеют разные цвета.

 

Program prim;

Uses crt;

Var s.a:real;

n,k:integer;

begin textbackground(0);clrscr;

window(5,10,30,14);

textbackground(2);

textcolor(14);

clrscr;

writeln(‘введи число и степень’);

readln(a,n);

s:=1;

window(20,20,50,23);

textbackground(5);

clrscr;

if n>0 then

begin

for k:=1 to n do

s:=s*a;

window(1,1,15,4);

textbackground(7);

textcolor(4);

clrscr;

end

else

if n<0 then

begin

for k:=n to –1 do

s:=s*a;

s:=1/s;

window(1,7,20,10);

textbackground(3);

textcolor(0);

end else s:=1;

writeln(‘s=’,s:5:2);

readkey;

end.

 

Процедуры и функции.

 

Для разрешения проблем в практике программирования выработан ряд приемов и методов, которые принято называть методами структурного программирования. Под структурным программированием понимают такие методы разработки и записи программы, которые ориентированы на максимальные удобства для восприятия и понимания ее человеком.

При прочтении программы ее следующих друг за другом фрагментах должна четко прослеживаться логика ее работы, то есть не должно быть «скачков» на фрагменты программы, расположенные где-то в другом месте программы.

Структурное программирование – программирование без go to, то есть не исполняются операторы перехода без особой надобности. В связи с этим фрагменты программы представляют собой некоторые логические (управляющие) структуры, которые определяют порядок выполнения содержащихся в них правил о проверке данных. Любая программа получается построенной из стандартных логических структур, число типов которых невелико.

Основные логические структуры:

- Следование – последовательность операторов, групп операторов, выполняемых друг за другом в порядке их следования в программе.

- Ветвление – управляющая структура, которая в зависимости от выполнения заданного условия определяет выбор для исполнения одного из двух или более заданных в этой структуре групп операторов.

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

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

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

Решение отдельного фрагмента сложной задачи представляет собой самостоятельный программный блок, называемый подпрограммой.

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

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

 

Подпрограммы в ТП.

 

За наличие подпрограмм, как средство структурирования программ в языке ТП этот язык называют процедурно-ориентированным. Подпрограммы в ТП реализованы посредством процедур и функций.

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

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

Структура процедуры повторяет структуру программы. Процедура не может выступать как операнд в выражении. Упоминание имени процедуры в тексте программы приводит к активизации процедуры и ее вызову.

Функция аналогична процедуре, но имеет 2 отличия:

функция передает в точку вызова скалярное (числовое) значение и имя функции может входить в выражение как операнд.

 

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

Все процедуры и функции в ТП делятся не 2 группы:

1. встроенные (стандартные)

2. определенные пользователем.

 

Первые входят в состав языка и вызываются для выполнения под строго фиксированным именем.

Вторые разрабатываются и именуются самим пользователем.

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

SYSTEM – среда ТП (основа), содержащиеся в нем подпрограммы обеспечивают работу всех остальных модулей.

CRT – содержит средства управления монитором.

DOS – включает средства позволяющие реализовать различные функции дисковой операционной системой.

GRAPH 3 – поддерживает использование стандартных графических подпрограмм версий ТП 3.0

OVERLAY – содержит средства оверлейных программ.

PRINTER – обеспечивает быстрый доступ к печатающему устройству.

TURBO 3 – обеспечивает максимальную совместимость с версией ТП 3.0.

TURBOVISION – библиотека объектно-ориентированных программ для разработки пользовательских интерфейсов.

 

Интерфейс – устройство или программа для обеспечения согласованной или эффективной работы устройств.

 

Встроенные процедуры и функции.

 

Модуль SYSTEM подключается к программе автоматически, поэтому программе становятся доступны все встроенные процедуры и функции.

ABS(X) может быть real и integer

COS(X)

EXP(X)

ARCTAN(X)

FRAC(X)

INT(X)

LN(X)

PI,то есть Пи= 3,1415926535897932384626433832795

SIN(X)

SQR(X)

SQRT(X)

RANDOM – генерирует значение случайного числа в диапазоне от 0 до 0,99

RANDOM(i) I – тип word (0…65535) генерирует в диапазоне от 0 до I

EXIT – процедура прерывания. Выход из выполняемого блока в окружающую среду.

 

Пользовательские процедуры и функции.

 

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

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

Параметром называется переменная, которой присваивается некоторое значение в рамках указанного применения.

Различают формальные параметры – параметры, определенные в заголовке подпрограммы, и фактические параметры – выражения, задающие конкретное значение при обращении к подпрограмме.

При обращении к подпрограмме ее формальные параметры замещаются фактическими, переданными из главной программы.

     
 
 
 

 

 


Заголовок процедуры отличается от заголовка функции.

 

     
 
 
 

 


Процедуры и функции записываются после раздела описания, перед началом программы.

 
 


Procedure <имя> (формальный параметр);

const …;

type …; раздел описания.

var …;

begin;

<оператор>

end;

 

function <имя> (формальный параметр):<тип результата>;

const …;

type …; раздел описания

var …;

begin

<оператор>

end;

 

Функция, определенная пользователем, состоит из заголовка и тела функции.

Заголовок содержит зарезервированное слово function, идентификатор (имя), заключенный в круглые скобки необязательный список формальных параметров и т.п. возвращаемого функцией значения.

В разделе операторов должен находиться по крайней мере 1 оператор, присваивающий имени функции значение. В точку вызова возвращается результат последнего присваивания.

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

 

Механизм передачи параметров.

 

Название «формальный» эти параметры получили в связи с тем, что в этом списке заданы только имена для обозначения данных и результатов работы процедуры, а при вызове подпрограммы на их место будут подставлены конкретные значения. Этот список указывается после имени подпрограммы и заключается в круглые скобки.

Список формальных параметров, указанных в заголовке подпрограммы может включать в себя параметры-значения, параметры-переменные, перед которыми должно стоять служебное слово var и после которого должен стоять их тип.

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

Не типизированные параметры, перед которыми – var и отсутствует указание типа.

В списке должны быть перечислены имена формальных параметров и их тип.

Параметры-значения используются только для передачи исходных данных из основной программы в подпрограмму (процедуру и функцию).

Параметры-переменные используются для определения результатов выполнения процедуры. В списке формальных параметров перечисляются после зарезервированного слова var с обязательным указанием типа.

Каждому формальному параметру, объявленному как параметр-переменная должен соответствовать фактический параметр в виде переменной соответствующего типа.

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

 

k:=a-a2+a3-…(±)an

 

program nk;

uses crt;

var I,a,n:integer;

k:real;

function st(a,I:integer):real;

var c:integer; r:real;

begin r:=-1;

for c:=1 to I do

r:=r*(-a);

st:=r;

end;

begin clrscr;

writeln(‘введи a и n’);

readln(a,n);

k:=0;

for I:=1 to n do

k:=k+st(a,I);

writeln(k:10:2);

readkey;

end.

Строковые переменные или строки.

 

Строка – это последовательность символов кодовой таблицы персонального компьютера.

При использовании в выражениях, строка заключается в апострофы. Количество символов в строке (длина строки) может динамически изменяться от 0 до 255.

Для определения данных строкового типа используется тип string за которым следует заключать в квадратные скобки значение максимально допустимой строки данного типа. Если значение не указано, то по умолчанию длина строки равна 255 байт (символов).

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

Над строковыми данными допустимы операция сцепления и операция отношения.

Операция сцепления (иногда конкатенация). Длина строки результирующей строки не должна быть больше 255 или величены, определенной условием.

Операция отношения (<,>,<>, и т.д.). производит сравнение двух строковых операндов, имеет приоритет более низкий, чем у сцепления.

Сравнение строк производится слева на право, и та строка считается большей, у которой номер первого не совпадающего символа по таблице больше.

 

Строковые процедуры и функции.

 

Delete(st,poz,n) – удаляет n символов из строки st начиная с позиции poz. (строка изменяется).

Insert(str1,str2,poz) – вставка строки 1 в строку 2 начиная с позиции poz. (строка 1 не меняется, строка 2 меняется).

Str(ibr,st) – преобразование числовой величины ibr и помещение результата в строку st.

Val(st,ibr,code) – преобразует значение st в величину вещественного или целочисленного типа и помещает результат в ibr. (code – целочисленная переменная, в которой записывается 0, если во время преобразования ошибки не обнаружилось или цифра, обозначающая номер позиции первого ошибочного символа).

Copy(st,poz,n) – выделяет из st n символов, начиная с позиции poz.

Concat(str1,str2,…,strn) – выполняет сцепление строк str1, str2, в том порядке, в котором они указаны в списке параметров.

Length(st) – вычисляет длину в символах строки st. Результат – целочисленный тип.

Pos(st1,st2) – обнаруживает первое появление в строке st2 подстроки st1. результат – целочисленный тип, равный по номеру позиции, где находится первый символ подстроки st1. если подстрока не обнаружена, результат – 0.

Upcase(ch) – преобразует строчную букву в прописную, обрабатывает букву только латинского алфавита.

 

С клавиатуры задано слово. Распечатать его в обратном порядке.

 

program clovo;

var a:string[50];

n,I:integer;

begin

writeln(‘введи слово’);

readln(a);

n:=length(a);

for I:=n downto 1 do

write(copy(a,I,1));

end.

 

 

Массивы.

 

В структурных типах выделяют регулярный тип (массивы).

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

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

Тип элементов массива называется базовым. Особенностью в ТП является то, что число элементов массива фиксируется при описании и в процессе выполнения программы не меняется.

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

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

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

 

(имя массива): array[тип индекса] of (тип элементов массива)

 

a: array[1..20] of real;

 

Если элементы массива не были определены, т.е. им не было присвоено какое-то значение, то такой массив необходимо проинициализировать, т.е. присвоить всем элементам массива нулевое значение.

 

Дан массив из 10 элементов. Элементы массива любые числа.

1. вывести массив на экран в строку через запятую.

2. найти сумму элементов массива и вывести на экран.

 

program mu;

uses crt;

var a:array[1..10]of real;

I:integer;

s:real;

begin clrscr;

for I:=1 to 10 do

begin

writeln(‘введи число’);

readln(a[I]);

end;

clrscr;

for I:=1 to 10 do

write(a[I],’, ‘);

s:=0;

for I:=1 to 10 do

s:=s+a[I];

writeln(‘сумма равна’,s);

end.

Поиск максимального и минимального элемента массива.

 

Чтобы найти максимальный (минимальный) элемент массива, если нет других условий, необходимо:

1. присвоить какому-либо идентификатору значение первого элемента массива.

2. в цикле сравнивать этот идентификатор со всеми остальными элементами массива и если встретится больший (меньший) элемент массива, то его значение присваивается идентификатору.

 

Дан массив из 12 элементов. Элементы массива любые целые числа.

1. вывести массив на экран в строку через (;)

2. найти max элемент массива и его индекс.

 

program mu-mu;

uses crt;

var a:array[1..12]of integer;

m,I,n:integer;

begin clrscr;

for I:=1 to 12 do

begin

writeln(‘введи число’);

readln(a[I]);

end;

clrscr;

for I:=1 to 12 do

writeln(a[I],’; ‘);

writeln;

m:=a[1];

n:=1;

for I:=1 to 12 do

if a[I]>m then

begin

m:=a[I];

n:=I;

end;

writeln(‘max элемент ‘,m,’ его номер’,n);

end.

Сортировка массивов.

 

Существует ряд сортировок массивов:

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

Количество просмотров определяется необходимостью осуществления перестановок.

 

Дан массив из 10 элементов. Элементы массива – любые числа.

1. вывести массив на экран в строку через пробел.

2. рассортировать в порядке возрастания и вывести на экран в строку через запятую.

 

program sоrtirovka;

uses crt;

var a:array[1..10]of real;

i,s:integer;

f:real;

begin

for i:=1 to 10 do

begin

writeln(‘введи число’);

readln(a[i]);

end;

clrscr;

for i:=1 to 10 do

write(a[i],’ ‘);

repeat

s:=0;

for I:=1 to 9 do

if a[I]>a[I+1] then

begin

f:=a[I];

a[I]:=a[I+1];

a[I+1]:=f;

s:=s+1;

end

until s=0;

for I:=1 to 10 do

write(a[I],’,’);

end.

Двумерные массивы.

 

Принято представлять в виде таблиц (матриц). Элемент массива помечается двумя индексами.

Первый индекс указывает номер троки.

Второй индекс указывает номер столбца.

Особенность сортировки двумерного массива является то, что предварительно массив переписывается в одномерный. Одномерный массив сортируется и переписывается в двумерный.

 

Дан массив 4 строки, 5 столбцов.

1. вывести массив на экран в виде таблицы.

2. найти max и min элементы массива и его адрес.

3. рассортировать массив в порядке возрастания.

 

program mas;

uses crt;

var a:array[1..4,1..5]of integer;

j, k, i, n1, n2, m, s, f:integer;

b:array[1..20]of integer;

begin

for i:=1 to 4 do

for j:=1 to 5 do

begin

writeln(‘введи число’);

readln(a[i,j]);

end;

for i:=1 to 4 do

begin

for j:=1 to 5 do

writeln(a[i,j],’, ‘);

writeln;

end;

k:=0;

for i:=1 to 4 do

for j:=1 to 5 do

begin

k:=k+1;

b[k]:=a[i,j];

end;

repeat

s=0;

for k:=1 to 19 do

if b[k]>b[k+1] then

begin

f:=b[k];

b[k]:=b[k+1];

b[k+1]:=f;

s:=s+1;

end;

until s=0;

k:=0;

for i:=1 to 4 do

for j:=1 to 5 do

begin

k:=k+1;

a[I,j]:=b[k];

write(a[I,j],’, ‘);

end;

m:=a[1,1];

n1:=1;

n2:=1;

for I:=1 to 4 do

for j:=1 to 5 do

if a[i,j]<m then

begin

m:=a[I,j];

n1:=I;

n2:=j;

end;

writeln(‘max элемент’,m,’ его номер’,n1,’, ‘n2’);

readkey;

end.

 




Дата добавления: 2014-12-19; просмотров: 23 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.099 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав