Персональная страничка
Диканева Тараса
Викторовича

Главная \ Преподавательское \ Программирование для начинающих

10. Массивы

Предыдущий раздел:

Следующий раздел:

Задание 10: Массивы

1. Заполнение массивов.

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

При решении следующих задач можно использовать любой из способов заполнения.

2. Пусть описана константа и два типа-массива:

  const
    m = 3;
  type
    TMas1 = array [1..2*m+1] of real;
    TMas2 = array [-m..m] of real;

Создайте программу, которая значения, записанные в элементах массива 1-го типа, переносит в массив 2-го типа.

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

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

    1) Если элементы меньше заданного числа, замените их этим числом.

    2) Замените все элементы с индексами в диапазоне [a, b] нулями.

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

    4) Совершите циклическую перестановку элементов массива (сдвиньте все элементы вправо, а последний поставьте на первое место).

    5) Расположите элементы массива в обратном порядке.

    6) Поменяйте местами элементы с четными и нечетными индексами.

    7) Сожмите массив, выбросив из него каждое второе значение. Оставшуюся половину массива заполните нулями.

    8) Вставьте дополнительный элемент в массив в заданное место. Чтобы освободить это место, все элементы, начиная с него, сдвиньте вправо. Последний элемент будет некуда девать – и черт с ним.

    9) Определите индекс указанного пользователем элемента массива. Если такого элемента нет, сообщите об этом пользователю.

5. Пусть имеется массив, заполненный целыми числами. Получите на его основе новый массив следующими способами:

    1) Получите массив из разностей соседних элементов исходного массива.

    2) Получите массив из скользящих сумм n соседних элементов. То есть каждый i-й элемент нового массива это сумма n элементов старого, начиная с i-го. Новый массив, очевидно, будет содержать на n-1 элементов меньше. Пусть массивы заданы с одинаковой длиной, просто не выводите элементы нового массива, которые невозможно вычислить.

6. Получите сумму и среднее арифметическое всех элементов массива.

7. Получите корень из суммы квадратов всех элементов массива (модуль вектора).

8. Для двух массивов получите сумму попарных произведений их членов (скалярное произведение).

9. Для двух массивов получите Евклидово расстояние между ними.

10. Найдите максимальный и минимальный элементы массива.

11. Отсортируйте элементы массива методом выбора.

Следующий раздел:

Предыдущий раздел:

