Здавалка
Главная | Обратная связь

Примеры выполнения задания лабораторной работы



 

Пример 12. Подсчитать количество положительных элементов в массиве x(10).

Порядок работы:

Шаг 1. Вводим массив x(10).

Шаг 2. Задаем начальное значение количества k = 0.

Шаг 3. Организовываем цикл, который перебирает элементы массива (то есть индекс i), начиная с 1-го и кончая 10-м.

Шаг 4. Если xi > 0, тогда присваиваем k = k + 1.

Шаг 5. Если цикл по i не закончился, идем на начало цикла, то есть на шаг 3.

Шаг 6. Печатаем k.

Шаг 7. Останов.

 

Пример 13. Найти минимальный элемент из интервала [5,12] в массиве x(15).

Порядок работы:

Шаг 1. Dводим массив x(15).

Шаг 2. Задаем начальное значение минимального элемента xmin=10 20.

Шаг 3. Организовываем цикл, который перебирает элементы массива (то есть индекс i), начиная с 1-го и кончая 15-м.

Шаг 4. Если xi не принадлежит интервалу [5,12], тогда идем на шаг 6.

Шаг 5. Если xi < xmin, тогда присваиваем xmin = xi.

Шаг 6. Если цикл по i не закончился, идем на начало цикла, то есть на шаг 3.

Шаг 7. Печатаем xmin.

Шаг 8. Останов.

 

Пример 14. Найти максимальный элемент и его номер в массиве x(30) .

Блок-схема

 
 

 

Порядок работы:

Шаг 1. Вводим массив x(30).

Шаг 2. Задаем начальные значения максимального элемента и его номера: xmax = x1, nmax = 1.

Шаг 3. Организовываем цикл, который перебирает элементы массива (то есть индекс i), начиная с 2-го и кончая 30-м.

Шаг 4. Если xi>xmax, тогда присваиваем: xmax=xi, nmax=i.

Шаг 5. Если цикл по i не закончился, идем на начало цикла, то есть на шаг 3.

Шаг 6. Печатаем xmax, nmax.

Шаг 7. Останов.

Пример 15.Найти среднее арифметическое элементов массива Х(20), кратных 3 и принадлежащих интервалу [15,30].

Программа решения данного примера имеет вид:

 

program pr15;

uses crt;

const N = 20; XN = 15; XK = 30;

type Mas = array[1..N] of integer;

var x:Mas; s,k,i:integer;

SR:REAL; A:BOOLEAN; P:CHAR;

BEGIN CLRSCR;

WRITELN(' ВВЕДИТЕ ',N,' ЧИСЕЛ');

FOR I:=1 TO N DO READ(X[I]);

WRITELN('ИСХОДНЫЙ МАССИВ ');

for i:=1 to N do write(x[i]:4);

writeln; s:=0; k:=0;

for i:=1 to N do

begin

a:=(x[i]<=xk) and (x[i]>=xn);

if (x[i] mod 3 = 0) and a then

begin

s:=s+x[i];

k:=k+1;

end;

end;

IF K>0 THEN SR:=S/K

ELSE SR:=0;

