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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2012, 22:59   #1
Roman1295
Пользователь
 
Регистрация: 06.09.2012
Сообщений: 51
По умолчанию Решение выражения.

Вычислить: (1+sin x_)(3+sin 3x) (5+sin 5x) …(11+sin 11x)
Решил так:
Код:
var i,x :integer;   j,k: real;
begin
Readln(x); 
For i:=3 to 11 do
begin
k:= 1+sin(x);
j:=k*(i+sin(i*x));
i:=i+2;
end;
writeln(j);
end.
Просьба проверить. По условию еще: надо юзать только цикл со счетчиком.
Roman1295 вне форума Ответить с цитированием
Старый 19.12.2012, 06:21   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Вот так правильно. Сравните со своим кодом и найдите ошибки

Код:
j:= 1;
For i:=1 to 11 do
begin
  j:=j*(i+sin(i*x));
  i:=i+2;
end;
или так - тоже правильно

Код:
j:= 1+sin(x);
For i:=3 to 11 do
begin
  j:=j*(i+sin(i*x));
  i:=i+2;
end;
а еще вот так:

Код:
j:= 1+sin(x);
For i:=3 to 11 do
  if not odd(i) then
    j:=j*(i+sin(i*x));
end;
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 19.12.2012 в 06:24.
Sciv вне форума Ответить с цитированием
Старый 19.12.2012, 07:20   #3
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
Вот так правильно. Сравните со своим кодом и найдите ошибки

Код:
j:= 1;
For i:=1 to 11 do
begin
  j:=j*(i+sin(i*x));
  i:=i+2;
end;
или так - тоже правильно

Код:
j:= 1+sin(x);
For i:=3 to 11 do
begin
  j:=j*(i+sin(i*x));
  i:=i+2;
end;
нельзя так! о чем Delphi и предупреждает [Error] Project1.dpr: Assignment to FOR-Loop variable 'i'
не в дельфи возможен не очевидный инкремент на 3, а не как ожидается на 2...

Код:
program Project1;
var
  i:integer;
  f,x:real;
begin
  readln(x);
  i:=1;
  f:=1;
  while i<=11 do
  begin
    f:=f*(i+sin(i*x));
    i:=i+2;
  end;
  writeln(f);
end.
Не стесняемся, плюсуем!

Последний раз редактировалось Slym; 19.12.2012 в 07:23.
Slym вне форума Ответить с цитированием
Старый 19.12.2012, 08:44   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
нельзя так! о чем Delphi и предупреждает [Error] Project1.dpr: Assignment to FOR-Loop variable 'i'
не в дельфи возможен не очевидный инкремент на 3, а не как ожидается на 2...
Ах, да, вот про инкремент то я забыл

Но мое последнее решение вроде подходит под все требования компилятора, не?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 19.12.2012, 08:55   #5
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Т.к. цикл со счетчиком использовать надо, то вот.
Код:
  readln(x);
 f:=1;
 for i:=1 to 6 do   f:=f*((i*2-1)+sin((i*2-1)*x));
  writeln(f:6:3);
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение математического выражения DeadWarlock Паскаль, Turbo Pascal, PascalABC.NET 2 18.09.2012 18:23
решение математического выражения akum905 Общие вопросы C/C++ 0 12.11.2011 00:04
Решение выражения ((D^2-A)^2\D^2+B)-20. Kroleg Помощь студентам 3 27.06.2011 19:40
Решение логическоего выражения TRIZER Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 17.05.2011 12:22
решение выражения на паскале bonys91 Помощь студентам 2 02.04.2009 22:18