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

Завдання з розв'язками до тематичного оцінювання з теми "Одновимірні масиви."

  1. Описати масив оцінок з тематичної атестації 20 учнів.

Відповідь: oc:array[1..20] of integer;

  1. Описати масив цін 5 товарів на складі.

Відповідь:Var cena: array [1..5] of real;

  1. Описати масив назв семи шкільних предметів.

Відповідь:Var nazva: array [1..7] of string;

  1. Третьому елементу масиву а присвоїти число 255;

A[3]:=255;

  1. Десятий елемент масиву а збільшити вдвічі;

A[10]:= A[10]*2;

  1. Третій елемент масиву а зменшити на 100.

A[3]:= A[3]-100;

  1. Сьомий елемент масиву поділити на другий.

A[7]:= A[7]/ A[2];

  1. Записати команди вводу масиву назв пір року.

Відповідь:

For i:=1 to 4 do begin

Writeln(‘введіть назву пори року’);

Readln(nazva[i]);

End;

  1. Записати команди вводу масиву десяти оцінок.

Відповідь:

For i:=1 to 10 do begin

Writeln(‘введіть оцінку’);

Readln(oc[i]);

End;

НАПИСАТИ ТЕКСТИ ПРОГРАМ

  1. Видрукувати всі елементи масиву, які більші від 0,5.

Відповідь:

Program q11;

Var a:array[1..100] of real;

I,n:integer;

Begin

Writeln(‘Введіть кількість елементів’);

Readln(n);

for i:=1 to n do begin

writeln(‘Введіть елемент масиву’);

readln(a[i]);

end;

for i:=1 to n do if a[i]>0.5 then writeln(a[i], ‘>0,5’);

readln;

end.

  1. Заданий масив a[1..8]. Побудувати масив d[1..8] за таким правилом

D[i]=2a[i].

Відповідь:

Program q2;

Var a,d:array[1..8] of real;

I,n:integer;

Begin

for i:=1 to 8 do begin

writeln(‘Введіть елемент масиву’);

readln(a[i]);

end;

for i:=1 to 8 do d[i]:=2*a[i];

for i:=1 to 8 do write(d[i]:6);

readln;

end.

  1. Мінімальний елемент масиву b[1..6] збільшити у 7 разів. Впорядкувати елементи масиву за спаданням.

Відповідь:

Program q12;

Var b:array[1..6] of real;

Nom,I,j:integer; min,c:real;

Begin

for i:=1 to 6 do begin

writeln(‘Введіть елемент масиву’);

readln(b[i]);

end;

min:=b[1]; nom:=1;

for i:=1 to 6 do

if b[i] < min then begin

min:=b[i]; {знаходимо мінімальний елемент}

nom:=I; {та його номер}

end;

b[nom]:=b[nom]*7; {збільшуємо мінімальний елемент у 7 разів}

for i:=1 to 5 do

for j:=2 to 6 do

if b[i]<b[j] then begin

c:=b[i]; {впорядковуємо елементи масиву за

b[i]:=b[j]; спаданням}

b[j]:=c;

end;

for i:=1 to 8 do write (b[i]:8:2); {виводимо впорядкований масив на

readln; екран}

end.

  1. Заданий масив народження п’яти учнів. Дати відповідь, чи хтось народився у жовтні.

Відповідь:

Program q13;

Var m:array[1..5] of integer;

I,k:integer;

Begin

for i:=1 to 5 do begin

writeln(‘Введіть номер місяця народження учня’);

readln(m[i]);

end;

k:=0;

for i:=1 to 5 do if m[i]=10 then k:=k+1; (підрахунок тих, хто народився

у жовтні)

if k>o then writeln(‘Так ,’ , k , ‘учнів народилося у жовтні’)

else writeln (‘Ні, таких немає’);

readln;

end.

  1. Найбільший елемент масиву P[1..9] замінити на його квадрат. Впорядкувати елементи масиву за зростанням.

Відповідь:

Program q14;

Var p:array[1..9] of real;

Nom,I,j:integer; max,c:real;

Begin

for i:=1 to 9 do begin

writeln(‘Введіть елемент масиву’);

readln(p[i]);

end;

max:=p[1]; nom:=1;

for i:=1 to 9 do

