Одномерные массивы в Паскаль

Тема в разделе "Delphi - FAQ", создана пользователем milaya, 6 сен 2008.

  1. milaya

    milaya Гость

    Помогите, пожалуйста, с написанием данной программы в Паскаль: дан одномерный массив размерностью Yn. Удалить первые 3 элемента массива.Все элементы с четными номерами заменить средним арифмтическим элементов с нечетными значениями. :blink:
     
  2. astronom

    astronom Гость

    Кто же так задачу-то формулировал? :)
    a) Что значит "удалить первые 3 элемента"?
    Если заменить их значения на нули, то это просто
    Код (Text):
    For i:= 0 To 2 Do Массив[i] := 0;
    Если нужно вообще удалить эти элементы, т.е. сделать из массива из 100 элементов. массив из 97 элементов, то массив должен быть динамическим. Сильно сомневаюсь, что в задаче подразумевается использование именно динамического массива.

    б)
    - :lol:
    Тут ничего не напутали?

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

    Если ничего не напутано, то можно попробовать следующее:

    Функция, возвращающая среднее арифметическое элементов с нечетными значениями:
    Пусть Mass - исходный массив, состоящий из n элементов; i, j - счетчики; temp - временная переменная.
    Код (Text):
    j:= 0; - счетчик количества нечетных элементов в массиве.
    temp := 0; - временная переменная для хранения суммы значений нечетных элементов массива.
    For i:= 0 To (n-1) Do
    Begin
    If (Frac(Mass[r]/2)) <> 0 Then
    Begin
    Inc(j);
    temp:= temp + Mass[i];
    End;
    End;
    temp:= temp / j; - вычисляем среднее арифметическое.
    Для замены четных элементов массива на среднее арифметическое проходим массив,
    но для доступа к элементам массива используем конструкцию Mass[2*i], при условии, что i - счетчик цикла.
    Если среднее арифметическое нужно вычислить только один раз, то функцию вычисления среднего арифметического нужно запустить один раз ДО начала цикла.
    Если среднее арифметическое вычисляется каждый раз заново, то эту функцию нужно поместить в тело цикла.

    p.s. Где-то ведь была отдельная тема для учебных и школьных задач.


    upd: последний вариант дает весьма забавные результаты. :blink:
     
Загрузка...
Похожие Темы - Одномерные массивы Паскаль
  1. Lizzz
    Ответов:
    1
    Просмотров:
    1.241
  2. Fazer77777
    Ответов:
    1
    Просмотров:
    1.658
  3. 203
    Ответов:
    2
    Просмотров:
    1.383
  4. 203
    Ответов:
    0
    Просмотров:
    948
  5. 203
    Ответов:
    2
    Просмотров:
    2.168

Поделиться этой страницей