-
[QUOTE=A6oJlTyc;9454702][SIZE="3"]...
3)написать программу для нахождения суммы отрицательных элементов массива AD, содержащего 40 элементов.[/SIZE][/QUOTE]
Получилось что-то вроде такого:
[PHP]
list=Array.new(40).map{|item| item=rand(50)%8-2}.sort!
sum=0
list.each do |var|
break unless var < 0
sum += var
print "+(#{var})"
end
puts "= #{sum}"
[/PHP]
Вот помог, Вам осталось только конвертировать на нужный вам язык.
P.S. Паскаль не помню... :-/
-
[QUOTE=A6oJlTyc;9454702][B][SIZE="3"]
3)написать программу на языке pascal для нахождения суммы отрицательных элементов массива AD, содержащего 40 элементов.[/SIZE][/B]
[SIZE="4"]заранее огромное человеческое спасибо)[/SIZE][/QUOTE]
для BP 7.0
uses crt;
var AD:array[1..40] of integer;
i:byte;
s:integer;
begin
{ввод эл-тов массива}
for i:=1 to 40 do read(AD[i]);
s:=0;
{вычисление суммы}
for i:=1 to 40 do
if AD[i]<0 then s:=s+AD[i];
write('s=',s);
end.
И все-таки советую учить предмет. Нельзя во всем спрятаться за чужой спиной..
-
[QUOTE=rооt;9572767]Получилось что-то вроде такого:
[PHP]
list=Array.new(40).map{|item| item=rand(50)%8-2}.sort!
sum=0
list.each do |var|
break unless var < 0
sum += var
print "+(#{var})"
end
puts "= #{sum}"
[/PHP]
Вот помог, Вам осталось только конвертировать на нужный вам язык.
P.S. Паскаль не помню... :-/[/QUOTE]
Тогда уже
[CODE]
sum = list.[B]select[/B]{|x| x<0}.[B]inject[/B]{|acc, x| acc+x}
[/CODE]
;)
А на хаскеле вообще красотень :).
[CODE]Prelude> [B]sum[/B].[B]filter[/B](<0) [B]$[/B] [-20..19]
-210
[/CODE]
-
[QUOTE=Яр;9573269]Тогда уже
[CODE]
sum = list.[B]select[/B]{|x| x<0}.[B]inject[/B]{|acc, x| acc+x}
[/CODE]
;)
[/QUOTE]
:)
а я с итератором написал хотел получить ответ ввида
[CODE]+(-n)+...+(-n+1) = sum[/CODE]
p.s. жаль latex'а нет :(
-
[B]rооt[/B], :) Ага. А вот ещё можно и так извратиться:
[CODE]sum = [B]eval[/B]( [COLOR="Sienna"]'(%s)'[/COLOR] % list.[B]select[/B]{|x|x<0}.[B]join[/B]([COLOR="#a0522d"]')+('[/COLOR]) )[FONT="Courier New"][/FONT][/CODE]
А строка внутри eval-a как раз будет такая ((-nk)+...+(-nk+m)). Хотя можно и без скобок вовсе. Но eval -- это в любом случае опасно :)
-
[QUOTE=Яр;9576612][B]rооt[/B], :) Ага. А вот ещё можно и так извратиться:
[CODE]sum = [B]eval[/B]( [COLOR="Sienna"]'(%s)'[/COLOR] % list.[B]select[/B]{|x|x<0}.[B]join[/B]([COLOR="#a0522d"]')+('[/COLOR]) )[FONT="Courier New"][/FONT][/CODE]
А строка внутри eval-a как раз будет такая ((-nk)+...+(-nk+m)). Хотя можно и без скобок вовсе. Но eval -- это в любом случае опасно :)[/QUOTE]
:good:
-
А вот решение на шарпе с использованием linq. Коротко и красиво :)
[CODE]int sum = array.Where(s => s < 0).Sum();[/CODE]
-
Кто у тебя преподователь???