64 комментария

  1. Darkhan

    program N10_4_5;{расположить элементы массива в обратном порядке}
    const
    m=15;
    type
    TMas = array[0..m-1] of real;
    var
    x:TMas;
    i:integer;
    c:real;
    begin
    for i:=0 to m-1 do {присвоение значений}
    x[i]:=random(10);
    for i:=0 to m-1 do {вывод результата}
    write(x[i], ‘ ‘);
    writeln;
    if m mod 2 = 0 then
    begin
    for i:=0 to (m div 2)-1 do {число элементов массива четное}
    begin
    c:=x[i];
    x[i]:=x[m-1-i];
    x[m-1-i]:=c;
    end;
    end else
    begin
    for i:=0 to ((m-1) div 2)-1 do {число элементов массива нечетное}
    begin
    c:=x[i];
    x[i]:=x[m-1-i];
    x[m-1-i]:=c;
    end;
    end;
    for i:=0 to m-1 do {вывод результата}
    write(x[i], ‘ ‘);
    end.

  2. Darkhan

    program N10_4_7;{сжатие массива}
    const
    m=12;
    type
    TMas=array[0..m-1] of real;
    var
    x:TMas;
    i:integer;
    begin
    for i:=0 to m-1 do {присвоение значений}
    x[i]:=random(10);
    for i:=0 to m-1 do {вывод результата}
    write(x[i], ‘ ‘);
    writeln;
    for i:=0 to (m div 2)-1 do
    x[i]:=x[2*i];
    for i:=(m div 2) to m-1 do
    x[i]:=0;
    for i:=0 to m-1 do {вывод результата}
    write(x[i], ‘ ‘);
    end.

  3. Ольга

    Тарас Викторович, не могу понять в чем ошибка, посмотрите, пожалуйста.
    задание 4/5
    const
    m = 7;
    type
    TMas1 = array [0..m-1] of integer;

    var
    x:TMas1;
    i,c: integer;

    begin

    for i:=0 to m-1 do
    x[i]:= random (10);
    for i:=0 to m-1 do
    write (x[i],’ ‘);
    writeln; (это для контроля)

    for i:=0 to 3 do
    c:= x[i];
    x[i]:=x[m-1-i];
    x[m-1-i]:=c;

    for i:=0 to m-1 do
    write (x[i],’ ‘);
    writeln;
    end.

  4. Taras

    begin-end’а не хватает. И еще, если размер массива m, то логично было бы переставлять элементы не до 3-го, а до какого-то зависящего от m.

  5. Ольга

    спасибо! и вообще хочется сказать Вам огромное спасибо за весь этот проект — интересно, понятно, и за Вашу помощь!

  6. Ольга

    для таких, как я — кто не имеет возможности получить университетское образование в области программирования, но «не мытьем, так катаньем» заняться этим очень хочет — этот сайт- просто клад!

  7. Alex_Kot

    Program Z10_4_4; {Циклическая перестановка элементов}
    const
    n=5;
    type
    TMass1 = array [0..N-1] of integer;
    TMass2 = array [0..N-1] of integer;
    var
    x: TMass1;
    y: TMass2;
    i: integer;
    begin
    for i:=0 to N-1 do
    x[i]:=trunc(100*random);
    for i:=0 to N-1 do
    y[i]:=i;
    for i:=0 to N-1 do
    write(x[i]:4);
    writeln;
    for i:=0 to N-1 do
    write(y[i]:4);
    writeln;

    y[0]:=y[N-1];
    for i:=1 to N-1 do
    y[i]:=y[i]-1;
    for i:=0 to N-1 do
    write(y[i]:4);
    writeln;
    for i:=0 to N-1 do
    write(x[y[i]]:4);
    end.

  8. Alex_Kot

    Program Z10_4_4;{Размещенние элементов массива в обратном порядке}
    const
    n=6;
    type
    TMass1 = array [0..N-1] of integer;
    var
    x: TMass1;
    i, k, c: integer;
    begin
    for i:=0 to N-1 do
    x[i]:=trunc(100*random);
    for i:=0 to N-1 do
    write(x[i]:4);
    writeln;

    for i:=0 to N-1 do
    for k:=0 to N-2-i do
    begin
    c:=x[k];
    x[k]:=x[k+1];
    x[k+1]:=c;
    end;
    for i:=0 to N-1 do
    write(x[i]:4);
    end.

  9. Alex_Kot

    Циклическая перестановка может быть выполнена проще:
    Program Z10_4_4;{Циклическая перестановка элементов}
    const
    n=6;
    type
    TMass1 = array [0..N-1] of integer;
    var
    x: TMass1;
    i, c: integer;
    begin
    for i:=0 to N-1 do
    x[i]:=trunc(100*random);
    for i:=0 to N-1 do
    write(x[i]:4);
    writeln;

    c:=x[N-1];
    for i:=N-1 downto 1 do
    x[i]:=x[i-1];
    x[0]:=c;
    for i:=0 to N-1 do
    write(x[i]:4);
    end.

  10. Alex_Kot

    Program Z10_11;{ Сортировка элементов массива методом выбора}
    const
    n=10;
    type
    TMass1 = array [0..N-1] of integer;
    var
    x: TMass1;
    c, i, k: integer;
    begin
    for i:=0 to N-1 do
    x[i]:=trunc(100*random);
    for i:=0 to N-1 do
    write(x[i]:4);
    writeln;

    for i:=0 to n-2 do
    for k:=i+1 to N-1 do
    if x[k]<x[i] then
    begin
    c:=x[i];
    x[i]:=x[k];
    x[k]:=c;
    end;
    for i:=0 to N-1 do
    write(x[i]:4);
    end

  11. Аноним

    как сделать 5.1 и 5.2?

  12. Аноним

    Помогите пожалуйста 4,3 и 4,6

  13. Анна

    Это будет верным для 1-ой задачи?
    const
    n=10;
    var
    a,b,c:array [0..n] of integer;
    i:integer;
    begin
    begin
    for i:=0 to n do
    readln(a[i]);
    writeln(‘a[i]’,a[i]);
    end;
    begin
    for i:=0 to n do
    b[i]:=i;
    writeln(‘b[i]’,b[i]);
    end;
    begin
    for i:=0 to n do
    c[i]:= random(10)+1;
    writeln(‘c[i]’,c[i]);
    end;
    end.

Добавить комментарий