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

Типовые алгоритмы

ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ | Программа на ЯВУ ТР7.0 | Программа на ЯВУ ТР7.0 |


Читайте также:
  1. Алгоритмы группы KWE
  2. АЛГОРИТМЫ ИЗОБРЕТАТЕЛЬСТВА
  3. Алгоритмы на классический волейбол.
  4. Алгоритмы на пляжный волейбол.
  5. Алгоритмы на языке Паскаль
  6. Алгоритмы обработки матрицы в целом
  7. Алгоритмы обработки элементов каждого столбца матрицы

При решение задач на обработку одномерных и двумерных массивов необходимо знать следующие типовые алгоритмы:

- описание, ввод, вывод массивов;

- поиск минимального и максимального значений;

- поиск суммы, произведения, количества элементов;

- поиск среднего геометрического и среднего арифметического.

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

 

ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ А(n)

Описание массива

CONST

N1 = 20; {МАКСИМАЛЬНЫЙ РАЗМЕР}

TYPE

MAS1 = ARRAY[1..N1] OF INTEGER;

VAR

A: MAS1;

N: INTEGER; {РЕАЛЬНЫЙ РАЗМЕР}

I: INTEGER; { ИНДЕКС}

Ввод массива

WRITELN(‘ВВЕДИТЕ РАЗМЕР N = ’);

READ(N);

FOR I:=1 TO N DO

BEGIN

WRITE(‘A[‘, I, ’]= ‘);

READ(A[I]);

END;

 

Вывод массива

FOR I:=1 TO N DO

WRITE(‘A[‘, I, ’]= ‘, A[I]);

Поиск суммы элементов S

S положительных элементов

S:= 0;

FOR I:=1 TO N DO

IF A[I] > 0 THEN

S:= S + A[I];

WRITELN(‘S= ‘,S);


S четных элементов

S:= 0;

FOR I:=1 TO N DO

IF A[I] MOD 2 = 0 THEN

S:= S + A[I];

WRITELN(‘S= ‘,S);

S нечетных элементов

S:= 0;

FOR I:=1 TO N DO

IF A[I] MOD 2 <> 0 THEN

S:= S + A[I];

WRITELN(‘S= ‘,S);



S элементов, стоящих на

четных местах

S:= 0;

I:= 2;

WHILE I <= N DO

BEGIN

S:= S + A[I];

I:= I+2;

END;

WRITELN(‘S= ‘,S);

S элементов, стоящих на

нечетных местах

S:= 0;

I:= 1;

WHILE I <= N DO

BEGIN

S:= S + A[I];

I:= I+2;

END;

WRITELN(‘S= ‘,S);


Поиск произведения элементов P

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

Поиск Р элементов, попадающих в интервал от –2 до 9

P:=1;

FOR I:=1 TO N DO

IF (A[I] > -2) AND (A[I] < 9) THEN

P:= P * A[I];

WRITELN(‘P= ‘, P);

Поиск количества элементов COL

Можно использовать приемы программирования как указано выше, только учитывать особенности алгоритма поиска количества

Найти количество отрицательных элементов, стоящих на нечетных местах

COL:= 0;

I:=1;

WHILE I<= N DO

BEGIN

IF A[I] < 0 THEN

COL:= COL + 1;

I:= I+2;

END;

WRITELN(‘COL= ‘,COL);

Поиск среднего арифметического положит. элементов SA = S/ COL

S:= O;

COL:= 0;

FOR I:=1 TO N DO

IF A[I]> 0 THEN

BEGIN

S:= S + A[I];

COL:= COL +1;

END;

IF COL > 0 THEN

BEGIN

SA:= S/COL;

WRITELN (‘ SA= ‘, SA);

END

ELSE

WRITELN(‘ COL = 0 ‘);

Поиск среднего геометрического отриц. элементов

P:= 1;

COL:= 0;

FOR I:=1 TO N DO

IF A[I]< 0 THEN

BEGIN

P:= P* A[I];

COL:= COL +1;

END;

IF COL > 0 THEN

BEGIN

SG:= EXP(1/COL * LN(P));

WRITELN (‘ SG= ‘, SG);

END

ELSE WRITELN(‘ COL = 0 ‘);

Поиск минимального значения MIN

 

Среди всех элементов массива

MIN:= A[1];

FOR I:=1 TO N DO

IF A[I] < MIN THEN

MIN:= A[I];

WRITELN(‘MIN = ‘, MIN);

Среди полож.(отриц., четных, нечетных и т.д.) элементов массива

MIN:= 10000;

FOR I:=1 TO N DO

IF (A[I]>0) AND (A[I] < MIN) THEN

MIN:= A[I];

WRITELN(‘MIN = ‘, MIN);

Найти миним. и его индекс среди всех элементов массива

MIN:= A[1];

IMIN:= 1;

FOR I:=1 TO N DO

IF A[I] < MIN THEN

BEGIN

MIN:= A[I];

IMIN:= I;

END;

WRITELN(‘MIN = ‘, MIN);

Поиск максимального значения MAX

 

Среди всех элементов массива

MAX:= A[1];

FOR I:=1 TO N DO

IF A[I] > MAX THEN

MAX:= A[I];

WRITELN(‘MAX = ‘, MAX);

Среди полож.(отриц., четных, нечетных и т.д.) элементов массива

MAX:= -10000;

FOR I:=1 TO N DO

IF (A[I]>0) AND (A[I] > MAX) THEN

MAX:= A[I];

WRITELN(‘MAX = ‘, MAX);

Найти максимум и его индекс среди всех элементов массива

MAX:= A[1];

IMAX:= 1;

FOR I:=1 TO N DO

IF A[I] > MAX THEN

BEGIN

MAX:= A[I];

IMAX:= I;

END;

WRITELN(‘MAX = ‘, MAX);

 

Изменить порядок следования элементов в векторе (инверсия)

FOR I:=1 TO N DIV 2 DO

BEGIN

V:= A[I];

A[I]:= A[N+1-I];

A[N+1-I]: = V;

END;

 

Сортировка одномерного массива по возрастанию (метод «пузырька»)

REPEAT

FLAG:=0;

FOR I= 1 TO N –1 DO

IF A[I]>A[I+1] THEN

BEGIN

C:= A[I];

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

A[I+1]:= C;

FLAG:= 1;

END;

UNTIL FLAG=0;

 

Сортировка одномерного массива по убыванию (метод линейного перебора)

FOR J= 1 TO N –1 DO

BEGIN

MAX:= A[J];

IMAX:= J;

FOR I= J+1 TO N DO

IF A[I]>MAX THEN

BEGIN

MAX:= A[I];

IMAX:= I;

END;

C:= A[J];

A[J]:= A[IMAX];

A[IMAX]:= C;

END;

 


Дата добавления: 2015-07-11; просмотров: 191 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
ОПРЕДЕЛЕНИЯ| ОБРАБОТКА ДВУМЕРНЫХ МАССИВОВ В(N,M)

mybiblioteka.su - 2015-2024 год. (0.015 сек.)