Задачи по Pascal. Заменить элемент A[k] средним арифметическим K-первых элементов.

Условие: Задан вещественный массив А размерностью N. Заменить элемент Ak (3 ≤ k ≤ N), среднее арифметическое K первых элементов массива.

Сложность: легкая.

Решение задачи

Для начала продумаем наше решение.

  • Первым делом нужно создать массив, заполнить его числами, в ручную или случайным образом не сказано, так что сделаем в ручную.
  • Затем мы вводим K — это элемент массива который мы будем менять.
  • Дальше мы ищем среднее арифметическое K первых элементов. Т.е. допустим у нас массив из 12 чисел, мы вводим K = 6, это будет значит чтобы мы ищем среднее первых 6 чисел массива.
  • Последним действием будет замена Ak.
  • Начнем мы с каркаса нашей программы

    type

    massiv =
    array
    [
    1..100
    ]
    of
    real
    ;
    // создаем свой тип данных для массива
    var

    ave:
    real
    ;

    k,N,i:
    integer
    ;
    // объявляем

    A: massiv;
    // переменные

    begin

    write
    (
    'Введите длину массива : '
    );readln(N);
    // просим пользователя ввести длину массива

    readln;
    // чтобы программа не закрывалась
    end
    .

    Тут мы создали свой тип данных для массива, как и зачем читайте ( тут ), объявили переменные, попросили пользователя ввести кол-во элементов массива.

    Теперь заполним массив числами:

    for
    i:=
    1
    to
    n
    do
    // пускаем цикл для заполнения массива
    begin

    write
    (
    'Введите '
    ,i,
    ' элемент : '
    ); readln(A[i]);
    // просим пользователя заполнить массив
    end
    ;

    Дальше нужно чтобы пользователь ввел число K, но для этого числа есть условие (3 ≤ k ≤ N), т.е. надо чтобы юзер вводил число K пока не будет соблюдено это условие:

    repeat

    write
    (
    'K = '
    ); readln(k);
    until
    (k >=
    3
    )
    and
    (k <= N);
    // вводим число K пока не выполнится условие

    Ищем среднее арифметическое, чтобы это сделать мы создадим цикл от первого элемента массива до K и всё это сложим, затем уже после цикла поделим сумму на K.
    Если что именно так оно ищется, сумму делим на кол-во

    for
    i:=
    1
    to
    k
    do
    ave:=ave + A[i];
    // ищем сумму
    ave := ave / k;
    // вычисляем среднее арифметическое

    Ну и теперь осталось просто поменять Ak на то что у нас получилось и вывести результат:

    A[k]:=ave;
    // заменяем
    for
    i:=
    1
    to
    N
    do
    write
    (A[i]:
    0
    :
    2
    ,
    ' '
    );
    // выводим

    Всё решение задачи Pascal

    type

    massiv =
    array
    [
    1..100
    ]
    of
    real
    ;
    // создаем свой тип данных для массива
    var

    ave:
    real
    ;

    k,N,i:
    integer
    ;
    // объявляем

    A: massiv;
    // переменные

    begin

    write
    (
    'Введите длину массива : '
    );readln(N);
    // просим пользователя ввести пароль


    for
    i:=
    1
    to
    N
    do
    // пускаем цикл для заполнения массива

    begin

    write
    (
    'Введите '
    ,i,
    ' элемент : '
    ); readln(A[i]);
    // просим пользователя заполнить массив

    end
    ;


    repeat

    write
    (
    'K = '
    ); readln(k);

    until
    (k >=
    3
    )
    and
    (k <= N);
    // вводим число K пока не выполнится условие


    for
    i:=
    1
    to
    k
    do
    ave:=ave+A[i];
    // ищем сумму K-первых элементов

    ave := ave/k;
    // вычисляем среднее арифметическое


    A[k]:=ave;
    // заменяем

    for
    i:=
    1
    to
    N
    do
    write
    (A[i]:
    0
    :
    2
    ,
    ' '
    );
    // выводим


    readln;
    // чтобы программа не закрывалась
    end
    .

    Вот результат

    Предыдущая
    ПрограммированиеЗадачи по Pascal. Вычислить среднее арифметическое кубов двух чисел и среднее геометрическое их модулей.
    Следующая
    ПрограммированиеЗадачи по Pascal. Вывести только нечетные элементы массива.
    Помогли? Поставьте оценку, пожалуйста.
    Плохо
    0
    Хорошо
    0
    Супер
    0
    Спринт-Олимпик.ру
    Мы в ВК, подпишись на нас!

    Подпишись на нашу группу в ВКонтакте, чтобы быть в курсе выхода нового материала...

    Вступить
    ×