WRITELN('S=',S:5,'K=',K:2,'СРЕДНЕЕ АРИФМ.=’,sr:6:2);

p:=readkey

end.

 

Пример 16.Найти сумму минимального и максимального отрицательных четных элементов массива Х(15).

Программа решения данного примера имеет вид:

 

program pr16;

uses crt;

const N = 15;

type Ind = 1..N;

Mas = array[Ind] of integer;

var x:Mas; max,min,s,i:integer;

a:boolean; p:char;

BEGIN CLRSCR;

WRITELN(' ВВЕДИТЕ ',N,' ЧИСЕЛ');

FOR I:=1 TO N DO READ(X[I]);

WRITE(' ':20, 'ИСХОДНЫЙ МАССИВ');

for i:=1 to N do

write(x[i]:4); writeln;

max := -maxint;

min := maxint;

for i:=1 to N do begin

a := (x[i]<=0) and (x[i] mod 2 = 0);

if (x[i]>max) and a then max := x[i];

if (x[i]<min) and a then min := x[i];

end;

S := MAX + MIN;

WRITELN(' ':10,'MAX=',MAX:4,'MIN = ',MIN:4);

WRITELN(' ':20, 'СУММА = ',S:4);

p:=readkey

end.

 

Пример 17. Сформировать новый массив из положительных элементов исходного массива x(15).

Порядок работы:

Шаг 1. Вводим массив x(15).

Шаг 2. Устанавливаем исходный индекс рабочего массива j=0.

Шаг 3. Организовываем цикл, который перебирает элементы исходного массива (то есть индекс i), начиная с 1-го и кончая 15-м.

Шаг 4. Если xi £ 0, то идем на шаг 7.

Шаг 5. Устанавливаем индекс следующего элемента рабочего массива j = j + 1.

Шаг 6. Присваиваем элемента рабочего массива значения элемента исходного массива yj = xi.

Шаг 7. Если цикл по i не закончился, идем на начало цикла, то есть на шаг 3.

Шаг 8. Печатаем j элементов рабочего массива y.

Шаг 9. Останов.

 

Пример 18.Сформировать и вывести на печать два массива, которые содержат значения и индексы отрицательных элементов исходного массива В(15).

Программа решения данного примера имеет вид:

 

program pr18;

uses Crt;

const N=15;

type Mas1=array[1..N] of real;

Mas2=array[1..N] of integer;

VAR B,X:MAS1; Y:MAS2; I,J:INTEGER; P:CHAR;

BEGIN CLRSCR;

WRITELN(' ВВЕДИТЕ ',N,' ЧИСЕЛ');

FOR I:=1 TO N DO READ(B[I]);

WRITELN(' ':20, 'ИСХОДНЫЙ МАССИВ');

for i:=1 to N do write(b[i]:5:1);

writeln;

j:=0;

for i:=1 to N do begin

if b[i]<0 then

begin

j:=j+1;x[j]:=b[i];y[j]:=i;

end;

END;

WRITELN(' ':10, 'НОВЫЕ МАССИВЫ');

IF J>0 THEN FOR I:=1 TO J DO

WRITELN(' ':5,'X(',I,')=',X[I]:5:1, 'Y(',I,')=',Y[I]:2)

ELSE WRITELN(' ТАКИХ ЭЛЕМЕНТОВ НЕТ);

p:=readkey

end.

 

Пример 19. Найти сумму двух наибольших отрицательных элементов массива x(15).

 

Порядок работы:

Шаг 1. Dводим массив x(15).

Шаг 2. Устанавливаем исходный индекс рабочего массива j=0.

Шаг 3. Организовываем цикл, который перебирает элементы исходного массива (то есть индекс i), начиная с 1-го и кончая 15-м.

Шаг 4. Если xi ³ 0, то идем на шаг 7.

Шаг 5. Устанавливаем индекс следующего элемента рабочего массива j = j + 1.

Шаг 6. Присваиваем элемента рабочего массива значения элемента исходного массива yj = xi.

Шаг 7. Если цикл по i не закончился, идем на начало цикла, то есть на шаг 3.

Шаг 8. Если j < 2, то выдаем сообщения «Массив не сформирован» и идем на шаг 17.

Шаг 9. Организовываем цикл, который определяет количество просмотров рабочего массива (то есть индекс k), начиная с 1-го и кончая j-м.

Шаг 10. Организовываем цикл, определяющий просматриваемую пару чисел рабочего массива (т.е. индекс i), начиная с 1-го и кончая (j-1)-м.

Шаг 11. Если первый элемент не больше второго, то идем на шаг 13.

Шаг 12. Меняем два элемента местами:

c = yi; yi = yi+1; yi+1 = c.

Шаг 13. Если цикл по i не закончился, идем на начало цикла, то есть на шаг 10.

Шаг 14. Если цикл по k не закончился, идем на начало цикла, то есть на шаг 9.

Шаг 15. Вычисляем сумму s = yj + yj-1.

Шаг 16. Печатаем s.

Шаг 17. Останов.

 

Пример 20.Найти произведение четырех наименьших положительных кратных 5 чисел исходного массива Х(20).

Сначала формируем новый массив из положительных кратных 5 элементов исходного массива, а затем полученный массив сортируем методом выталкивания (пузырька). Программа имеет вид:

 

program pr20;

uses crt;

LABEL 1;

const n=20;

type raz=1..N; mac=array [raz] of integer;

VAR X,A:MAC; D,I,J,K,R:INTEGER; P:CHAR;

BEGIN CLRSCR; WRITELN('ВВЕДИ ',N,' ЧИСЕЛ');

FOR I:=1 TO N DO READ(X[I]);

WRITELN(' ':20,'ИСХОДНЫЙ МАССИВ');

FOR I:=1 TO N DO WRITE(X[I]:4);

{ ФОРМИРОВАНИЕ НОВОГО МАССИВА }

writeln; j:=0;

for i:= 1 to N do begin

IF (X[I]>0) AND (X[I] MOD 5 = 0) THEN

BEGIN J:=J+1; A[J]:=X[I]; END; END;

IF J=0 THEN WRITELN(' МАССИВ НЕ СФОРМИРОВАН'): GOTO 1;

{ СОРТИРОВКА ПО ВОЗРАСТАНИЮ }

for k:= 1 to j do

for i:= 1 to j-k do

if a[i+1]<a[i] then

BEGIN D:=A[I]; A[I]:=A[I+1]; A[I+1]:=D; END;

WRITELN(' ':5,'ОТСОРТИРОВАННЫЙ МАССИВ');

for i:= 1 to j do write(a[i]:4); writeln;

if j>=4 then begin r:=1;

for i:=1 to 4 do r:=r*a[i];

WRITELN('ПРОИЗВЕДЕНИЕ 4- Х НАИМЕНЬШИХ=',R:6);END

ELSE WRITELN('МАССИВ НЕ СОДЕРЖИТ 4 ПОЛОЖИТЕЛЬНЫХ КРАТНЫХ 5 ЭЛЕМЕНТОВ');

1: p:=readkey

end.

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.