Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2012, 08:35   #1
KIRILOW
Форумчанин
 
Регистрация: 28.10.2012
Сообщений: 118
Восклицание Дан одномерный массив A. Вычислить по формуле

Даны действительные числа а(1),а(2),...а(30)
Вычислить y=a(1)*a(20)-a(2)*a(29)+a(3)*a(28)-..-a(30)*a(1)

Вот что у меня получилось:

Код:
var
  y: real;
  n: integer;

begin
  readln(n);
  //ввод аi чисел
  if odd(n) then
  begin
    y := a[n div 2 + 1] * a[n div 2 + 1];
    if odd(n div 2) then
      y := -y;
  end
  else
    y := 0;
  writeln(y);
end.
KIRILOW вне форума Ответить с цитированием
Старый 18.12.2012, 09:21   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Вот что у меня получилось:
Рад за Вас. А в чем вопрос?

Цитата:
Код:
y := a[n div 2 + 1] * a[n div 2 + 1];
мне кажется, или у Вас тут вместо исходной формулы - обычное возведение в квадрат?

Кроме того, сумма не считается. Считаются только отдельные слагаемые (y)

Цитата:
Вычислить y=a(1)*a(20)-a(2)*a(29)+a(3)*a(28)-..-a(30)*a(1)
В первом произведении не опечатка ли? Имхо должно быть а(1)*а(30).

Вообще это решается циклом, у Вас его нет.

Код:
  readln(n);
  //ввод аi чисел

  j:=30;
  sum:=0;
  for i:=1 to 30 do begin
    y:=a[i]*a[j];
    if odd(i) then y:=-y;
    sum:=sum+y;
    inc(j);
  end;
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 18.12.2012 в 09:25.
Sciv вне форума Ответить с цитированием
Старый 18.12.2012, 09:25   #3
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
Вычислить y=a(1)*a(20)-a(2)*a(29)+a(3)*a(28)-..-a(30)*a(1)
а там точно a(20)? или всё-же a(30)?

если a(30), то смысла вычислять 0 нет никакого. Иначе же y = a(1)*(a(20)-a(30))
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 18.12.2012, 09:50   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
если a(30), то смысла вычислять 0 нет никакого. Иначе же y = a(1)*(a(20)-a(30))
Кстати, да, верно подмечено
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан одномерный массив, сформировать новый массив по заданному правилу {Delphi} Nickolai47 Помощь студентам 5 16.12.2012 14:51
Дан одномерный целочисленный массив А(N) cjcezar Помощь студентам 2 12.11.2011 21:11
Дан одномерный массив Mixail876 Паскаль, Turbo Pascal, PascalABC.NET 0 07.06.2010 23:41
Дельфи 7. Дан одномерный массив pigtak Помощь студентам 6 09.12.2009 20:48
Вычислить массив R[1:n] по формуле r[i]=0,8 cos (4ax - ih) ser-stereo Паскаль, Turbo Pascal, PascalABC.NET 1 23.10.2008 22:41