Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 224

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Помогите пожалуйста написать алгоритм решения задачи на тему Массивы,по DELPHI:

Вычислить произведение чисел, принадлежащих промежутку (A, B], и количество отрицательных чисел, стоящих на местах кратных 3

Приложение:
  1.  


Лозовой Александр Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Лозовой Александр (статус: Посетитель)
Вопрос отправлен: 22 декабря 2008, 23:11
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Anderson N.N

Здравствуйте, Лозовой Александр Викторович!
Вот вроде как универсальный пример... Не скажу что самый лучший но работает
Не забудь Мath подключить.Думаю обьяснять что это консольное приложение не надо

Приложение:
  1. program Project2;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6. SysUtils,Math;
  7.  
  8. var i,n,a,b,mCount:integer;
  9. rez:Int64;
  10. ch:char;
  11. ar:array of integer;
  12. begin
  13. rez:=1;
  14. mCount:=0;
  15. Writeln('Input a'); Readln(a);
  16. Writeln('Input b'); Readln(b);
  17.  
  18. if (b>=a) then
  19. WriteLn('Error! "a" must be > "b"');
  20. Writeln('Input b'); Readln(b);
  21.  
  22. Writeln('Input razmer massiva:');
  23. Readln(n);
  24. SetLength(ar,n);
  25. Writeln('Zapolnit automatic (a) or vrychnyu (r)');
  26. readln(ch);
  27. case ch of
  28. 'a': for i:=0 to n-1 do
  29. ar[i]:=RandomRange(a,b);
  30. 'r': for i:=0 to n-1 do
  31. Readln(ar[i]);
  32. else Writeln('Unkorrect sumbol');
  33. end;
  34. for i:=0 to n-1 do
  35. begin
  36.  
  37. if (ar[i]<0) then inc(mCount);
  38. if (ar[i]>a)and(ar[i]<b)
  39. then rez:=rez*ar[i];
  40. end;
  41. Writeln('Proizvedenie chisel is [a,b]='+inttostr(rez));
  42. writeln('Kol-vo otrizatelnix chisel kratnix 3='+inttostr(mCount));
  43. readln;
  44. end.
  45.  


Ответ отправил: Anderson N.N (статус: 2-ой класс)
Время отправки: 23 декабря 2008, 17:30
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 23 декабря 2008, 06:19; участников в обсуждении: 2.
Death_Master

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;

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 29 февраля 2020, 10:42
Выполнено за 0.02 сек.
Рейтинг@Mail.ru