В этой публикации приведем примеры задач с решениями на языке Паскаль по теме "Массив".
Задачи:
- Дан массив из 10 целых чисел. Найти сумму элементов, кратных данному числу k.
- Дан массив из N элементов. Найти количество элементов, равных максимальному.
- Дан массив из 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.
Комментариев нет:
Отправить комментарий