Pascaler
О проекте Теоретический материал Тестирование Архив задач
Войти в личный кабинет



О проекте


Преподавателям


Тема: Доступ к элементам массива.

Рассмотрите предложенные ниже фрагменты программ для решения некоторых типичных задач.

Изменение значения некоторых элементов

Задача. Заменить отрицательные элементы на противоположные по знаку.

Для этого опишем процедуру. Ей будем передавать один параметр - массив, который будет результатом ее выполнения, так как некоторые элементы могут быть заменены.

Procedure Zamena (Var m : MyArray; n:integer);
Var
  i : integer;
Begin
  for i := 1 to n do
    if m[i] < 0
      then
        m[i] := -1*m[i];
End;

Нахождение номеров элементов с заданным свойством

Задача. Найти и вывести на экран номера четных элементов.

Для решения задачи необходимо просмотреть весь массив, и если просматриваемый элемент является четным, то выводить его номер. Опишем процедуру, которой передается данный массив и выводятся нужные номера.

Procedure PoiskChet(m : MyArray; n:integer);
Var
  i : integer;
Begin
  for i := 1 to n do
    if m[i] mod 2 =0
      then
        Write(i:5);
End;

Нахождение количества элементов с заданным свойством

Задача. Найти количество положительных и отрицательных элементов в данном массиве.

Опишем процедуру, которой будем отправлять три параметра - массив и два счетчика, один для элементов, больших нуля, а второй - для отрицательных элементов.

Procedure OtrPol(m : MyArray; ; n:integer; Var k1,k2 : Integer);
Var
  i : integer;
Begin
  k1 :=0;
  k2 :=0;
  for i := 1 to n do
    if m[i] > 0
      then
        Inc(k1)
      else
        if m[i] < 0
          then
            Inc(k2);
End;

 Есть ли в данном массиве элементы с данным свойством?

Для решения таких задач удобнее использовать циклы с условиями и составлять функции, результат которых имеет логический тип.

Задача. Есть ли отрицательный элемент в массиве?

Начинаем с первого элемента (i=1). пока не просмотрен последний элемент (i<=n) и не найден отрицательный (m[i]>=0), будем переходить к следующему (Inc(i)). Таким образом, мы закончим просмотр массива в одном из двух случаев: первый - просмотрели все элементы и не нашли отрицательный, тогда i>n, второй - нашли нужный, при этом i<=n. Опишем функцию, значение которой истина (True), если такой элемент есть, и ложь (False), если его нет.

Function Control (m : MyArray; n:integer) : Boolean;
Var
  i : integer;
Begin
  i := 1;
  while (i<=n) and (m[i]>0) do
    Inc(i);
  Control := (i<=n);
End;

Задание. Выберите с учителем задачи для самостоятельного решения.

  1. Дан одномерный массив. Найдите разность наибольшего и наименьшего чисел в этом массиве.


  2. Даны два одномерных массива А и В. Подсчитайте количество тех i, для которых:
    а) А[i] < B[i];
    б) A[i] = B[i];
    в) A[i] > B[i].


  3. Составьте программу определения количества элементов массива, больших среднего арифметического всех его элементов.


  4. Дан одномерный массив. Подсчитайте, сколько раз встречается в этой таблице максимальное по величине число.


  5. Дан одномерный целочисленный массив. Составьте программу определения значения наибольшего элемента этого массива.


  6. Дан одномерный целочисленный массив. Составьте программу определения индекса(-ов) минимального элемента массива.


  7. Составьте программу, проверяющую упорядочены ли элементы одномерного массива по возрастанию.


  8. Дан одномерный массив чисел. Определите сумму его элементов.


  9. Дан одномерный массив чисел. Измените знаки всех его элементов на противоположные.


  10. Дан одномерный массив чисел. Подсчитайте, сколько раз в нем встречается число 1.


  11. Дан одномерный массив чисел. Подсчитать в нем количество элементов равных нулю, отрицательных элементов и положительных элементов.


  12. В массиве А (m,n) найдите количество всех чисел, по модулю меньших заданного Т.


Вернуться назад
2003—2012 © Группа «Vimedia»
Проект «Pascaler» — лучший на ХI Всероссийской конференции молодых исследователей с международным участием «Шаг в будущее», Россия, Москва, 12 – 16 апреля 2004г.