793

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

Контрольная

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

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

Русский

2013-01-06

201 KB

35 чел.

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

  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


Данной работой Вы можете всегда поделиться с другими людьми, они вам буду только благодарны!!!
Кнопки "поделиться работой":

 

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

45945. Основные типы деформации деталей машин и примеры их реализации 36 KB
  Основные типы деформации деталей машин и примеры их реализации Деформация это изменение формы и размера тела после приложения внешних нагрузок. Деформация зависит от характера приложенной нагрузки. Обычно деформация кручения сопровождается другими деформациями например изгибом; 5 изгиб возникает при действии на деталь сосредоточенной или распределённой сил перпендик. Сила Ft= ; Ft деформация кручения Frизгиб балки.
45947. Чугуны: классификация, маркировка, химический состав, механические и технологические свойства, применение 23.06 KB
  Чугуны нашли широкое применение в качестве машиностроительных материалов благодаря сочетанию высоких литейных свойств достаточной прочности износостойкости а так же относительной дешевизны. Чугуны используются для производства качественных отливок сложной формы станины станков корпуса приборов и т. В зависимости от того в какой форме присутствует углерод в сплаве чугуны подразделяются на белый серый ковкий высокопрочный и легированный обладающий особыми свойствами жаропрочностью антифрикционностью и т. Белые литейные чугуны.
45948. Конструкционные стали: классификация, маркировка, химический состав, механические и технологические свойства, применение 50.2 KB
  Конструкционные стали: классификация маркировка химический состав механические и технологические свойства применение. Широкое использование стали в промышленности обусловлено сочетанием комплекса механических физикохимических и технологических свойств. Сталью называются сплавы железа с углеродом и некоторыми другими элементами причем углерода в стали должно содержаться меньше 214 . Постоянными примесями в стали являются: кремний до 04 марганец до 08 сера до 005 фосфор до 005 и газы NOH и др.
45949. Инструментальные стали: классификация, маркировка, свойства, применение 24.34 KB
  Инструментальные стали: классификация маркировка свойства применение. ИНСТРУМЕНТАЛЬНЫЕ СТАЛИ. Инструментальные стали предназначены для изготовления режущего измерительного инструмента и штампов холодного и горячего деформирования. Основные свойства которыми должны обладать инструментальны стали: износостойкость прочность при удовлетворительной вязкости теплостойкость прокаливаемость и хорошая обрабатываемость давлением и резанием.
45950. Статические и динамические испытания металлов: основные механические свойства и их определение 186.98 KB
  В этих испытаниях создаётся однородное напряжённое состояние по сечению образца причём доля нормальных напряжений является преобладающей поэтому эти испытания считаются жёсткими. Машины автоматически фиксируют величины приложенной нагрузки и изменение длины образца в виде диаграммы растяжения по которой производятся все необходимые расчеты. длинные образцы где F0 –площадь сечения рабочей части образца. При этом необходимо соблюдать важное условие: заготовки не должны нагреваться до температуры 150С иначе изменится структура и свойства...
45951. Сплавы на основе меди: классификация, маркировка, свойства, применение 21.83 KB
  По техническим свойствам медные сплавы делятся на деформируемыеГОСТ1817578 и литейные ГОСТ61383; по способности к закалке – термоупрочняемые и нетермоупрочняемые; по химическому составу на бронзы Cu другие элементы кроме Zn и латуни СuZn и другие элементы. Бронзы маркируются буквами Бр бронза и буквами и цифрами: буквы означают название элемента а цифры – его количество в сплаве в процентах. Бронзы имеют более высокие по сравнению с латунями прочностные антифрикционные коррозионостойкие свойства но являются более...
45952. Сплавы на основе алюминия: классификация, маркировка, свойства, применение 16.94 KB
  Сплавы на основе алюминия: классификация маркировка свойства применение. Единой цифровой маркировки алюминиевых сплавов не существует деформируемые литейные и спеченные сплавы маркируются поразному. Деформируемые сплавы имеют буквенную и буквенноцифровую маркировку причем выбор букв и цифр производится случайным образом: сплав lSiCuMg обозначается АВ авиаль сплав lMn обозначается АМц а сплав LMg обозначается АМг. Для группы сплавов первые цифры после букв обозначают соответственно: 1сплавы упрочняемые Сu и Mg...
45953. Теория и технология термической обработки стали: виды, применение 13.64 KB
  Основными видами термической обработки являются: отжиг закалка и отпуск. Отжиг бывает полный неполный диффузионый рекристаллизационный и нормализа Закалка. Закалкавид термической обработки заключающийся в нагреве изделий с контролируемой скоростью1000С час до температуры АС330500С выше линии окончания фазовых переходов GS диаграммы железо углерод выдержке при этойтемпературе для выравнивания температуры по сечению и осуществления фазовых переходов Fe3C Feα Feγ и быстром охлаждении в воде или масле. Закалка бывает обычная...