Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal_теория с примерами.doc
Скачиваний:
4
Добавлен:
18.11.2019
Размер:
160.26 Кб
Скачать

Работа с массивами

Особенности работы с массивами рассмотрим на конкретном примере.

Пример 11.1. Для заданного массива вещественных чисел, состоящего из 10 элементов,

{-3,7 -5,6 4,6 2,1 3,1 -2,4 5,6 5,4 -6,7 3,5}

вычислить по формуле: , где а = 0,2510-3.

Текст программы

Program pm;

Uses CRT;

Const n=10;

Type vec=array[1..n] of real;

Var

x, y :vec;

a :real;

i :integer;

Begin

clrscr;

Writeln('Введите массив х:');

For i:=1 to n do Read(x[i]); Readln;

For i:=1 to n do y[i]:=2*exp(a*x[i])+ sqrt(abs(x[i]/2));

Writeln('Результат:':20);

Writeln(' y[i]=’);

For i:=1 to n do Writeln(y[i]:10);

End.

Обработка массивов

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

Пример 11.2. Сформировать массив целых случайных целых чисел в диапазоне значений -10..10 и найти максимальный и минимальные элементы.

Текст программы

Program lr4_02;

Uses CRT;

Const n=10;

k1=10;

k2=k1*2+1;

Type vec =array[1..n] of integer;

Var

a :vec;

i, f, mi, ma :integer;

Begin

ClrScr;

Randomize;

Writeln('Исходный массив:');

For i:=1 to n do

Begin

f:=random(k2);

a[i]:=k1-f;

Write(a[i]:3,' ':3);

End;

mi:=100;

ma:=-100;

For i:=1 to n do

Begin

If a[i] > ma then ma:=a[i];

If a[i] < mi then mi:=a[i];

End;

Writeln;

Writeln('Результат:');

Writeln('ma=',ma,' ':5,'mi=',mi);

Repeat Until KeyPressed

End.

Результат работы программы:

Исходный массив:

9 6 -8 -10 8 -10 5 -9 -9 -10

Результат:

ma=9 mi=-10

Пример 11.3. Сформировать массив случайных целых чисел в диапазоне -10..10

и найти сумму отрицательных и произведение положительных элементов.

Текст программы

Program lr4_0;

Uses crt;

Const n=10;

k1=10;

k2=2*k1+1;

Type vec = array[1..n] of integer;

Var

x :vec;

f,s,i,kp :integer;

p :longint;

Begin

clrscr;

randomize;

writeln('Исходный массив:');

for i:=1 to n do

begin

f:= random(k2);

x[i]:=k1-f;

write(x[i]:4,' ':2)

end;

s:=0;

p:=1;

kp:=0;

for i:=1 to n do

begin

if x[i] < 0 then s:=s+x[i];

if x[i] > 0 then

begin

p:=p*x[i] ;

kp:=kp+1

end

end;

writeln;

writeln('Результат:');

writeln('s=',s,' ':4,'p=',p);

writeln('Количество пол. эл-в =>', kp:5);

readln;

end.

Результат работы программы:

Исходный массив:

-10 0 3 -10 9 -9 10 -3 -5 9

Результат:

s=-37 p=2430

Количество пол. эл-в => 4

19

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]