if p[i] > max then begin

max:=p[i]; {знаходимо максимальний елемент}

nom:=I; {та його номер}

end;

p[nom]:=sqr(p[nom]); {змінюємо максимальний елемент на його квадрат}

for i:=1 to 8 do

for j:=2 to 9 do

if p[i]>p[j] then begin

c:=p[i]; {впорядковуємо елементи масиву за

p[i]:=p[j]; зростанням}

p[j]:=c;

end;

for i:=1 to 9 do write (p[i]:8:2); {виводимо впорядкований масив на

readln; екран}

end.

  1. Додатні елементи масиву a[1..8] зменшити на 5, а від’ємні збільшити на число 2.

Відповідь:

Program q15;

Var a:array[1..8] of real;

I:integer;

Begin

for i:=1 to n do begin

writeln(‘Введіть елемент масиву’);

readln(a[i]);

end;

for i:=1 to n do begin

if a[i] > 0 then a[i]:=a[i]-5 ; {зменшення на 5 додатного елемента}

if a[i] < 0 then a[i]:=a[i]+2; {збільшення не 2 від’ємного елемента}

end;

for i:=1 to n do write(a[i]:8:2);

readln;

end.

  1. В масиві a[n] мінімальний і максимальний елементи поміняти місціями.

Відповідь:

Program q16;

Var a:array[1..100] of integer;

I , n, nommin, nommax, max, min:integer;

Begin

Writeln(‘Введіть кількість елементів’);

Readln(n);

for i:=1 to n do begin

writeln(‘Введіть елемент масиву’);

readln(a[i]);

end;

min:=a[1]; nommin:=1;

max:=a[1]; nommax:=1;

for i:=1 to n do

if a[i] > max then begin

max:=a[i]; {знаходимо максимальний елемент}

nommax:=I; {та його номер}

end;

if a[i] <min then begin

min:=a[i]; {знаходимо мінімальний елемент}

nommin:=I; {та його номер}

end;

a[nommax]:=min; {максимальний елемент замінили мінімальним}

a[nommin]:=max; {мінімальний елемент замінили максимальним}

for i:=1 to n do write(a[i]:8);

readln;

end.

  1. Визначити кількість елементів масиву a[n], більших від числа 1000.

Відповідь:

Program q17;

Var a:array[1..100] of integer;

I , n, k:integer;

Begin

Writeln(‘Введіть кількість елементів’);

Readln(n);

for i:=1 to n do begin

writeln(‘Введіть елемент масиву’);

readln(a[i]);

end;

k:=0;

for i:=1 to n do

if a[i] > 1000 then k:=k+1;

writeln(‘k= ’ , k);

readln;

end.

  1. Задані два масиви a[1..10] і b[1..10], у якому із них менше від’ємних елементів?

Відповідь:

Program q18;

Var a, b:array[1..10] of integer;

I , ka, kb :integer;

Begin

for i:=1 to 10 do begin

writeln(‘Введіть елемент масиву a’);

readln(a[i]);

end;

for i:=1 to 10 do begin

writeln(‘Введіть елемент масиву b’);

readln(b[i]);

end;

ka:=0; kb:=0;

for i:=1 to 10 do begin

if a[i] < 0 then ka:=ka+1; {рахунок від’ємних елементів масиву а}

if b[i] < 0 then kb:=kb+1;{ рахунок від’ємних елементів масиву b}

end;

if ka < kb then writeln(‘менше від’ємних елементів в масиві а’) else if ka=kb then writeln(‘від’ємних елементів порівну’) else writeln(‘менше від’ємних елементів в масиві b’)

readln;

end.

  1. Барон Мюнхгаузен, вийшовши на полювання, зарядив свою рушницю кісточками вишень. Після того, як він вдало влучив поміж роги оленям (в яких влучило відповідно k1, k2, ..., kN кісточок), у них на головах виросли чудові молоді вишеньки. Скільки саджанців зміг подарувати барон Мюнхгаузен садівникам дослідникам?

Відповідь:

Program q19;

Uses crt;

Var N:word; {N — кількість оленів}

К:аггау[1..100] of integer; {K — зарезервований масив для зберігання кількості кісточок, що влучили в оленів)

