Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2010, 12:10   #1
saveliev87
 
Регистрация: 06.01.2010
Сообщений: 7
По умолчанию Найти сумму и количество элементов с заданным условием

задача такая: 1. Найти сумму и количество элементов с заданным условием:
a) отрицательные элементы каждого столбца, меньшие заданного числа а;
b) элементы каждого столбца, меньшие среднего арифметического элементов каждого столбца;

написал вот чё:

program p5_2_1;
uses crt;
const n=7;
m=8;
var A:array[1..n,1..m] of integer;
c,s,k,i,j:integer;
begin clrscr;
randomize;
for i:=1 to n do begin
for j:=1 to m do begin
A[i,j]:=random(50)-25;
write(A[i,j]:4);
end;
writeln;
end;


writeln('vvedite 4islo ');
readln(c);
s:=0;
for j:=1 to m do begin
k:=0;
for i:=1 to n do
if A[i,j]<0 then
k:=k+1;
if (a[i,j]<0) or (a[i,j]<c) then
s:=s+a[i,j];
writeln(j,' - ',k,s:5);
end;
readln;
end.

количество отрицательных элементов в столбцах считает правильно,
но сумму s не считает, пишет или последний элемент столбца, или ваще непонятно че

Ещё есть вот: 4. Вставить по одному элементу перед всеми отрицательными элементами одномерного массива

тут наверно надо вывод массива в цикл запихнуть, только реализация хромает(
saveliev87 вне форума Ответить с цитированием
Старый 06.01.2010, 13:00   #2
Андрей.12
Программист
Пользователь
 
Регистрация: 12.10.2009
Сообщений: 77
По умолчанию

А если сделать так:
а)
Код:
program p5_2_1;
uses crt;
const n=3;
m=3;
var A:array[1..n,1..m] of integer;
c,s,k,i,j:integer;
begin clrscr;
randomize;
for i:=1 to n do begin
for j:=1 to m do begin
A[i,j]:=random(50)-25;
write(A[i,j]:4);
end;
writeln;
end;


write('vvedite 4islo ');
readln(c);
k:=0;
s:=0;
for j:=1 to m do

for i:=1 to n do  begin
if (a[i,j]<0) and (A[i,j]<c) then begin
k:=k+1;
s:=s+a[i,j]; end;
 end;
writeln(k);
writeln(s);
readln;


readln;
end.
Андрей.12 вне форума Ответить с цитированием
Старый 06.01.2010, 13:08   #3
Андрей.12
Программист
Пользователь
 
Регистрация: 12.10.2009
Сообщений: 77
По умолчанию

4 задача не понятна, куда что вставлять
Андрей.12 вне форума Ответить с цитированием
Старый 06.01.2010, 13:11   #4
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
Вставить по одному элементу перед всеми отрицательными элементами одномерного массива
общий алгоритм
Цитата:
идем по массиву
пока не конец массива begin
находим отрицательный сдвигаем весь массив с этого элемента вправо вставляем нужное число увеличиваем индекс на 2 end;
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 06.01.2010, 13:16   #5
saveliev87
 
Регистрация: 06.01.2010
Сообщений: 7
По умолчанию

так ведь надо поситать сумму отрицательных элементов каждого столбца, а не всех в массиве.

и вывести номер столбца - кол-во отрицат. эл-тов - сумма(меньших с)

вот сумму посчитать и немогу(
saveliev87 вне форума Ответить с цитированием
Старый 06.01.2010, 13:22   #6
saveliev87
 
Регистрация: 06.01.2010
Сообщений: 7
По умолчанию

зы, а как это у вас текст то жирненький, то цветной в программе?)
saveliev87 вне форума Ответить с цитированием
Старый 06.01.2010, 13:23   #7
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Код:
program p5_2_1;
uses crt;
const n=3;
m=3;
var A:array[1..n,1..m] of integer;
c,s,k,i,j:integer;
begin clrscr;
randomize;
for i:=1 to n do begin
for j:=1 to m do begin
A[i,j]:=random(50)-25;
write(A[i,j]:4);
end;
writeln;
end;
write('vvedite 4islo ');
readln(c);
for j:=1 to m do begin
s:=0;k:=0;
for i:=1 to n do  
if (a[i,j]<0) and (A[i,j]<c) then begin
k:=k+1;
s:=s+a[i,j]; end;
writeln(j,'==>',s,'==>',k); 
end;
readln;
end.
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 06.01.2010, 13:32   #8
saveliev87
 
Регистрация: 06.01.2010
Сообщений: 7
По умолчанию

спасибо, понял, только если ввести отрицательное число с, то к считается не менше 0, а меньше этого с

Последний раз редактировалось saveliev87; 06.01.2010 в 13:37.
saveliev87 вне форума Ответить с цитированием
Старый 06.01.2010, 13:48   #9
saveliev87
 
Регистрация: 06.01.2010
Сообщений: 7
По умолчанию

Цитата:
Сообщение от ОДИНОЧЕСТВО В СЕТИ Посмотреть сообщение
общий алгоритм
чтобы 1 число вставить, я так написал

k:=1;
while a[k]>=0 do k:=k+1;

writeln(k);


for i:=n downto k+1 do
a[i+1]:=a[i];
a[k+1]:=x;


а чтобы перед каждым, надо эти циклы как то объединить?
saveliev87 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
паскаль.найти сумму парных элементов. belka1 Помощь студентам 3 14.11.2009 22:37
Найти максимальный из положительных элементов матрицы и сумму отрицательных элементов. bessonov12 Microsoft Office Excel 7 04.05.2009 05:44
Определить сумму и количество четных элементов массива KREGI Общие вопросы Delphi 10 05.03.2009 18:18
найти сумму элементов строки jenja Общие вопросы Delphi 2 02.04.2008 17:49