|
Вопрос # 5 782/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Пишу программу которая создает рандомный массив...
Создать одномерный массив M[1..n]. Заполнить массив случайными целыми числами в диа-пазоне [a,b] с помощью функции Random(x).
Найти сумму и произведение каждого 3-его элемента в массиве (т.е. 3, 6, 9, 12 и т.д. элементы), а также минимальное значение среди четных и максимальное значение среди нечетных элементов масси-ва.
Сумма .... ... ... ... ... ... = ХХХХХХХХ
Произведение . ... ... ... ... = ХХХХХХХХ
Минимум .. ... ... ... ... ... = ХХХХХХХХ
Максимум . ... ... ... ... ... = ХХХХХХХХ
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
 |
Вопрос задал: Feniks257 (статус: Посетитель)
Вопрос отправлен: 26 ноября 2011, 22:40
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 27 ноября 2011, 13:58; участников в обсуждении: 3.
|
min@y™ (статус: Доктор наук), 27 ноября 2011, 09:18 [#1]:
Цитата (Feniks257):
чето не пойму как сделать каждые 3-ие символы...
for Index:= 1 to N do
if Index mod 3 = 0
then ... ;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Feniks257 (статус: Посетитель), 27 ноября 2011, 11:50 [#2]:
спасибо))))))))))
|
|
Feniks257 (статус: Посетитель), 27 ноября 2011, 12:02 [#3]:
У меня всеравно не считает каждые 3-ие символы...
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i:integer;
str:string;
//Найти сумму и произведение каждого 3-его элемента в массиве (т.е. 3, 6, 9,
//12 и т.д. элементы),
//а также минимальное значение среди
//четных и максимальное значение среди нечетных элементов масси-ва.
//1,30,9
begin
a:=StrToInt(Edit1.Text);
b:=StrToInt(Edit2.Text);
sum:=0;
p:=1;
randomize;
for i:=1 to n do m[i]:=a+random(b-a+1);
min:=m[1];
max:=m[1];
for i:=1 to n do
begin
if m[i] mod 3 = 0 then
begin
sum:=sum+m[i]; // сумма каждых 3-их элементов
p:=p*m[i]; // произведение каждых третьих
end;
if m[i] mod 2<>0 then //нечетные
begin
max:=m[i]; // max нечет
end
else
begin
if m[i]<min then min:=m[i]; //min чет
end;
end;
for i:=1 to n do
begin
str:=str+' '+ IntToStr(m[i]);
end;
begin
while length(str)<45 do str:=str+' ';
str:=str+' '+IntToStr(sum);
while length(str)<70 do str:=str+' ';
str:=str+' '+IntToStr(p);
while length(str)<110 do str:=str+' ';
str:=str+' '+IntToStr(min);
while length(str)<139 do str:=str+' ';
str:=str+' '+IntToStr(max);
mmOut.Lines.Add(str);
end;
end;
end.
|
|
Толяныч (статус: 4-ый класс), 27 ноября 2011, 13:58 [#4]:
.....ть !
при чем тут if m[i] mod 2 ?! Сказано ведь русским по белому :
if (Index mod 2) = 0 // т.е. i mod 2 , не m[i] !
Сам параметр цикла проверяется, индекс элемента массива, а не его значение !
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|