793

Обработка одномерных массивов

Контрольная

Информатика, кибернетика и программирование

Типовые алгоритмы обработки одномерных массивов. Вычисление суммы и произведения элементов, находящихся на разных местах в массиве. Вычисление суммы, произведения и количества элементов, удовлетворяющих заданному условию и находящихся на разных местах в массиве.

Русский

2013-01-06

201 KB

43 чел.

Обработка одномерных массивов

  1.  Понятие и описание массива

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

Индекс – это выражение целого типа, определяющее положение отдельной величины в последовательности. Каждая отдельная величина называется элементом массива.

Объявление массива:

 

Dim   <идентификатор> (Nнач To Nкон) As  < тип элементов>

Nнач, Nкон – это минимальное и максимальное значение индекса, обязательно константы. Обычно Nнач=1, тогда Nкон это максимально возможное число элементов в массиве.

Пример:

Dim x (1 To 20) As Byte

Обращение к элементу массива:

<идентификатор массива> (<индекс>)

x (3) – третий элемент массива x,

x (i+2) – элемент массива x с индексом i+2 

(i при этом должно иметь значение).

Свойства элементов массива:

  •  все элементы массива имеют один тип;
  •  номера элементов – это последовательные целые числа от Nнач до Nкон с шагом 1;
  •  число используемых элементов может быть меньше, чем число элементов в описании массива.

  1.  Ввод массива

 

