ВШ
Валерий Шальнов

Помоги с написанием программы на делфи

Ну вот почему она криво работает?
Надо ввести одномерный массив не более 5 элементов.
Найти среднее арифм. чётных элементов.
Создать массив из элементов, кратных 3.
Найти макс. отриц. элемент исходного массива

program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;
var i, N :byte;
k,c:integer;
A:array [1..5] of integer;
B:array [1..5] of integer;
SrArifm, Summa, amax: real; // summa - сумма чётных чисел масс. А, c - количество чётных чисел
begin
Writeln('Vvedite kolichestvo elementov massiva: ');
Readln(n);
Writeln('Vvedite massiv: ');
For I:=1 to N do
Begin
Write('A[', I, '] = ');
Readln(A);
End;
Summa:=0;
c:=0;
if A mod 2 = 0 then
Begin
c:= c+1; //количество чётных чисел КАКАЯ ФОРМУЛА??? ?
Summa:= Summa +A;
SrArifm:= Summa/c;
End;
if A mod 2 <> 0 then Writeln ('Net chetnyh!')
else
Writeln('kolichestvo chetnyh chisel: ',c);
Writeln('Srednee arifmeticheskoe chetnyh chisel ravno ', SrArifm:6:2);

// 2 часть задачи: составляем 2 массив и выводим
if a mod 3=0
then
Begin
k:=k+1;
B[K]:=A;
end;
if a mod 3 <>0 then
Writeln('Net elementov, kratnyh 3! ');
Writeln('Massiv B: ');
For I:=1 to k do
Writeln(B); // конец 2 части

for I := 1 to N do //3 часть
if a<0
then
Amax:=A[1];

if A>Amax then
Amax:=A ;
Writeln('Maksimalniy element massiva A Amax= ', Amax); // конец 3 части

Readln;
end.

Jurijus Zaksas, не элементы с чётным индексом, как Вы написали, а чётные ЭЛЕМЕНТЫ массива. Массив заполняется человеком с клавиатуры. Где гарантия, что 2 и 4 элементы будут чётными? Взять ввести 3 и 7 - не пройдёт.

Александр Плаксин
Александр Плаксин

Детский сад блин. Для того что бы найти четные элементы - узнаём делятся ли они на два без остатка.

АС
Алексей Свиридов

Найти среднее арифм. чётных элементов.
writeln((a[2]+a[4])/2.0); // и нех тут циклы с условиями крутить.
Впрочем, если имеются ввиду четные значения элементов, то
s:=0;
n:=0;
for j:=1 to 5 do
if even(a[j]) then begin
s:=s+a[j];
inc(n);
end;
if n>0 then
writeln(s/n);

Создать массив из элементов, кратных 3.
k:=0;
for j:=1 to 5 do
if a[j] mod 3 = 0 then begin
inc(k);
b[k]:=a[j];
end;
for j:=1 to k do writeln(b[j]);

Найти макс. отриц. элемент исходного массива
d:=0;
for j:=1 to 5 do
if a[j]<0 then begin
if d=0 then
d:=j;
if a[d]< a[j] then
d:=j;
end;
if d>0 then writeln(a[d]);

Как видишь, все очень просто и главное - коротко.

Евгений Бехтерев
Евгений Бехтерев

макс. отриц. элемент - это же минимум?: )
поправлю предыдущего автора.
min=0;
for j:=1 to 5 do
if a[j]

Похожие вопросы
Как ускорить исполняемый код программы написаной в Лазарусе? (По сравнению с делфи оч медлено )
Помогите создать программу через Делфи
Помогите в написание не большой программы.
помогите в написании программы! в доп
C++ Помогите с написанием программы !
Программа желательно на делфи. помогите плиииз)
Помогите написать программу на Делфи 7!
помогите с написанием программы в паскале))
Помогите написать программу на Паскале и на Делфи...
Помогите программу переделать из паскаля в делфи