Параграф 16

Працюємо в парах

1. Мовами програмування Free Pascal, Python запишіть фрагмент програми, у якій будуть реалізовані такі завдання:
1) П'ятому елементу лінійної таблиці з 10 елементів надати значення 123:

var a:array[1..10] of Integer;
i:Integer;
begin
Writeln ('Початковий масив');
for i:=1 to 10 do
begin
a[i]:=Random(200);
Write (a[i],' ');
end;
Writeln;
a[5]:=123;
Writeln ('Отриманий масив з 5-м елементом, який дорівнює 123:');
for i:=1 to 10 do Write(a[i],' ');
Writeln;
Readln;
end.

2) Першому елементу лінійної таблиці з 10 елементів надати значення восьмого цієї ж таблиці:

var a:array[1..10] of Integer;
i:lnteger;
begin
Writeln ('Початковий масив');
for i:=1 to 10 do
begin
a[i]:=Random(10);
Write (a[i],' ');
end;
Writeln;
a[i]:=a[8];
Writeln (Отриманий масив');
for i:=1 to 10 do Write(a[i],' ');
Writeln;
Readln;
end.

3) Елементу з номером і лінійної таблиці надати значення 15.5.
Оскільки в умові по зазначено розмір масиву та процедуру надання вказаного значення, то розширимо її до реалізованого нижче алгоритму: нехай всього в результаті ми отримаємо таблицю з 5 елементів (const n = 5), початково вказавши 4. Алгоритм ідеї розв'язку виглядає наступним чином: перед тим, як вставити елемент у вказану позицію масиву, потрібно всі елементи, починаючи з доданої позиції пересунути на один назад. Таким чином комірка із вказаним номером стає вільною, та в неї можна помістити число, яке дано за умовою.
4) Для виконання даного завдання можна скористатись реалізацією попередньої задачі (3).
5) Другому елементу лінійної таблиці з 10 елементів надати значення вмісту цієї клітинки збільшене вдвічі.

var a:array[1..10] of real;
i:Integer;
begin
Writeln ('Початковий масив');
for i:=1 to 10 do
begin
a[i]:=Random(9)+1;
Write (a[i],' ');
end;
Writeln; a[2]:=a[2]*2; .
Writeln ('Отриманий масив:');
for i:=1 to 10 do Write(a[i],'');
Writeln;
Readln;
End.

2. Мовами програмування Free Pascal, Python запишіть фрагмент програми, у якій перевірятимуться такі умови:
2) Вміст кожного елементу лінійної таблиці належить заданому відрізку:

var a: array[1..100] of real;
i, n: Integer;
begin
write ('Зазначте кількість елементів');
readln (n);
for i:=1 to n do
begin
a[i]:= Random(10)+5;// заповнює масив елементами в діапазоні від 5 до 15
writeln (a[i],' ');
end;
end.

Реалізація проекту у середовищі Lazarus (кількість елементів 10, діапазон від 0 до 100):

unit Unit1;
{Smode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Grids,
StdCtrls;
type
TForm1 }
TForml = class(TForm)
Buttonl: TButton;
StringGridl: TStringGrid;
procedure ButtonlClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
procedure ArrayCreate;
public
{ public declarations }
end;
var
Form1: TForm1;
i: Integer;
a: array [1 ..10] of Integer;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.ArrayCreate;
begin
Randomize;
for i:= 0 to 9 do
begin
a[i + 1] := Random(100);
StringGrid1.Cells[i, 0] := FloatToStrF(i + 1, ffFixed, 2, 0);
StringGrid1.Cells[i, 1] := FloatToStrF(a[i + 1], ffFixed, 2, 0);
end; end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ArrayCreate;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ArrayCreate;
end;
end.

Працюємо самостійно

4. У вибраному середовищі програмування створіть проект Підрахунок, у якому знаходять суму додатних і кількість від’ємних елементів лінійної таблиці дійсного типу.
Програма «Підрахунок», у якій знаходиться сума додатних та кількість від'ємних елементів лінійної таблиці дійсного типу.

const N = 10;
var
a: array[1..N] of real;
sum_pos: real
i, kol_neg: byte;
begin
randomize;
pos := 0;
neg := 0;
for i:=1 to N do begin
a[i] random(10)-5;
write(a[i]:2);
if a[i] < 0 then
kol_neg := kol_neg + 1
else
if a[i] > 0 then
sum_pos := sum pos + a[i];
end;
writeln;
writeln (Сума додатних елементів: ', sum_pos)
writeln (Кількість від’ємних елементів: ', kol_neg);
end.

Зворотній зв’язок