|
Вопрос # 2 224/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Помогите пожалуйста написать алгоритм решения задачи на тему Массивы,по DELPHI:
Вычислить произведение чисел, принадлежащих промежутку (A, B], и количество отрицательных чисел, стоящих на местах кратных 3
 |
Вопрос задал: Лозовой Александр (статус: Посетитель)
Вопрос отправлен: 22 декабря 2008, 23:11
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Anderson N.N
Здравствуйте, Лозовой Александр Викторович!
Вот вроде как универсальный пример... Не скажу что самый лучший но работает
Не забудь Мath подключить.Думаю обьяснять что это консольное приложение не надо
Приложение: Переключить в обычный режим- program Project2;
-
- {$APPTYPE CONSOLE}
-
- uses
- SysUtils,Math;
-
- var i,n,a,b,mCount:integer;
- rez:Int64;
- ch:char;
- ar:array of integer;
- begin
- rez:=1;
- mCount:=0;
- Writeln('Input a'); Readln(a);
- Writeln('Input b'); Readln(b);
-
- if (b>=a) then
- WriteLn('Error! "a" must be > "b"');
- Writeln('Input b'); Readln(b);
-
- Writeln('Input razmer massiva:');
- Readln(n);
- SetLength(ar,n);
- Writeln('Zapolnit automatic (a) or vrychnyu (r)');
- readln(ch);
- case ch of
- 'a': for i:=0 to n-1 do
- ar[i]:=RandomRange(a,b);
- 'r': for i:=0 to n-1 do
- Readln(ar[i]);
- else Writeln('Unkorrect sumbol');
- end;
- for i:=0 to n-1 do
- begin
-
- if (ar[i]<0) then inc(mCount);
- if (ar[i]>a)and(ar[i]<b)
- then rez:=rez*ar[i];
- end;
- Writeln('Proizvedenie chisel is [a,b]='+inttostr(rez));
- writeln('Kol-vo otrizatelnix chisel kratnix 3='+inttostr(mCount));
- readln;
- end.
-
 |
Ответ отправил: Anderson N.N (статус: 2-ой класс)
Время отправки: 23 декабря 2008, 17:30
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 23 декабря 2008, 06:19; участников в обсуждении: 2.
|
Death_Master (статус: Посетитель), 22 декабря 2008, 23:44 [#1]:
Вычислить произведение чисел, принадлежащих промежутку (A, B], и количество отрицательных чисел, стоящих на местах кратных 3
var x:extended;
num:longint;
.....
begin
....
x:=1;
for z:=0 to n if ((ar[z]>a)and(ar[z]<b)) then x:=x*arr[z]//произведение чисел в промежутке от a до b
z:=0;n:=0;
while z<n do begin inc(z);
if (ar[z]<0) then inc(n);end;
P.S. это только наброски
Обычно захожу по ночам... (60-70%)
Если нужно что-то написать, то беру оборудованием, деньгими и пивом(при личной встрече)...
P.S. Помогаю и рассказываю бесплатно ^_^.....Nyaaa!
|
|
Мережников Андрей (статус: Абитуриент), 23 декабря 2008, 06:19 [#2]:
Немного надо подправить вычисление количества отрицательных чисел так:
z:=0;
while z
do begin
inc(z,3);
if (ar[z]<0)
then inc(n);
end;
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|