Приклад 1.Для заданого масиву з 10 дійсних значень знайти суму позитивних значень.
| | | |
| |
| | PROGRAM suma;
{Знаходження суми позитивних значень в масиві з 10 дійсних чисел.}
var
M:array [1..10] of real;
s:real;
i:byte;
{M – масив значеннь
s - сума введених значень
i - змінна циклу}
begin
s:=0;
for i:=1 to 10 do
begin
write ('введи число');
readln(M[i]);
end;
for i:=1 to 10 do
if M[i]>0 then
s:=s+ M[i];
writeln ('S = ',s:10:2);
end.
| |
|
Приклад 2.В заданому масиві з 10 дійсних значень кожне негативне значення зменшити в разів.
PROGRAM masiv;
{Заміна негативних позитивних значень в масиві з 10 дійсних чисел на значення в 5 разів збільшене.}
var
M:array [1..10] of real;
i:byte;
{M – масив значень
i - змінна циклу}
begin
for i:=1 to 10 do
begin
write ('введи число');
readln(M[i]);
end;
for i:=1 to 10 do
if M[i]< 0 then
M[i]:=5*M[i];
writeln ('Новий вміст масиву’);
for i:=1 to 10 do
write (M[i]);
writeln;
end.
Приклад 3.Маємо 2 масиви цілих елементів розміром по 5 елементів. Порахувати кількість пар відповідних елементів масивів, сума яких не більше 15. Індекс цих пар записати в третій масив.
Program masiv;
var
mas1,mas2,mas3:array [1..5] of integer;
i,k:word;
begin
for i:=1 to 10 do
begin
write ('Введи пару чисел');
readln(маі1[i], маі2[i]);
end;
k:=0;
for i:=1 to 5 do
if mas1[i]+mas2[i]<=15 then
begin
inc(k);
mas3[k]:=i;
end;
writeln ('Кількість пар ',k:4);
writeln ('Результуючий масив:');
for i:=1 to k do
write (mas3[i]:5);
writeln;
end.
Приклад 4.Вводиться послідовність символів. Необхідно підрахувати скільки разів введено кожну малу букву латинського алфавіту. Завершення вводу - введення символу *.
В цьому прикладі використаємо масив для зберігання кількості кожного введеного символу. Індексом цього масиву визначимо символи буков.
Program simbol;
var
K:array [‘a’..’z’] of integer; {Масив кількостей кожного символа}
c:char;
begin
{Очистка масиву кількостей, тобто кількість кожного символу встановлюється
рівною нулю}
for c:=’a’ to ’z’ do
K[c]:=0;
{Цикл по обробці введених символів}
repeat
write (‘Введи символ’);
readln (c);
if ( c>=’a’) and (c<=’z’) then
K[c]:= K[c]+1;
Until c=’*’;
writeln ('Кількість букв ‘);
{Цикл виведення результатів}
for c:=’a’ to ’z’ do
write (c,’=’,K[c]:2);
writeln;
readln;
end.
Приклад 5.Визначити, чи елементи заданого масиву 10 дійсних значень розташовані в зростаючому порядку. Перегляд масиву припинити при порушенні порядку.
В таких задачах цикл може припинитись в двох випадках; якщо переглянуто всі елементи і якщо знайдено порушення. В такому разі не можна використовувати цикл з параметром, хоча кількість членів масиву відома. Невизначеність повторів вносить умова порушення порядку. В таких випадках доцільно ввести логічну змінну, яка змінює своє значення на протилежне при визначенні порушення порядку розташування членів масиву. Індекс масиву необхідно рахувати окремо.
По завершенні циклу по значенню цієї змінної можна визначити чи було порушення.
PROGRAM posled;
{Визначення, чи елементи масиву розташовані в зростаючому порядку.}
var
M:array [1..10] of real;
i:byte;
b:Boolean;
{M – масив значень
i - змінна циклу
b - =true, якщо елементи в зростаючому порядку, false - якщо ні }
begin
for i:=1 to 10 do
begin
write ('введи число');
readln(M[i]);
end;
b:=true;
i:=1;
while (i<10) and b do
begin
if M[i+1]< M[i] then
b:=false;
i:=i+1;
end;
if b then
writeln ('Елементи масиву зростають’)
else
write ('Елементи не масиву зростають’);
readln;
end.
Приклад 6.Визначити значення виразу:
В даному прикладі необхідно знайти суму, елементами якої є вираз, елементами якого є два масиви A і B. Розмір масивів можна визначити з знаку суми, де вказано, що треба скласти 15 елементів.
Щоб знайти значення цього виразу необхідно заповнити значеннями масиви і , крім того, ввести значення для змінної m.
PROGRAM suma;
{Визначення значення виразу з сумою.}
var
A,B:array [1..15] of real;
k:byte;
S:real;
{A,B – масиви значень
k - змінна циклу
S - сума}
begin
for k:=1 to 15 do
begin
write ('Введіть 2 числа');
readln(A[k],B[k]);
end;
write ('Введіть значення m');
readln(m);
S:=0;
for k:=1 to 15 do
S:=S+(A[k]+B[k])/(k+5);
S:=15*m+7*S;
writeln (‘S=’,S:8:3);
readln;
end.