Pascalda s=(x+1/1!)*(x+2/2!)*(x+3/3!)*…*(x+20/20!) məsələsi

Salam. s=(x+1/1!)*(x+2/2!)*(x+3/3!)*...*(x+20/20!) misalı Turbo Pascalda necə yaza bilərəm? Bilən varsa köməklik etsin zəhmət olmasa.

Verilmiş cavablar və yazılan şərhlər (4 cavab var)

Şükür Hüseynov (2016-10-26 15:00:55)
Məsələ çox ehtimal ki, universitet məsələsidir. Universitetdə isə, sadəcə həll yoluna baxacaqlar. Bəs double və ya float götürsək düz alınar? Çox ehtimal ki, 20/20 faktorial ədədini komputer 0 olaraq götürəcək. Mən bir dəfə kəsrin məxrəcində belə böyük ədəddən istifadə etmişdim və komputer bunu 0 olaraq götürmüşdü. Yəqin ki, superkomputerlərdə dəqiq nəticəni almaq olar.

ahmed (2016-10-26 11:51:43)
Bu məsələ göründüyü kimi sadə deyil. Alqoritm düz ola bilər, amma cavabı kimsə yoxlayıb? İş ondadır ki, 20 faktorial çox böyük rəqəmdir, daha dəqiq 20! = 2432902008176640000 . Bu ədəd int tipli dəyişənə sığmaz, Bunun üçün ən azı dəyişən tipi unsigned long long int olmalıdı və kompüterin arxitekturası 64 bitlik 2^64 = 18446744073709552000. Amma yenə də bu həll deyil, 20 əvəzinə 50! olsaydı işlər çox mürəkkəbləşərdi.

Şükür Hüseynov (2016-10-25 15:58:04)
Salam [code] program Faktorial; var i:integer; s,f,x: real; begin s:=1; f:=1; readln(x); for i:=1 to 20 do begin f:=f*i; s:=s*(x+i/f); end; writeln(s); end. [/code]

insafsiz (2016-10-25 11:53:53)
Təəssüfki Pascal proqramlaşdırma dilin bilmirəm, amma C++ da həmin proqram aşağdakı kimdir. Əsas alqoritmi anla , Pascal da yazmaq çətin olmaz. Qeyd. səhv yazmadığınl ,yəni x1,x2,...,x20 olmadığını yanlız bir x olduğun nəzərə aldım. [code]#include #include using namespace std; int main() {int i,f=1; double x,S=1; cin>>x; for(i=1;i<=20;i++) {f=f*i; S=S*(x+i/f);} cout<<"hasil "<<S; return 0; }[/code]

Mövzu üzrə bənzər suallara da baxa bilərsiniz.

Pascal’da Şərti qurarkən iki-üç hal eyni anda icra olunur

Elektron olimpiada

massiv proqramı qura bilmirəm

Desktop Proqramlaşdırma Java ya C#

Pascal dilində məsələ

Paskalda iki məsələ