Консультация № 173147
10.10.2009, 23:50
0.00 руб.
0 3 3
Добрый день,уважаемые эксперты!!!
Если можете помогите пожалуйста с одной задачкой,буду очень бдагодарен!
Условие:
Даны k последовательностей по n элементов в каждой.В каждой последовательности подсчитать количество элементов,принадлежащих отрезку [a,b] и сумму остальных элементов.(эта задача 1 курса 1 семестра,ввести с клавы и вевести результат на экран)

С уважением к Вам,Денис!!!
P.S.Если вам не трудно отправьте код проги на stella-den@yandex.ru

Обсуждение

давно
Профессор
401888
1232
11.10.2009, 08:19
общий
это ответ
Здравствуйте, stella-azazel!
Решение задачи в приложении.

Приложение:
uses crt;
type mas=array[1..20] of integer;{тип одной последовательности}
var p:array[1..20] of mas;{массив последовательностей}
n,k,a,b,i,j,cn,sm:integer;
begin
clrscr;
repeat
write('Введите количество последовательностей не более 20 k=');
readln(k);
write('Введите размер последовательностей не более 20 n=');
readln(n);
until (k in [1..20])and(n in [1..20]);
writeln('Введите данные в последовательности:');
for i:=1 to k do
begin
writeln('Последовательность ',i);
for j:=1 to n do
begin
write('p[',i,'][',j,']= ');
readln(p[i][j]);
end;
end;
clrscr;{после ввода очистим экран}
writeln('Заданные последовательности:');
for i:=1 to k do
begin
write(i,' -> ');
for j:=1 to n do
write(p[i][j],' ');
writeln;
end;
repeat
writeln('Введите границы отрезка b>a:');
readln(a,b);
until b>a;
for i:=1 to k do
begin
cn:=0;sm:=0;
for j:=1 to n do
if(p[i][j]>=a)and (p[i][j]<=b) then cn:=cn+1{считаем количество в интервале и суммы вне его}
else sm:=sm+p[i][j];
writeln('В последовательности ',i,' количество=',cn,' сумма=',sm);
end;
readln
end.
Неизвестный
11.10.2009, 08:25
общий
это ответ
Здравствуйте, stella-azazel.
Код программы в приложении. Также я отправил всё на stella-den@yandex.ru.

Приложение:
Program z_173147;
const
k = 3;
n = 5;
var
Arr: array [1..k, 1..n] of Real;{k последовательностей по n элементов в каждой}
a, b, sum: Real;
i, j, count: Integer;
begin
{Ввод элементов последовательностей}
for i := 1 to k do
begin
WriteLn('Vvod elementov ', i, '-i posledovatelnosti');
for j := 1 to n do
begin
Write(j, '-i element: ');
ReadLn(Arr[i, j]);
end;
end;

Write('Enter a: ');
ReadLn(a);
Write('Enter b: ');
ReadLn(b);

for i := 1 to k do
begin
count := 0;
sum := 0;
for j := 1 to n do
begin
if (Arr[i, j] >= a) and (Arr[i, j] <= b) {если число входит в отрезок [a, b]}
then
count := count + 1
else
sum := sum + Arr[i, j];
end;
WriteLn('V ', i, '-i posledovatelnosti kolichestvo = ', count, ', summa = ', sum);
end;

readln
end.
давно
Академик
320937
2216
11.10.2009, 09:31
общий
это ответ
Здравствуйте, stella-azazel.
Ответ в приложении. Нигде не указано, что последовательности надо хранить, посему массив не используется. На мыло выслал.

Приложение:
{
Даны k последовательностей по n элементов в каждой.В каждой
последовательности подсчитать количество элементов,принадлежащих
отрезку [a,b] и сумму остальных элементов.
}

program p173147;
var
a,b: integer; { границы отрезка }
k: integer; { число последовательностей }
n: integer; { число элементов в каждой последовательности }
i: integer; { счетчик последовательнстей }
j: integer; { счетчик элементов i-й последовательности }
x: integer; { текущий элемент i-ой последовательности }

count: integer;
{ число элементов i-последовательности, принадлежащих отрезку [a,b] }
sum: integer;
{ сумма элементов i-последовательности, не принадлежащих отрезку [a,b] }

begin
write('kolvo posledovatelnostei k=');
readln(k);

write('kolvo elementov v posledovatelnosti n=');
readln(n);

write('levaya granitsa a=');
readln(a);

write('pravaya granitsa b=');
readln(b);

for i:= 1 to k do { для каждой последовательности }
begin
sum := 0;
count := 0;
writeln;
writeln(i, ' posledovatelnost');
for j:= 1 to n do { для каждого элемента }
begin
write('element ', j, ' x=');
readln(x);
if (x>=a) and (x<=b) then
count := count + 1
else
sum := sum + x;
end; { for j }
writeln( i, ' posledovatelnost: sum=', sum, ' count=', count);
end; { for i }
readln;
end.
Форма ответа