Конспект уроку №10 (Основи алгоритмізації та програмування 3 частина )
Я потом доделаю:)
1. Що ми розуміємо під масивом?
Масив (array) — це скінчений нaбip елеменів одного (базового) типу, які зберігаються в послідовно розташованих комірках оперативної пам'яті i мають спільну назву.
Вчитель визиває двох учнів, які виправляють зроблені навмисно помилки у записі одно- і двовимірного масивів
aray [<poзмip>] ot <назва базового типу>;
3. Як задають кількість елементів? Розмір масиву найчастіше задають у вигляді діапазону або назви деякого перерахованого типу даних.
Задача 1. Нехай ук, — це число викликів,які поступають на АТС за к-ту секунду. Припустимо, що ук, — випадкове число зі значенням від 0 до 6, яке генеруеться формулою ук=trunc(abs(7sin(fe))). Утворити масив у з десятьма елементами (k = 1,10). Обчислити суму викликів за перші 10 секунд роботи АТС та максимальну кількшть викликів,що були за деяку одну секунду. Вивести результати обчислень.
program ATS;
uses Crt;
type vyklyk= array[1..10] of integer; var y: vyklyk; max,s,i: integer;
begin
clrscr;
max:=0; s:=0; {Припустимо, що max=0)
for i: = l to 10 do
begin {Обчислимо кількість викликів)
y[i]:=trunc(abs(7*sin(i))); {за i-my секунду)
write('Кількість викликів за ',i,'-Ty секунду: ');
writeln(y[i]:5); {Виведемо цю кількість)
s:=s+y[i]; {Обчислимо суму викликів)
if y[i]>max then max:=y[i]; {Обчислимо max значения )
end;
writeln(Кількість викликів за 10 секунд = ",s:3);
write('Максимальна кількість викликів за одну ');
writeln( 'секунду = мах:3);
readln
end.
Зауваження. Випадкове ціле число зі значениям від 0 до 6 можна згенерувати також за допомогою функції random(7). На початку виконуваного блоку слід записати виклик процедури randomize (Вона забезпечить іншу послідовність випадкових чисел під час виконання програми вдруге).
Зауваження.. На основі зауваження модифікуйте програму ATS i визначіть, під час якої секунди надішла максимальна кількість викликів
.Елементи двовимірного масиву (дані можуть бути подаю у вигляді таблиці)
визначаються іменем масиву та двома ідексами: перший ідекс означав номер рядка, а другий — номер стовпця, на перетині яких стоїть елемент, наприклад р[1,2] .
Задача 4. Кондитерська фабрика для виготовлення п'яти сортів цукерок використовує п'ять видів сировини. Нехай норми затрат аij кожного виду сировини i на виробництво 1т цукерок сорту j заданi формулою аij = 2|sin(j)| +j , i,j= l..5.
Вивести на екран таблицю затрат сировини (тобто масив а). Визначити для якого сорту цукерок (imin) потрібно найменше сировини (min) третього виду.
program Fabryka;
uses Crt;
type vytraty = array [1..5,1..5] of real;
var i.j.imin: integer; min: real; a:vytraty;
begin
clrscr;
writelnf("Вид сировини");
writelnC 1 2 3 4 5 );
for i:=l to 5 do {Утворимо таблицю затрат)
begin
write(i,' сорт');
for j: = l to 5 do
begin
a[i,j]:=2*abs(sin(i)) +j;
write(a[i,j]:7:2); {Роздрукусмо елементи i го рядка) end;
writeln [Перейдемо на новый рядок)
end;
imin: = l; {Припустимо, що найменше сировини третьего)
min:=a[l;3]; {виду потребно для цукерок першого сорту)
for i:=2 to 5 do
if a[i,3]<min then
begin {Визначимо шуканий сорт цукерок)
min:=a[i,3];
imin:=i
end;
writeln('Найменше сировини третього виду ');
writeln('потрібно для цукерок ‘,imin,’ сорту');
readln
end.