Regnar Опубликовано 23 марта, 2009 Жалоба Share Опубликовано 23 марта, 2009 Спасибо, очень помогли. Как то подозрительно точно паскаль синусы считает, если учесть, что из себя представляет число Пи =) Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Regnar Опубликовано 25 марта, 2009 Жалоба Share Опубликовано 25 марта, 2009 В данный момент изучаю циклы и натолкнулся на небольшую проблему, объясните пожалуйста, где моя ошибка? Задача - посчитать (2^n)! program faktorial; var n,s,k: real; begin write('Ввод n '); readln(n); s:=1; k:=1; n:=(exp(n*ln(2))); {считаем выражение в скобках} while k<n do begin k:=k+1; s:=s*k; end; writeln(n); writeln('Ответ ',s:0:1); end. при вводе n = 2 ответ получается 120, хотя должне быть равен 24. Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Regnar Опубликовано 25 марта, 2009 Жалоба Share Опубликовано 25 марта, 2009 затерто Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
MpakV Опубликовано 25 марта, 2009 Жалоба Share Опубликовано 25 марта, 2009 Кажется тут все верно - ошибок не нашел. При запуске с 2йкой дает 24(Free Pascal Compiler version 2.0.4 [2007/02/02] for i386,Linux tapu-desktop 2.6.22-16-generic #1 SMP Mon Jan 26 00:07:52 GMT 2009 i686 GNU/Linux). Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Regnar Опубликовано 25 марта, 2009 Жалоба Share Опубликовано 25 марта, 2009 То есть дело в самом компиляторе? Очень-очень странно... У меня Borland Pascal 7.0... Сейчас попробовал другой дистрибутив - тоже самое. Черт. P.S. А в Turbo Pascal 7.0 все работает. Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
MpakV Опубликовано 25 марта, 2009 Жалоба Share Опубликовано 25 марта, 2009 Может где исходить не такой? Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Regnar Опубликовано 25 марта, 2009 Жалоба Share Опубликовано 25 марта, 2009 Может где исходить не такой? Ммм... Не понял вопроса :-) Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Regnar Опубликовано 25 марта, 2009 Жалоба Share Опубликовано 25 марта, 2009 xct спасибо Еще 1 проблема =( Подскажите, где на этот раз скосячил? Вот код программы, выводящей на экран значения 2-х функций chisl и znam. (chisl:=n! znam:=(2^n)!) program faktorial; var n,x: real; function znam (var n:real):real; var s1,k1 :real; begin s1:=1; k1:=1; while k1<n do begin k1:=k1+1; s1:=s1*k1; end; znam:=s1; end; function chisl (var n:real):real; var s, k: real; begin s:=1; k:=1; n:=(exp(n*ln(2))); while k<n do begin k:=k+1; s:=s*k; end; chisl:=s; end; begin write('Введите n '); readln(n); writeln(chisl(n):0:0); writeln(znam(n):0:0); end. у меня chisl и znam при любых значениях n равны n!, хотя chisl должен быть (2^n)! Где косяк? Ошибка, chisl и znam при любых вводимых n принимают значения (2^n)! Хотя znam должен быть равен n! Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Regnar Опубликовано 25 марта, 2009 Жалоба Share Опубликовано 25 марта, 2009 xct Спасибо, все понял. Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Regnar Опубликовано 25 марта, 2009 Жалоба Share Опубликовано 25 марта, 2009 А теперь собственно, конечная цель моих мучений Найти сумму ряда с точностью e=10^(-3), общий член которого: В матане я полный профан, поытался освоить ряды, конечно ничего не вышло Как мне обьяснили добрые люди, мне нужно найти сумму всех слагаемых ряда, не превышающих e=10^(-3). Правильно ли я понимаю, что сумма ряда это 1/(1*2) + (1*2)/(1*2*3*4) + (1*2*3)/(1*2..*8)? Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
BearKing Опубликовано 25 марта, 2009 Автор Жалоба Share Опубликовано 25 марта, 2009 xct, требуй по сто баксаф за листинг :-) Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Regnar Опубликовано 25 марта, 2009 Жалоба Share Опубликовано 25 марта, 2009 ExER у меня и ста рублей на данный момент не наберется xct Спасибо, что помогаете. Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
BearKing Опубликовано 25 марта, 2009 Автор Жалоба Share Опубликовано 25 марта, 2009 Regnar Шутка) Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Regnar Опубликовано 25 марта, 2009 Жалоба Share Опубликовано 25 марта, 2009 xct Программа ругается на несоответствие типа n, оно не может быть integer, так как из него высчитывается натуральный логарифм, и real оно тоже быть не может, поскольку в счетчике используются только значения порядкового типа. Никак не соображу, как это обойти. Не подскажете? P.S. Разобрался . Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
AmericaMustDie Опубликовано 25 марта, 2009 Жалоба Share Опубликовано 25 марта, 2009 Regnar var ch, zn, s:real; n:integer; begin n:=1; ch:=1; zn:=2; while ch/zn > 0.001 do begin s:=s+ch/zn; inc(n); ch:=ch*n; zn:=zn*exp(n*ln(2)); end; writeln('Result: ', s); end. Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Regnar Опубликовано 25 марта, 2009 Жалоба Share Опубликовано 25 марта, 2009 AmericaMustDie я примерно так и делаю. только вопрос назрел. Почему Вы zn приравниваете к единице? Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
AmericaMustDie Опубликовано 25 марта, 2009 Жалоба Share Опубликовано 25 марта, 2009 Regnar Исправил. Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Regnar Опубликовано 25 марта, 2009 Жалоба Share Опубликовано 25 марта, 2009 Вот мой код: program faktorial; uses crt; var x,y,a,e,s: real; n: integer; function chisl (var n:integer):real; var s1,k1,n1 :real; begin s1:=1; k1:=1; n1:=n; while k1<n1 do begin k1:=k1+1; s1:=s1*k1; end; chisl:=s1; end; function znam (var n:integer):real; var s,k,n2: real; begin s:=1; k:=1;n2:=n; n2:=(exp(n2*ln(2))); while k<n2 do begin k:=k+1; s:=s*k; end; znam:=s; end; begin clrscr; n:=1; e:=0.001; x:=chisl(n); y:=znam(n); a:=x/y; s:=0+a; while a>e do begin n:=n+1; a:=x/y; s:=s+a; end; writeln(s:0:5); readln(x); end. Только что то в нем неправильно, программа не выходит из последнего цикла. Опять я где-то накосячил =). Не подскажете, где именно? AmericaMustDie Кстати, я ни ch ни zn не могу приравнять к какому либо значению, паскаль ругается :"Ошибочная ссылка на переменную" П.С. Проблема решена. Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
MpakV Опубликовано 27 марта, 2009 Жалоба Share Опубликовано 27 марта, 2009 Это магическое шаманство - без него работать не будет Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Regnar Опубликовано 27 марта, 2009 Жалоба Share Опубликовано 27 марта, 2009 Да хз, пусть будет, делу не мешает =) Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Regnar Опубликовано 27 марта, 2009 Жалоба Share Опубликовано 27 марта, 2009 Кстати, еще вопрос. Препод задал написать программу на Turbo C, выводящую на экран капли дождя. (Количество капель):= (случайное число), капли должны падать под углом, заданным с клавиатуры. Возможно ли реализовать ее на паскале? Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
WishMaster Опубликовано 27 марта, 2009 Жалоба Share Опубликовано 27 марта, 2009 Кстати, еще вопрос. Препод задал написать программу на Turbo C, выводящую на экран капли дождя. (Количество капель):= (случайное число), капли должны падать под углом, заданным с клавиатуры. Возможно ли реализовать ее на паскале? Возможно Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Regnar Опубликовано 27 марта, 2009 Жалоба Share Опубликовано 27 марта, 2009 Спасибо, буду мучить книжки. Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Regnar Опубликовано 31 марта, 2009 Жалоба Share Опубликовано 31 марта, 2009 А ведь я догадывался, что эта программа пишется в "пару строк" Препод упадет, когда увидит мой код Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Дос Опубликовано 31 марта, 2009 Жалоба Share Опубликовано 31 марта, 2009 xct Зря реализацию раскладываешь, он так ничему не научится ИМХО Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Присоединиться к общению
Вы можете написать сейчас, а зарегистрироваться потом. Если у Вас есть аккаунт, войдите, чтобы написать с него.