і,Sum:integer; {і — змінна циклу, Sum — загальна кількість кісточок, що влучили в оленів}

Begin

Randomize; {Ця процедура запускається з метою зробити числа генератора випадкових чисел більш «випадковими»)

Clrscr; {очищення екрану}

Sum:=0; {На початку роботи програми Мюнхгаузен ще ні в кого не влучив)

Write('Введіть кількість оленів, в яких влучив Мюнхгаузен (<=100): ');

Readln(N);

For і:=1 to N do Begin к[і] :=random(50)+20{Заповнення массиву випадковими числами в діапазоні від 20 до 70)

Write(K[i]:5); Виведення масиву на екран для контролю правильності роботи програми}

Sum:=Sum+K[i];

End;

Writeln; {Переведення курсору на новий рядок)

Writeln( ' Кількість нових саджанців ‘, Sum) ;

Readkey; {Затримка зображення на екрані)

End.

  1. Середню групу дитячого садочка вивели на прогулянку. Скільки дівчаток і скільки хлопчиків видно з-за паркану, якщо зріст хлопчиків задається у сантиметрах від'ємними числами, а дівчаток — додатними у вигляді цілих значень a , а , ..., а ? Крім того, у всіх дівчаток на голівках зав'язані бантики заввишки 10 см, а висота паркану Н см.

Розв'язання:

Program q20;

Uses crt;

Var N,H:word; {N — кількість дітей в дитсадочку, Н — висота паркану)

А:array[1..100] of integer; {A — зарезервований масив для зберігання зросту дітей)

і,kd,kx:integer; {і — змінна циклу, kd — кількість дівчаток, kx-кількість хлопців)

Begin

Randomize;

Clrscr;

kd:=0 ; kx:=0;

Write('Введіть висоту паркану: ');

Readln (Н) ;

Write('Введіть кількість дітей в дитсадочку : ') ;

Readln(N);

For і:=1 to N do Begin

A[i]:=random(300)-150; {Заповнення масиву випадковими числами в діапазоні від —150 до +150}

Write(А[і]:5); {Виведення масиву на екран для контролю правильності роботи програми)

if (A[I]<0) and (abs(A[I])>H) then kx:=kx+l;

if (A[I]>0) and (A[I]+10>H) then kd:=kd+1;

End;

Write ( 'Кількість хлопчиків, що видна із-за паркану ' ) ;

Writeln (kx) ;

Write ( 'Кількість дівчаток, що видна із-за паркану , ) ;

Writeln (kd) ;

Readkey; {Затримка зображення на екрані}

End.

  1. Умова: Дано дійсні числа а1951, а1952, ..., а2002 — кількість опадів (у мм), що випали у місті за останні 52 роки минулого століття. Обчислити середню кількість опадів за цей період і щорічне відхилення від середнього значення.

Розв'язання:

В цій задачі доведеться організовувати проходження по масиву двічі, оскільки першим проходженням ми знайдемо тільки суму всіх опадів, що випали за останні 50 років, а потім, поділивши отриманий результат на 50, знайдемо середню кількість опадів за вказаний період.

Другим же проходженням ми можемо вже визначити щорічне відхилення від середнього значення, причому для того, щоб не втратити вхідні дані, зарезервуємо в програмі ще один масив на 50 дійсних чисел для зберігання цих результатів.

Program q21;

Uses crt;

Var N,і:integer; (N — кількість елементів масиву, і — змінна циклу}

A : array [1951. .2002] of real; {A - масив для зберігання кількості опадів у відповідному році}

В:array[1951..2002] of real; {В - масив для зберігання відхилення від середнього значення}

Begin Randomize;

Clrscr;

Sum:=0;

For і:=1951 to 2000 do Begin

A[i]:=random(500)/7; (Заповнення масиву випадковими дійсними числами}

Write(A[i]:8:2); (Виведення масиву на екран для контролю правильності роботи програми)

Sum:=Sum+A[i];

End;

Sum:=Sum/52; (Знаходження середньої кількості опадів за рік}

Writeln;

Writeln('Щорічні відхилення від середньої кількості опадів за період 1951 — 2003 p.p.');

For і:=1951 to 2000 do Begin

В [і]:=Sum — А [і]; (Знаходження щорічного відхилення}

Write(В[і]:8:2); (Виведення результатів на екран)

End;

Readkey; (Затримка зображення на екрані}

End.

  1. Відома кількість автобусів, що обслуговують автовокзал, кількість пасажирських місць у кожному автобусі, а також щоденна кількість рейсів кожного автобуса. Визначити максимальну кількість пасажирів, яку можуть перевезти всі автобуси разом за тиждень.

Розв'язання:

Program q22;

Uses crt;

Var kavto,kpas:word;

А:array[1..100] of byte; {кількість пасажирських місць у кожному

з автобусів}

b:array[1..100] of byte; {щоденна кількість рейсів кожного автобуса}

і:integer; {і — змінна циклу}

Begin

Write('Введіть кількість автобусів ');

Readln (kavto) ;

For і:=1 to kavto do Begin

Writeln(‘Введіть кількість пасажирських місць у ’, I ,’автобусі’);

Readln(a[i]);

Writeln(‘Введіть кількість рейсів ’, I ,’- го автобуса’);

Readln(b[i]);

End;

Kpas:=0;

For і:=1 to kavto do Begin Kpas:= Kpas+a[i]*b[i];

Writeln (‘Максимальна кількість пасажирів = ’, kpas);

Readkey; {Затримка зображення на екрані}

End.

  1. Відома кількість кают океанського лайнера, а також кількість пасажирських місць у кожній каюті. Визначити номера всіх кают, у яких максимальна кількість місць.

Розв'язання:

Program q23;

Uses crt;

Var kkajut, max:word;

kpmest:array[1..1000] of byte; {масив кількості пасажирських місць у кожній з кают}

і:integer; {і — змінна циклу}

Begin

Write('Введіть кількість кают ');

Readln (kkajut) ;

For і:=1 to kkajut do Begin

Writeln(‘Введіть кількість пасажирських місць у ’, I ,’каюті’);

Readln(kpmest [i]);

End;

max:= kpmest [1];

For і:=2 to kkajut do {знаходження максимальної кількості

If kpmest [i]>max then max:= kpmest [i]; пасажирських місць у каюті}

For і:=1 to kkajut do

If kpmest [i]=max then writeln(‘Каюта з номером ’,I, ‘має максимальну кількість місць’);

Readkey; {Затримка зображення на екрані}

End.

  1. Відома кількість учнів у кожному з k класів школи. Визначити скільки всього учнів навчається в тих класах школи, у яких не менше ніж 30 чоловік.

Розв'язання:

Program q24;

Var a:array[1..100] of integer;

I , n, s:integer;

Begin

Writeln(‘Введіть кількість класів у школі’);

Readln(n);

for i:=1 to n do begin

writeln(‘Введіть кількість учнів у класі’);

readln(a[i]);

end;

s:=0;

for i:=1 to n do

if a[i] > =30 then s:=s+a[i];

writeln(‘В цих класах навчається всього ’ , s, ‘ учнів’);

readln;

end.

  1. Відома кількість кают океанського лайнера, а також кількість пасажирських місць у кожній каюті. Визначити кількість пасажирів, яких можна буде розмістити в тих каютах, у яких максимальна кількість місць.

Розв'язання:

Program q25;

Uses crt;

Var kkajut, max,k,vsego:word;

kpmest:array[1..1000] of byte; {масив кількості пасажирських місць у кожній з кают}

і:integer; {і — змінна циклу}

Begin

Write('Введіть кількість кают ');

Readln (kkajut) ;

For і:=1 to kkajut do Begin

Writeln(‘Введіть кількість пасажирських місць у ’, I ,’каюті’);

Readln(kpmest [i]);

End;

max:= kpmest [1];{нехай максимальна кількість місць у першій каюті}

For і:=2 to kkajut do {знаходження максимальної кількості

If kpmest [i]>max then max:= kpmest [i]; пасажирських місць у каюті}

For і:=1 to kkajut do

If kpmest [i]=max then k:=k+1; {підрахунок кількості кают з максимальною кількістю місць}

Vsego:=k*max;

Writeln(‘У каютах з максимальною кількістю місць можна розмістити’, vsego, ’ пасажирів’);

Readkey; {Затримка зображення на екрані}

End.