| 
| 
 | Вопрос # 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;
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |