Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний технічний університет України
“Київський політехнічний інститут”
Кафедра ОТ
ЗВІТ
про виконання лабораторної роботи № 5.1
з дисципліни
“Основи програмування та алгоритмічні мови”
Тема: ОДНОВИМІРНІ МАСИВИ
Варіант 28
Постановка задачі
Заданий одновимірний масив А(n) цілих чисел. Визначити, скільки елементів масиву А задовільняють умові | ai | < i2; замінити кожен із таких елементів залишком від ділення його квадрату на n. Якщо таких елементів немає, вивести відповідне повідомлення. Надрукувати вхідний масив, визначену кількість елементів та вихідний масив (при їх наявності).
Аналітичні викладкиПоелементно перевіряємо відповідність чисел умові і у задовільному випадку замінюємо елемент залишком від ділення його квадрату на n.
Блок-схема алгоритму розв’язання задачі
Текст програми
program lab_5_1;
uses crt;
const n = 10;
type mas=array[1..n] of integer;
bolmas=array[1..n] of boolean;
var a,b:mas; {масиви даних}
s, {кількість замін}
i: integer;
z,v:char;
mask1,mask2:bolmas;
{Обчислення кількості замін}
Function kilkist(const a:mas):integer;
begin
s := 0;
for i:=1 to n do
if (abs(a[i])) < (i*i) then
s := s + 1;
kilkist := s;
end;
{Виконання замін (основна задача)}
Procedure zamina(const a:mas; var b:mas; var mask:bolmas);
begin
for i:=1 to n do
if (abs(a[i])) < (i*i) then
begin
b[i] := (a[i]*a[i]) mod n;
mask[i] := True;
end
else
begin
mask[i] := False;
b[i] := a[i];
end;
end;
{генерація}
Procedure input (var a:mas; var mask:bolmas);
begin
write ('Vvesti massiv? (y/n) ');
readln (v);
if (v='y') or (v='Y') then
for i := 1 to n do
begin
mask[i] := False;
readln(a[i])
end
else
for i:=1 to n do
begin
mask[i] := False;
a[i] := random(10*n);
end
end;
{виведення}
Procedure output(const v:mas; const mask:bolmas);
begin
for i:=1 to n do
if mask[i] = True then
begin
textcolor(13);
write(v[i]:5);
textcolor(0);
end
else write (v[i]:5);
writeln;
end;
begin
TextBackGround(7);
clrscr;
REPEAT
randomize;
input(a,mask1);
output(a,mask1);
zamina(a,b,mask2);
output(b,mask2);
s := kilkist(a);
writeln ('Kilkist elementiv ', s);
write('Repeat?(y/n) ');
readln(z);
UNTIL (z <> 'y') and (z <> 'Y');
end.
Результати виконання програми
/
Висновок
Під час виконання лабораторної роботи я набув навичок роботи з одномірними масивами.
Правильність обчислень легко перевірити за допомогою калькулятора (елементи, які були замінені, підсвічені).
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!