09.03.2022

Массивы в языке Паскаль (примеры, задачи, решения)

 В этой публикации приведем примеры задач с решениями на языке Паскаль по теме "Массив".

Задачи:

  1. Дан массив из 10 целых чисел. Найти сумму элементов, кратных данному числу k.
  2. Дан массив из N элементов. Найти количество элементов, равных максимальному.
  3. Дан массив из N элементов. Найти среднее значение положительных элементов.

Задача 1. Дан массив из 10 целых чисел. Найти сумму элементов, кратных данному числу k.

Исходные данные: a - массив 10 целых чисел (тип array); k - целое число (тип integer)

Выходные данные: sum - сумма элементов, кратных числу k

Как будем решать задачу:

  • Введем массив 10 целых чисел оператором цикла for  с счетчиком от 1 до 10.
  • Введем число k
  • Обнулим сумму sum
  • В цикле for будем проверять, делится ли число, хранящееся в ячейке (элемент массива) на число k, если да, то будем этот элемент добавлять в сумму sum.
  • Выведем значение sum на экран.

Программа решения задачи на языке Паскаль:

var a:array[1..10] of integer;

    k,sum,j:integer;

begin

  writeln('Введите массив 10 целых чисел');

  for j:=1 to 10 do

  begin

    readln(a[j]);

  end;

  write('Введите число k=');

  readln(k);

  sum:=0;

  for j:=1 to 10 do

  begin

    if a[j] mod k = 0 then sum:=sum+a[j];

  end;

  writeln('Сумма элементов, кратных числу ',k,': ',sum);

end.

Программа решения задачи на языке Паскаль

С использованием методов для последовательностей в PascalABC.NET (версия 3.8.2)

var a:array[1..10] of integer;

    k,s,j,x:integer;

begin

  writeln('Введите массив 10 целых чисел');

  for j:=1 to 10 do

  begin

    readln(a[j]);

  end;

  write('Введите число k=');

  readln(k);

  s:=a.Where(x -> x mod k = 0).sum;

  writeln('Сумма элементов, кратных числу ',k,': ',s);

end.

Задача 2. Дан массив из N элементов. Найти количество элементов, равных максимальному.

Исходные данные: N - количество элементов массива (тип integer); a - массив N целых чисел (тип array)

Промежуточные данные: m - максимальное значение (тип integer)

Выходные данные: k - количество элементов, равных максимальному (тип integer)

Как будем решать задачу

  • Введем число N
  • Введем массив из N элементов
  • Найдем максимальное значение
  • Найдем количество элементов, равных максимальному значению.

Программа решения задачи на языке Паскаль:

var a:array[1..10] of integer;

    k,m,j,N:integer;

begin

  writeln('Введите количество элементов массива');

  readln(N);

  writeln('Введите массив целых чисел');

  for j:=1 to N do

  begin

    readln(a[j]);

  end;

  m:=a[1];

  for j:=2 to N do

  begin

    if a[j]>m then m:=a[j];

  end;

  k:=0;

  for j:=1 to N do

  begin

    if a[j]=m then k:=k+1;

  end;

  writeln('Количество элементов, равных максимальному k=',k);

end.

Программа решения задачи на языке Паскаль

С использованием методов для последовательностей в PascalABC.NET (версия 3.8.2)

var a:array of integer;

    k,m,j,N:integer;

begin

  writeln('Введите количество элементов массива');

  readln(N);

  setlength(a,N);

  writeln('Введите массив целых чисел');

  for j:=0 to N-1 do

  begin

    readln(a[j]);

  end;

  k:=a.countof(a.max);

  writeln('Количество элементов, равных максимальному ',k);

end.

Задача 3. Дан массив из N элементов. Найти среднее значение положительных элементов.

Исходные данные: N - количество элементов массива (тип integer); a - массив N целых чисел (тип array)

Промежуточные данные: s - сумма положительных элементов (тип integer), k - количество положительных элементов (тип integer)

Выходные данные: r - среднее значение положительных элементов (тип real)

Как будем решать задачу

  • Введем число N
  • Введем массив из N элементов
  • Найдем сумму и количество положительных элементов
  • Вычислим среднее значение положительных элементов

Программа решения задачи на языке Паскаль

var a:array[1..10] of integer;

    k,s,j,N:integer;

    r:real;

begin

  writeln('Введите количество элементов массива');

  readln(N);

  writeln('Введите массив целых чисел');

  for j:=1 to N do

  begin

    readln(a[j]);

  end;

  s:=0; k:=0;

  for j:=1 to N do

  begin

    if a[j]>0 then 

    begin

      s:=s+a[j];

      k:=k+1;

    end;

  end;

  r:=s/k;

  writeln('Среднее значение положительных элементов ',r);

end.

Программа решения задачи на языке Паскаль

С использованием методов для последовательностей в PascalABC.NET (версия 3.8.2)

var a:array of integer;

    k,s,j,N:integer;

    r:real;

begin

  writeln('Введите количество элементов массива');

  readln(N);

  setlength(a,N);

  writeln('Введите массив целых чисел');

  for j:=0 to N-1 do

  begin

    readln(a[j]);

  end;

  s:=a.Where(x->x>0).sum;

  k:=a.Count(x->x>0);

  r:=s/k;

  //либо так: r:=a.Where(x->x>0).Average;

  writeln('Среднее значение положительных элементов ',r);

end.

Сформировать массив случайных чисел

Комментариев нет:

Отправить комментарий