Вы находитесь на странице: 1из 6

Министерство науки и высшего образования Российской Федерации

Федеральное государственное автономное образовательное учреждение


высшего образования
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Инженерная школа информационных технологий и робототехники


Отделение информационных технологий
Направление информатика и вычислительная техника

Лабораторная работа №2
Массивы

Вариант 5

по дисциплине: Web - программирование

Выполнил: студент гр. 8В8Б ____________ Кунцевич В.Д.

Проверил: ____________ Небаба С.Г.

Томск 2020
Задание

Напишите программу, чтобы найти наиболее частый элемент массива.

Листинг программы

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script>
'use strict';
let arr = [];
let staticCount = 0;
let num;
let count, countMax,all;
let flag = 0;
all = prompt('Введите количество элементов в вашем массиве:');
while (all < 0 || isNaN(all))
{
alert('Введено недопустимое значение количества элементов в массиве
(Используйте целое положительное число).');
all = prompt('Введите количество элементов в вашем массиве:');
}
for (let i = 0; i<all; i++)
arr[i] = prompt('Введите элемент массива №'+(i+1)+': ')
let arrsave=arr.concat();

function finder(array)
{
num = arr[0];
countMax = 1;
for(let i=0; i<(all-1);i++)
{
count = 1;
for(let j =i+1; j <= all; j++)
{
if (array[i] == array[j])
count = count + 1;
}
if (count > countMax)
{
countMax = count;
num = array[i];
}
}
2
if (countMax == staticCount)
{
alert('Но и он не один. Ещё один наиболее частый элемент в массиве - '+ num
+'. Он встречается '+ countMax +' раз(-a).\n'+'Массив: '+arrsave);
deleter(arr,num,all);
}
if (countMax > 1 && flag == 0)
{
flag = 1;
staticCount = countMax;
alert('\nНаиболее частый элемент в массиве - '+ num +'. Он встречается '+
countMax +' раз(-a).\n'+'Массив: '+arrsave);
deleter(arr,num,all);
}
if (countMax == 1 && flag == 0)
alert('Самых частых элементов в массиве нет.')
}

finder(arr);

function deleter(array,target,arrayInd)
{
let count = 0;
if (array[0] == target)
{
array.splice(0,1);
count++;
}
for (let i=0;i<arrayInd;i++)
{
if (array[i] == target)
{
array.splice(i,1);
i--;
count++;
}
}
all = array.length;
finder(array);
}
</script>
</body>
</html>

Результаты работы

3
Рисунок 1 – Окно с вводом количества элементов в массиве

Рисунок 2 – Окно с вводом n-го элемента массива

4
Рисунок 3 – Результат программы

Рисунок 4 – Обработка события, когда в массиве есть 2 или больше


наиболее частых элементов массива

5
Рисунок 3 – Результат при отсутствии наиболее частого элемента в
массиве

Вывод

В ходе лабораторной работы были освоены некоторые возможности


работы с функциями, разобраны методы работы с массивами (заполнение,
удаление элементов в массиве) и т.п.

Оценить