Розв ‘язання: Очевидно, що для обчислення результату цієї задачі спочатку необхідно знайти чисельник та знаменник дробу. Причому звернітьувагу на те, що кількість доданків і в одному, і в другому випадкахдорівнює 15, тільки в чисельнику вибираються елементи масивів з непарними індексами, а в знаменнику — із парними. Щоб організуватизміну індексів за заданим законом, можна скористатися таким штучнимприйомом: якщо в циклі з параметром індекс і змінюється від 1 до п, тодля отримання непарних чисел з проміжку [1..2п] використовуєтьсяформула: 2*і - 1 .
Запропонуйте дітям подумати, яка формула дасть змогу отримати парні числа (2*і). Використовуючи ці співвідношення, програма для розв’язку цієї задачі має вигляд:
Program Example_318_4;
Uses crt;
Var A,B:array[l..30] of real;
{А,В — масиви для зберігання вхідних даних}
і:byte; {і — змінна циклу}
Rl,R2:real; {R1 — чисельник дробу, R2 - знаменних дробу}
Rez:real; {Rez - результат обчислень}
Begin
Randomize;
Clrscr;
Writeln(‘Масив А:’);
For i:=1 to 30 do
Begin
A[i]:=random(200)/7-random*15; Write(A[i]:8:2);
End;
Writeln;
Writeln(‘Масив В:’);
For i:=1 to 30 do
Begin
B[i]:=random*200-random*100; Write(B[i]:8:2);
End;
Writeln;
Rl:=0; R2:=0; {Початкові значення дорівнюють 0, тому що результат є накопиченням суми}
For і:«і to 15 do
Begin
R1 := R1+(A[2*i-1]+B[2*i-1]) ; R2 := R2+(A[2*i]+B[2*i]) ;
End;
Rez:=Rl/R2;
Writeln(‘Результат обчислень = ‘,Rez:8:2);
Readkey;
End.
Домашнє завдання
• Задачі№ 301,303,313,315(2,3), 318(2,5).
УРОК 24. Двовимірні таблиці
Мета уроку: Дати поняття двовимірних таблиць. Навчити розв’язувати типові задачі з обробки двовимірних таблиць.
Двовимірний масив — це масив, де кожному елементу ставиться у відповідність два індекси.
Напрямок зміни другого індексу —>
1
2
3
…
I
…
m
1
2
3
…
n
Напрямок
зміни першого
індексу ↓
Для початку роботи з масивом готуємо місце в пам’яті.
Для цього описуємо його в розділі оголошень, використовуючи зарезервоване слово Array , після якого в квадратних дужках вказуємо розмірність масиву, причому враховуємо, що на першому місці вказуються індекси рядків, а на другому - стовпчиків, і обов’язково — тип елементів.
Опис двовимірного масиву:
var
<���Ім’я_масиву>: array[<���поч_інд_рядкiв>..<���кін_інд_рядків>,
<���поч_інд_ставп>. .<���кін_інд_стовп>] of <���базовий_тип_елементів>;
Приклад опису:
Const n:=100; m:=100; Var A:array[1..n,1..m] of real;
D:array[l..10,1.100] of integer;
Зверніть увагу на те, що значень у рядках або стовпчиках масиву не обов’язково буде стільки, скільки ми оголосили, але не більше!
Звертання до елементу двовимірного масиву: їм’я_масиву[<���індекс_рядка>, <���хнд_стовпчика>]
Заповнення масиву:
• з клавіатури:
for i:=1 to n do
for j:=1 to m do
begin
write (‘введіть A[‘i,’,’,j,’]: ‘) ;
readln(A[i,j])
end;
• за формулою:
for і:=1 to n do
for j:=1 to m do
A[i,j]:=i*i-10 {або будь-яка інша формула};
• випадковим чином із проміжку [K,L]:
for і:=1 to n do
for j:=1 to m do
A[і,j]:=random(L-K)+K;
Виведення двовимірного масиву на екран
for і:=1 to n do
begin
for j:=1 to m do write(A[i,j]:8); {виведення в рядок}
writeln; {перехід на новий рядок}
end;
Виведення в рядку необхідно обов’язково форматувати, щоб не трапилося «злипання» елементів (дивись приклад вище).
Як уже було зазначено, для роботи з масивом потрібен будь-який оператор повторення. Очевидно, що у двовимірному масиві необхідно використовувати два оператори повторення: один цикл, внутрішній, потрібен для переходу між елементами рядка (тобто, по стовпчиках), а другий, зовнішній, — для переміщення між рядками. Якщо в матриці кількість рядків і стовпчиків однакова, то таку матрицю називають квадратною (на відміну від звичайної прямокутної таблиці). Тільки в квадратних матрицях існують головна та бічна діагоналі (дивись малюнок):
Читать дальше