![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Добрый день!
вот мучаюсь и никак не домучаюсь))) есть задачка Даны натуральное число n, действительные числа х1, .... , хn. в последовательности х1, .... , хn все члены, меньшие двух заменить нулями. Кроме того, получить сумму нечетных элементов массива и их количество. я так понял, что memo выводим массив каких либо чисел, к примеру Random(10), а потом заменяем 1 на 0 - вот здесь и вышла загвоздка (((( у меня все числа заменяются нулями Помогите плиз P.S. код для заполнения мемо у меня вышел такой: Код:
procedure TForm1.BitBtn1Click(Sender: TObject); var i:integer; begin memo1.Clear; for i:=1 to n do begin a[i]:=random(10); memo1.Lines.Add(inttostr(a[i])); end; end; код для замены: Код:
procedure TForm1.BitBtn2Click(Sender: TObject); var i:integer; begin for i:=1 to n do if a[i]=1 then a[i]:=0; memo1.lines.add(inttostr(a[i])); Последний раз редактировалось Admin, 23.03.2010 в 15:09. |
|
#2
|
||||
|
||||
|
Для начала большая просьба использовать BB коды в панели ссобщения, так проще чиать код...
Далее по задаче: Код:
var
a : array of real;//Динамический массив для разных n
n : word;//размер массива
//Тут все верно, только небольшая коррекция от меня
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i : integer;
begin
memo1.Clear;
//memo2.Clear;
SetLength(a, n-1);//Установка размера динамиченского массива
for i := 1 to n do
begin
a[i-1] := random(10);
memo1.Lines.Add(inttostr(a[i-1]));
//memo2.Lines.Add(inttostr(a[i-1]));//Непонятно зачем, наверное надо
end;
end;
//Закрытие формы
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
form1.close
end;
//Расчеты
procedure TForm1.BitBtn2Click(Sender: TObject);
var
i, j:integer;
Summ : real;
begin
//Заменяем меньше 2-х нулями
for i:=0 to n-1 do
if a[i] < 2 then
a[i]:=0;
//Сумма нечетных элементов массива
Summ := 0;
j : 0;
for i := 0 to n-1 do
if i mod 2 = 1 then //нечетные элементы массива
begin
Summ := Summ + a[i];
Inc(j);
end;
//Вывод результатов
memo1.Clear;
for i := 0 to n-1 do
memo1.lines.add(inttostr(a[i]));
memo1.lines.add('Сумма ' + FloatToStr(Summ));
memo1.lines.add('Количество ' + IntToStr(j));
end; |