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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2008, 20:11   #1
vlad1991
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 69
По умолчанию Циклы на Паскале.

Помогите пожалуйста решить задачки:
1.дано натуральное число n.Вычислить
y=1*3*5...n, если n-нечетное
y=2*4*6...n, если n-четное.
2.Среди всех двухзначных чисел , определить количество простых и вывести их на экран.
3.дано натуральное число n.Составить программу для вычисления произведения и сомножителей:
2/1*2/3*4/3*4/5*6/5*6/7...
4.вычислить сумму ряда и сравнить со стандартным значением
сумма ряда:
S=1+((cosx)/1!)+...+((cosnx)/n!)+...
при 0.1=<x<=1

стандартное значение y=(e^cosx)*cos(sinx)

Помогите пожалуйста если не трудно!!!
vlad1991 вне форума Ответить с цитированием
Старый 06.10.2008, 20:28   #2
vlad1991
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 69
По умолчанию

program №4;
var x,S,R:real;
n:integer;
begin
writeln('Vvedite n,x');
readln(n,x);
S:=1;
n:=1
while x>=0.1 and x<=1 do
begin
S:=S+R;
n:=n+1;
R:=(cos(n*x))/(n*cos((n-1)*x));
end;
writeln(R=', R);
readln
end.


В чем тут ошибка и как можно сравнить с стандартным значением???
vlad1991 вне форума Ответить с цитированием
Старый 06.10.2008, 20:58   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

1 ошибка. У нас х не может меняться, он вводится с клавиатуры.
При вводе надо делать проверку
repeat
write('Vvedite x v int[0.1,1] x=');
readln(x);
until (x>=0.1) and (x<=1);
2. Вводим n.
repeat
write('Vvedite naturalnoe n=');
readln(n);
until (n>0);
3. Поскольку мы точно знаем сколько итераций будем делать, можно использовать цикл for . . do.
Код:
S:=1;r:=0;t:=1;//начальное значение
for i:=1 to n do
   begin
     r:=r+cos(x);//cosnx
     t:=t*i;       //n!
     S:=S+r/t;
    end;
writeln('S=',S:0:4);
writeln('Vychislennoe S=',exp(cos(x))*cos(sinx):0:4);
readln
end.
Примерно так. Не проверял.
puporev вне форума Ответить с цитированием
Старый 06.10.2008, 21:36   #4
vlad1991
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 69
По умолчанию

че-то неправильно вроде=((!?!?
vlad1991 вне форума Ответить с цитированием
Старый 06.10.2008, 22:11   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вы правы, не понял немного формулу, искупаю свою вину.
Код:
uses crt;
var x,S,r,t:extended;
    n,i:integer;
begin
clrscr;	
repeat
write('Vvedite x v int[0.1,1] x=');
readln(x);
until (x>=0.1) and (x<=1);
repeat
write('Vvedite naturalnoe n=');
readln(n);
until (n>0);
S:=1;r:=0;t:=1;
for i:=1 to n do
   begin
     r:=r+x;
     t:=t*i;
     S:=S+cos(r)/t;
    end;
writeln('S=',S:0:8);
writeln('Vychislennoe S=',exp(cos(x))*cos(sin(x)):0:8);
readln
end.
puporev вне форума Ответить с цитированием
Старый 06.10.2008, 22:24   #6
vlad1991
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 69
По умолчанию

Спасибо!Вот вопрос!А если ответ стандартного значение не совпадает с нашим, это значит, что неправильно?Или все же это правильно???Просто там где-то на 0,01-0,1 больше!!!!
vlad1991 вне форума Ответить с цитированием
Старый 06.10.2008, 22:35   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Неправда, я тестировал программу. При х=0,5 и n=100 совпадает до 8 знака точно, больше не проверял.
puporev вне форума Ответить с цитированием
Старый 06.10.2008, 22:35   #8
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

Цитата:
Сообщение от vlad1991 Посмотреть сообщение
Спасибо!Вот вопрос!А если ответ стандартного значение не совпадает с нашим, это значит, что неправильно?Или все же это правильно???Просто там где-то на 0,01-0,1 больше!!!!
Может в вашем ответе просто округлили, тем более, что десятые или сотые конкретно для вашей задачки ничего не решают
Arkuz вне форума Ответить с цитированием
Старый 06.10.2008, 22:41   #9
vlad1991
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 69
По умолчанию

Вы правы!!!
Но вот еще помойму где r:=r+x там случайно будет не r:=i*x, ведь у нас при увеличении i увеличивается и x в i раз!?
vlad1991 вне форума Ответить с цитированием
Старый 06.10.2008, 22:55   #10
vlad1991
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 69
По умолчанию

Ааааааа, так это ожно и то же=)))
vlad1991 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Циклы! vlad1991 Паскаль, Turbo Pascal, PascalABC.NET 15 28.10.2008 22:07
Циклы (Pascal) Дима82 Помощь студентам 4 07.06.2008 17:07
Итерационные циклы Андрюха из ПХТТ Паскаль, Turbo Pascal, PascalABC.NET 3 14.02.2008 15:49