ВУЗ:
Составители:
Рубрика:
192
if a[i]=a[j] then f:=true else j:=j+1;
if not f then c:=c+1.
Пример 11.52. Задан одномерный целочисленный массив. Найти количество
элементов, которые входят в него только один раз. Например, в массиве {1, 2, 1, 3,
2, 1} это количество равно 1.
Решение. Для каждого элемента массива просматриваем все оставшиеся. Если
среди оставшихся элементов нет равных проверяемому, то счетчик количества
входящих в массив только один раз элементов увеличивается на 1.
d:=0; {количество элементов, входящих в массив только один раз}
for i:=1 to n do
begin
j:=1; f:=false;
while (j<=n) and not f do
if i<>j {проверяемый элемент пропускаем}
then if a[i]=a[j] then f:=true else j:=j+1
else j:=j+1;
if not f then d:=d+1.
Пример 11.53. Задан одномерный целочисленный массив. Найти количество
элементов, которые входят в него более чем один раз. Например, в массиве {1, 2, 1,
3, 2, 1} это количество равно 2.
Решение. Для каждого элемента массива i, если ему нет равных слева (j=1, ..., i-
1), разыскиваются равные справа (j=i+1, ..., n). Если справа обнаруживается
элемент, равный просматриваемому, то счетчик количества таких элементов
увеличивается на 1.
Решение этой задачи можно получить на основе решений предыдущих задач.
Для этого нужно из результата решения задачи 11.51 вычесть результат решения
задачи 11.52.
Упражнения:
1. Запишите на Паскале первый вариант решения задачи 11.53.
2. Проверьте справедливость второго варианта решения задачи 11.53.
Пример 11.54. В одномерном массиве хранятся результаты социологического
опроса. Написать программу для подсчета количества результатов, отклоняющихся
от среднего не более чем на 7%.
Решение. Решим задачу, используя два цикла. В первом находится среднее
арифметическое значение. Во втором подсчитывается количество элементов,
попавших в интервал [0.93·ср_ар.; 1.07·ср_ар.]. Сумму элементов массива можно
найти в момент ввода значений.
program task11_54;
var a : array [1..100] of integer; { массив для хранения результатов
социологического опроса }
n : integer; { количество результатов опроса }
as : real; { среднее значение }
i : integer; { индекс элементов массива }
m : integer; { количество
результатов, отклоняющихся от среднего не
более чем на 7% }
begin
192 if a[i]=a[j] then f:=true else j:=j+1; if not f then c:=c+1. Пример 11.52. Задан одномерный целочисленный массив. Найти количество элементов, которые входят в него только один раз. Например, в массиве {1, 2, 1, 3, 2, 1} это количество равно 1. Решение. Для каждого элемента массива просматриваем все оставшиеся. Если среди оставшихся элементов нет равных проверяемому, то счетчик количества входящих в массив только один раз элементов увеличивается на 1. d:=0; {количество элементов, входящих в массив только один раз} for i:=1 to n do begin j:=1; f:=false; while (j<=n) and not f do if i<>j {проверяемый элемент пропускаем} then if a[i]=a[j] then f:=true else j:=j+1 else j:=j+1; if not f then d:=d+1. Пример 11.53. Задан одномерный целочисленный массив. Найти количество элементов, которые входят в него более чем один раз. Например, в массиве {1, 2, 1, 3, 2, 1} это количество равно 2. Решение. Для каждого элемента массива i, если ему нет равных слева (j=1, ..., i- 1), разыскиваются равные справа (j=i+1, ..., n). Если справа обнаруживается элемент, равный просматриваемому, то счетчик количества таких элементов увеличивается на 1. Решение этой задачи можно получить на основе решений предыдущих задач. Для этого нужно из результата решения задачи 11.51 вычесть результат решения задачи 11.52. Упражнения: 1. Запишите на Паскале первый вариант решения задачи 11.53. 2. Проверьте справедливость второго варианта решения задачи 11.53. Пример 11.54. В одномерном массиве хранятся результаты социологического опроса. Написать программу для подсчета количества результатов, отклоняющихся от среднего не более чем на 7%. Решение. Решим задачу, используя два цикла. В первом находится среднее арифметическое значение. Во втором подсчитывается количество элементов, попавших в интервал [0.93·ср_ар.; 1.07·ср_ар.]. Сумму элементов массива можно найти в момент ввода значений. program task11_54; var a : array [1..100] of integer; { массив для хранения результатов социологического опроса } n : integer; { количество результатов опроса } as : real; { среднее значение } i : integer; { индекс элементов массива } m : integer; { количество результатов, отклоняющихся от среднего не более чем на 7% } begin
Страницы
- « первая
- ‹ предыдущая
- …
- 188
- 189
- 190
- 191
- 192
- …
- следующая ›
- последняя »