- •Лекція №6 Структурований тип даних
- •Регулярні типи. Масив.
- •Масиви у мові Pascal.
- •Використання одновимірних масивів.
- •Var a:array [1..10] of real;
- •I,n,k:integer;
- •I,n,k,l:integer;
- •Var I,n:integer;
- •Var I, n, k: integer;
- •X, y: array[1..50]of real;
- •Var I, n, k, max, min: integer;
- •X: array[1..50] of integer;
- •Var I, j, n, s: integer;
- •X: array[1..50] of integer;
- •Var I, n, k: integer;
- •Var I, n, k: integer;
- •I: integer;
- •Var a: array [1..10] of integer;
- •Var s,I:integer;
- •Var I:integer;
- •Var I:integer;
- •Var I:word;
- •Контрольні запитання.
I,n,k,l:integer;
min, max:real;
begin
writeln('n');
readln(n);
for i:=1 to n do write(' ',a[i]:4:1);
writeln;
min:=a[1];k:=1;{ініціалізація найменшого (max) елементу масиву та його індексу}
for i:=1 to n do
if a[i]<min then
begin
min:=a[i];k:=i;
end;
writeln('min=',min:4:1, 'k=',k:2);
max:=a[1];l:=1;{ знаходження найбільшого елементу масиву та його індексу }
for i:=1 to n do
if a[i]>max then begin max:=a[i];l:=i; end;
writeln('max=',max:4:1, 'l=',l:2);
readln;
end.
Приклад 4.3. Перетворити заданий масив Х(N) цілих чисел, замінивши непарні елементи сумою додатних елементів, інші залишити без змін.
Var I,n:integer;
s:real;
a:array[1..50]of real;
begin
readln(n);
for i:=1 to n do read(a[i]);
writeln;
s:=0;{знаходимо суму додатних елементів}
for i:=1 to n do
if a[i]>0 then s:=s+a[i];
for i:=1 to n do{замінюємо непарні елементи знайденою сумою}
if a[i]/2 <> trunc(a[i]/2) then a[i]:=s;
for i:=1 to n do write(a[i]:5:2);
readln;
end.
Приклад 4.4. З додатних елементів заданого масиву Х(N) дійсних чисел створити новий масив Y.
Var I, n, k: integer;
s:real;
X, y: array[1..50]of real;
begin
readln(n);
for i:=1 to n do read (x[i]);
writeln;
k:=0;{встановлюємо початкове значення індексу нового масиву }
for i:=1 to n do
if x[i]>0 then begin{заносимо знайдені елементи масиву а до масиву b}
k:=k+1;y[k]:=a[i];
end;
for i:=1 to k do write (y[i]:5:2);
readln;
end.
Іноді треба зробити висновок про деякі властивості елементів масиву (елементи утворюють зростаючу послідовність, всі елементи різні і т.д.). При розв’язанні таких задач вводимо деяку ознаку, яка змінює своє значення в тому випадку, коли знайдено порушення порядку.
Приклад 4.4.Якщо заданий масив Х цілих чисел утворює незростаючу послідовність, то кожний від’ємний елемент замінити на величину, що дорівнює максимальному елементу масиву, в іншому випадку знайти індекс мінімального елементу масиву.
Var I, n, k, max, min: integer;
X: array[1..50] of integer;
f : boolean;
begin
readln(n);
for i:=1 to n do read (x[i]);
writeln;
f:=true;{робимо припущення, що масив утворює незростаючу послідовність }
for i:=1 to n-1 do
if x[i] <x[i+1] then f:=false{знайдено порушення порядку};
if f = true then
begin { масив утворює незростаючу послідовність }
max:=x[1];
for i:=1 to n do
if x[i]>max then max:=x[i];
for i:=1 to n do
if x[i]/2 = int(x[i]/2) then x[i]:=max;
for i:=1 to n do writeln(x[i]);
end
else { масив не утворює незростаючу послідовність }
begin
min:=x[1]; k:=1;
for i:=1 to n do
if x[i]<min then
begin
min:=x[i];
k:=i;
end;
writeln(k);
end;
readln;
end.
Приклад 4.6. Знайти суму елементів масиву, які не співпадають за значенням.