Составить программу формирования массива А из N случайных вещественных чисел, сделать возможным его редактирование. Вычислить сумму дробных частей положительных элементов массива.


Аноним: begin
var a:=ArrRandomReal(ReadInteger('n='),-50,50); a.Println;
Writeln('S=',a.Where(x->x>0).Select(x->Frac(x)).Sum)
end.
Аноним: И Дельфи тут нервно курит в сторонке бамбук. Под ручку с разными С++
morfisleep: Еще бы было понятно что тут написано. Было бы вообще замечательно.
Аноним: Первая строка запрашивает число элементов n, потом создает динамический массив и заполняет его числами типа Real из диапазона [-50;50]. Заполненный массив выводится на монитор для контроля.
Аноним: Вторая строка пропускает массив через фильтр с условием x>0, т.е.отбирает только положительные элементы массива. Эти элементы проецируются на выражение Frac(x), оставляющую лишь дробные части и эти проекции суммируются. Ну а потом выводится эта сумма..
Аноним: На первый взгляд непривычно. Но этому учатся, зная обычный Паскаль, примерно за 10-15 часов.
Аноним: Как сделать, чтоб элементы выводились с 2 знаками после запятой?
Аноним: begin
var a:=ArrRandomReal(ReadInteger('n='),-50,50); a.Foreach(x->Write(x:6:2));
Writeln(NewLine,'S=',a.Where(x->x>0).Select(x->Frac(x)).Sum)
end.
Аноним: Это язык, в котором нет проблем сделать все, что надо, буквально за минуту-две.
Аноним: В него уже встроены регулярные выражения, арифметика произвольной точности, комплексная арифметика, различные структуры типа стек, очередь и т.д.,

Ответы

Ответ дал: Аноним
0
{$APPTYPE CONSOLE}
Const
   N = 13;
Var
   A:array[1..N] of real;
   i,C:integer;
Procedure ZAPOLNENIERND();
Var i,j:integer;
Begin
Randomize;
For i:= 1 to N do
    A[i]:=random*21-10;
End;

Procedure BbIBOD();
Var i,j:integer;
Begin
For i:= 1 to n do
    Write(A[i]:4:1,' ');
WriteLn;
End;

Procedure RE();
Begin
Write('i = ');ReadLn(i);
Write('A[',i,'] = ');ReadLn(A[i]);
End;

Procedure SF();
Var
   i:integer;
   S:real;
Begin
S:=0;
For i:= 1 to n do
    if A[i] > 0 then S:=S+Frac(A[i]);
WriteLn('S = ',S);
End;

Begin
ZAPOLNENIERND();
BbIBOD();
Repeat
WriteLn;
WriteLn('1 - заполнить массив случайными числами');
WriteLn('2 - ввести новое значение заданного элемента');
WriteLn('3 - вычислить сумму дробных частей положительных элементов массива. ');
WriteLn('4 - вывод массива');
WriteLn('9 - выход');
ReadLn(C);
Case C of
1:
  Begin
  ZAPOLNENIERND;
  BbIBOD;
  End;
2:RE;
3:
  Begin
  SF();
  End;
4:BbIBOD;
End
Until C = 9;
End.
Вас заинтересует