Процедура:

  n = InputBox ("Введите число элементов" , "Ввод")

  for i=1 to n do

      x (i)= InputBox (“Введите элемент  " & i , "Ввод")

  Next i

  1.  
    Вывод массива

Фрагмент процедуры (после ввода):

  •  Вывод в окно сообщений

       Dim Str As String

            Str="Исходный массив" & vbCr

                          For i=1 to n

         Str=Str & x(i) & " "

  Next i

MsgBox Str , , "Вывод массива"

  •  Вывод в ячейки рабочего листа

 Cells (1,1)="Исходный массив"

for i=1 to n

        Cells (2 , i) = x(i)

Next i

  1.  Типовые алгоритмы обработки одномерных массивов

  1.  Вычисление суммы и произведения элементов, находящихся на разных местах в массиве

S=0  для i=1..n  S=S+x(i)      

P=1  для i=1..n  P=P*x(i)

Общая схема алгоритма:


  

Пример 1:  Вычислить сумму квадратов

элементов, находящихся в массиве на

местах с номерами, кратными трем.

   S=0

i=3

While i<=n

      S=S+x(i)^2

i=i+3

Wend

<Вывод S>

Пример 2:  Вычислить произведение элементов, находящихся в массиве на местах с третьего по седьмое

            включительно.

if n <7   then   

<вывод сообщения >

  else

     P= 1

        For i = 3 to 7

 P=P*x(i)

       Next i

              <вывод Р>

      End if

  1.  Вычисление суммы, произведения и количества элементов, удовлетворяющих заданному условию и находящихся на разных местах в массиве

Общая схема алгоритма:

Пример3:  Вычислить количество элементов, больших заданного числа a и находящихся в массиве на местах с четными номерами.

Схема алгоритма:

:

Фрагмент процедуры:

  •  с помощью оператора цикла While

k=0

i=2

While i<=n

    if x(i)> a    then k=k+1

     i=i+2;

Wend

  •  с помощью оператора цикла For

k=0

For i=2 To n Step 2

    if x(i)> a    then k=k+1

Next i

Пример 4. Вычислить среднее арифметическое положительных элементов массива, находящихся в массиве на нечетных местах, и произведение элементов вне интервала [a,b).

Таблица используемых переменных

Имя переменной в задаче

Имя переменной в программе

Тип переменной

Примечание

-

n

Byte

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

Исходные данные

-

x

(1To10) As Single

исходный массив

a

a

Single

границы интервала

b

b

Single

-

Sr

Single

среднее арифметическое положительных элементов на нечетных местах

Результат

-

P

Single

произведение элементов вне интервала

-

i

Byte

номер элемента в массиве

Вспомогательные переменные (промежуточный результат)

-

S

Single

сумма положительных элементов на нечетных местах

-

K

Byte

количество положительных элементов на нечетных местах

-

m

Byte

переключатель для определения наличия элементов вне интервала


Текст процедуры:

Sub prim4 ()

  Dim x (1 To10) As Single

  Dim n As Byte, K As Byte, i As Byte, mAs Byte

  Dim Sr As Single, P As Single, S As Single, a As Single, b As Single

  <ввод n,x>

  <ввод a,b>

  <вывод x>

  <вывод a,b>

  S=0

  K=0

  For i=1 to n  Step 2

      If x(i)>0 Then

          S=S+x(i)

          K=K+1

     End If

  Next i

  If K= 0 Then

       Cells (4,1)="нет положительных эл-в на нечетных местах"

    

Else

         Sr=S/K;

         Cells(4,1)="Среднее арифметич. положит. эл-в на

нечетных местах=" & Sr

End If 

// вторая часть

P=1

m=0

For i=1 to n

      If (x(i)< a) or (x(i)>=b)   Then

           P=P*x(i)

           m=1

     End If

Next i

If m = 0 Then

       Cells(5,1)="нет элементов вне интервала"

    Else

     Cells(5,1)= "Произведение элементов вне интервала =" & P

End Sub

Тесты:

Для первой части

  1.     -1  0  -2  -2  0  4          на нечетных местах нет положительных

элементов

  1.      2  2  4  -6  3  0           на нечетных местах все элементы положит.

                                            среднее арифм. = (2+4+3)/3= 3

  1.      1  2  -1  3  7  5  -5       на нечетных местах часть элементов

положительная  

                                           среднее арифм. = (1+7)/2=4

Для второй части интервал [a, b):

  1.  [-4, 5)    нет элементов вне интервала    
  2.  [5, 10)    все элементы вне интервала      произв = 2*2*4*-6*3*0=0
  3.  [-4,5)    часть элементов вне интервала   произв = 7*5-5= -175

  1.  Перестановка местами и замена элементов массива

Для перестановки местами двух элементов массива необходимо объявить дополнительную переменную того же типа, который имеют элементы массива.

   Dim x (1 To10) As Single

   Dim p As Single

Пример 1. Поменять местами второй и четвертый элементы массива:

p = x (2)

x (2) = x(4)

x (4)=p

Пример 2. Поменять местами первый и последний элементы массива:

p=x(1)

x (1)=x(n)

x (n) =p

Пример 3. Поменять местами предпоследний элемент массива с  элементом с заданным номером k:

   If k = n -1  then

         MsgBox “Обмен не нужен, т.к. …..”

     else

          

p = x (n-1)                 

x (n-1) = x (k)

x (k) = p

End If

Пример 4. Заменить положительные элементы массива на  последний элемент массива.

For i:=1 to n-1 do

      If x(i)>0 Then x(i) =x(n)               

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

Графическая схема алгоритма:

  

:


При поиске минимального элемента блок 7  должен иметь вид:

Тесты:

  1.  минимальный элемент находится на первом месте в массиве;
  2.  минимальный элемент находится на последнем месте в массиве;
  3.  минимальный элемент находится в середине массива;
  4.  зависит от конкретных условий задачи.

Пример. Найти минимальный из элементов массива с номерами, кратными трем, и поменять его местами со следующим элементом массива.

min=x(3)

         n_min=3

         For i=6 to n Step 3

            If x(i) < min then

    min=x(i);

 n_min=i

    End If

Next i

<вывод min, n_min>

If n_min = n   then

      ShowMessage (“минимальный элемент – последний”)

   Else

 p=x(n_min)    x(n_min)=x(n_min+1)

 x(n_min)=x(n_min+1)         x(n_min+1)= min

x(n_min+1)=p

<вывод массива х>

End If

  1.  Формирование новых массивов

Постановка задачи: из исходного массива перенести в новый массив элементы, удовлетворяющие некоторому условию, не меняя их взаимного расположения.

Тесты:

  1.  новый массив не сформирован, т.к. в исходном массиве нет элементов, удовлетворяющих заданному условию;
  2.  новый массив сформирован из всех элементов исходного массива, т.к. они все удовлетворяют условию;
  3.  новый массив сформирован из части элементов исходного массива, удовлетворяющих заданному условию;

Пример. Даны два массива a и b. Переписать из них элементы в массив с по следующему правилу: из массива a квадраты элементов, находящихся в массиве на местах с четными номерами, из массива b  элементы, которые не больше, чем последний элемент массива a.




k=0

  i=2

  While i<=n

          k=k+1

          c(k)= a(i)^2

          i=i+2

 Wend

For i=1 to m

If  b(i)<= a(n) Then

             k= k +1

      c(k)=b(i)

   End If

 Next i

           If  k = 0 then

                          Cells (5,1)="новый массив не сформирован"

        Else

Cells (5,1)="Cформированный массив"

   For i =1 to k

                             Cells( 6,i)=c(i)

End If


 

А также другие работы, которые могут Вас заинтересовать

85337. Визначення поняття «дитячий церебральний параліч» 39.89 KB
  Вони виникають з самого народження дитини і існують протягом усього життя. Головною причиною ДЦП вважається гіпоксія нестача кисню або ядуха дитини в утробі матері або відразу після народження. Хоча в більшості випадків тяжкість родів визначається вже наявними порушеннями внутрішньоутробного розвитку дитини. Після пологів спровокувати недуга може і гемолітична хвороба новонароджених так звана ядерна жовтяниця при якій відбувається інтоксикація головного мозку дитини.
85338. Діагностика порушень зору 38.28 KB
  Діагностика порушень зору процедура необхідна для кожної людини. В ідеалі діагностику порушень зору необхідно проходити раз на рік для того щоб своєчасно встигнути виявити захворювання на початковому етапі його розвитку. Діагностика порушень зору передбачає аналіз здатності людського ока чітко розглядати обєкти розташовані у видаленні та поблизу від очей а також дається оцінка полю зору і здатності розрізняти кольори.
85339. Соціально-психологічні особливості людини з порушеннями роботи внутрішніх органів 38.6 KB
  Розкриваючи соціальнопсихологічні особливості людини з порушеннями роботи внутрішніх органів зупинимося на таких соматичних захворюваннях: цукровий діабет онкологічні захворювання та бронхіальна астма. Цукровий діабет Цукровий діабет ендокринне захворювання обумовлене абсолютною або відносною інсуліновою недостатністю що приводить до порушення всіх видів обміну речовин перш за все вуглеводного ураження судин нервової системи а також інших органів і тканин. Причинами виникнення цукрового діабету можуть бути порушення центральної...
85340. Психологічні проблеми сімейного виховання дітей з обмеженими можливостями 37.62 KB
  У звязку зі станом дитини змінюється поведінка дорослих у родині виникають проблеми з якими батьки не можуть упоратися самостійно: порушується взаємодія із соціальним оточенням; коло спілкування становлять близькі родичі спеціалісти; виражена тривога і неспокій батьків викликані відставанням дитини в розвитку від однолітків; відсутність необхідних знань з психології і педагогіки аномальної дитини; відсутність досвіду роботи з психологом на ранніх етапах розвитку дитини; пасивність позиції матері у відносинах фахівець мати дитина ....
85341. Соціально-психологічні особливості людини з порушеннями опорно-рухового апарату 39.38 KB
  У них вище ніж у інших інвалідів самооцінка; вони відчувають себе найбільш особистісно сильними найменше виражена депресивність. У цієї категорії інвалідів міжособистісні відносини взагалі стабільні і благополучні вони не виглядають відгородженими ізольованими від інших людей. Проте насправді все це є прямо протилежне: у цих інвалідів виявляється значна психологічна дезадаптація їх самооцінка суперечлива. Їх загальне відношення до оточуючих більш негативне ніж у інвалідів I і II групи з дитинства.
85342. Предмет і завдання спеціальної психології 37.66 KB
  Психологія людини з обмеженими можливостями розглядається в межах окремої галузі психологічної науки що вивчає закономірності психічного розвитку й особливості психічної діяльності дітей і дорослих із психічними й фізичними недоліками спеціальної психології. Спеціальна психологія це галузь психологічної науки яка вивчає своєрідність психічного розвитку осіб з психофізичними порушеннями...
85343. Методи дослідження психологічних особливостей людей з різними психофізичними порушеннями у спеціальній психології 39.99 KB
  Діагностика аномального розвитку дитини спрямована на визначення ступеня виразності психічної інтелектуальної емоційної мовної недостатності й на якісну оцінку структури дефекту з виділенням основного психопатологічного синдрому на встановлення звязків його з іншими клінічними проявами віком соматичним і неврологічним станом дитини. За допомогою бесіди можна виявити коло знань дитини про навколишню дійсність а також особливості її орієнтування в просторі часі явищах природи й громадському житті. У процесі бесіди психолог довідується...
85344. Загальна характеристика інвалідів (людей з обмеженими можливостями) як соціальної групи 40 KB
  У нашій країні якість життя інвалідів як правило нижче решти населення що обумовлено наступним: недостатністю в нашому суспільстві гуманізму і милосердя по відношенню до людей з особливими потребами; нерозвиненістю і непристосованістю соціальної інфраструктури міст і сільських населених пунктів з урахуванням задоволення основних потреб інвалідів; низьким рівнем матеріального забезпечення і соціального обслуговування їх недостатньою гнучкістю; низькою якістю чи відсутністю технічних засобів і пристосувань необхідних для...
85345. Девіантна поведінка. Причини виникнення девіантної поведінки 37.16 KB
  Причини виникнення девіантної поведінки. У соціології девіантної поведінки виділяються кілька напрямків що пояснюють причини виникнення такої поведінки. Мертон причиною поведінки що відхиляється вважає неузгодженість між цілями висунутими суспільством і засобами яке воно пропонує для їхнього досягнення. Особливої гостроти ця проблема набула сьогодні в нашій країні де всі сфери суспільного життя перетерплюють серйозні зміни відбувається девальвація колишніх норм поведінки.