X
تبلیغات
پیاده سازی الگوریتم عدد اول

پیاده سازی الگوریتم عدد اول
 
برنامه نویسی به 30 زبان مختلف روی الگوریتم عدد اول

محل درج آگهی و تبلیغات
 
نوشته شده در تاريخ یکشنبه 1391/11/08 توسط مریم رادفر
(defun isprime (x)
  (if (< x 2)
  (return-from isprime nil)
(dotimes (i (+ (ceiling (sqrt x)) 1))
  (if (> i 1)
  (if (< i x)
  (if (equal (mod x i) 0)
  (return-from isprime nil))))))
  (return-from isprime t))

 


نوشته شده در تاريخ یکشنبه 1391/11/08 توسط مریم رادفر
scala> 7.isPrime
res0: Boolean = true
scala> implicit def intToNumWrapper(i: Int) : S99Int = new S99Int(i) intToNumWrapper: (Int)S99Int scala> class S99Int(val i: Int) { | def isPrime : Boolean = { | if (i <= 1) | false | else if (i == 2) | true | else | !(2 to (i-1)).exists(x => i % x == 0) | } | }
defined class S99Int
 
 
 
 
 

نوشته شده در تاريخ چهارشنبه 1391/11/04 توسط مهوش رشتیانی
F# یک زبان همه منظوره برای محیط .Net است که برای حالت اجرا بصورت همه منظوره به کار میرود و به راحتیهر سه مدل برنامه نویسی را شامل میشود. برای حل مسایل مختلف در موثرترین روش میتوانید محیط خاص آنرا در برنامه انتخاب کنید. شما میتوانیداز برنامه نویسی توصیفی استفاده کنید و یا توابع را به راحتی با هم ترکیب کنید و یا روشهای شی گرا و دستوری را در همان برنامه استفاده کنید و از قابلیتهای مختلف هر کدام در برنامه سود ببرید. مثل دیگر برنامه های تابعی F#‎ نوع قوی دارد اما از نوع استنتاجی هم سود میبرد بنابراین برنامه نویسان نیاز ندارند زمان زیادی برای توضیح انواع توابع هدر دهند مگر اینکه در موارد خاص ابهاماتی دربرنامه پیش بیاید که لزوم داشته باشد به وضوح بیان شود.علاوه بر این F#‎ بصورت کاملی با چهارچوب .Net و کتابخانه کلاس اصلی آن یعنی BCL ترکیب شده و به راحتی میتوان از آن در F#‎ استفاده کرد و این مسئله مانند C#‎‎ و VB میباشد و حتی در مواردی استفاده از BCL در F#‎ از دیگر زبانهای تحت .Net راحت تر است.

F#‎ مدل خود را از روی OCAML انتخاب کد که زبان برنامه نویسی تابعی شی گرای موفقی بود سپس با گسترش قابلیتها خوب این برنامه آنها را از نظر فنی و فلسفه کار داخل غالب .Net گنجاند. این زبان کاملا از غالب .Net پشتیبانی کرده و به کاربران این امکان را میدهد که هر چیزی که در محیط .Net ارائه شده است با F#‎ استفاده کنند. کامپایلر F#‎ میتواند تمام پیاده سازیهای زیر ساختار زبانهای معمول را بپذیرد و از روشهای معمول .Net بدون تغییر کد استفاده کند. همچنین میتواند برای کد نویسی IL به صورت برچسب دار استفاده شود.

F#‎ محدود به محیط ویندوز نبوده و میتوان آنرا در لینوکس ، مکینتاش و... استفاده کرد که بخشی از کتاب مورد ترجمه به نحوه عملکرد روی لینوکس میپردازد.کامپایلر F#‎ را میتوان داخل محیط Virtual Studio افزود و با عیب یاب آن به چک کردن دستورات به صورت اتوماتیک پرداخت. همچنین این کامپالر راهنمایی هایی برای استفاده از تمامی توابع عرضه میکند که در نوع خود بینظیر است و برنامه نویسان اشاره میکنند که این مسئله بسیار برای شبیه کردن برنامه به زندگی واقعی موثر است.

F#‎ توسط دکتر دون سیم ابداع شد. در حال حاضرمحصولیست وابسته به تیمی کوچک اما کاملا پیشرفته واقع در مرکز تحقیقات مایکروسافت - کمبریج - لندن - انگلستان با این حال F#‎ در حد یک زبان آکادمیک یا تحقیقاتی نیست و برای خیلی از برنامه های دنیای واقعی (که تعداد آنها به شدت در حال افزایش است) به کار میرود. با توجه به اینکه زبان تابعی دیگری به ندرت در محیط .Net اجرا میشوند F#‎ بعنوان استاندارد این نوع زبانها در آمده است. زبانهای برنامه نویسی تابعی در این میان از F#‎ تبعیت میکنند زیرا این زبان کیفیت پیاده سازی و اشتراک با .Net و Virtual Studio را بسیار بهتر در خود دارد. هیچ برنامه برنامه نویسی .Net دیگری از لحاظ کارکرد ، استفاده و انعطاف پذیری به پای F#‎ نمیرسد.


نوشته شده در تاريخ چهارشنبه 1391/11/04 توسط مهوش رشتیانی
def factorize = { long target -> 
 
    if (target == 1) return [1L]
 
    if (target < 4) return [1L, target]
 
    def targetSqrt = Math.sqrt(target)
    def lowfactors = (2L..targetSqrt).findAll { (target % it) == 0 }
    if (lowfactors == []) return [1L, target]
    def nhalf = lowfactors.size() - ((lowfactors[-1]**2 == target) ? 1 : 0)
 
    [1] + lowfactors + (0..<nhalf).collect { target.intdiv(lowfactors[it]) }.reverse() + [target]
}
 
def decomposePrimes = { target ->
    def factors = factorize(target) - [1]
    def primeFactors = []
    factors.eachWithIndex { f, i ->
        if (i==0 || factors[0..<i].every {f % it != 0}) {
            primeFactors << f
            def pfPower = f*f
            while (target % pfPower == 0) {
                primeFactors << f
                pfPower *= f
            }
        }
    }
    primeFactors
}
 

نوشته شده در تاريخ چهارشنبه 1391/11/04 توسط مهوش رشتیانی
def factorize = { long target -> 
 
    if (target == 1) return [1L]
 
    if (target < 4) return [1L, target]
 
    def targetSqrt = Math.sqrt(target)
    def lowfactors = (2L..targetSqrt).findAll { (target % it) == 0 }
    if (lowfactors == []) return [1L, target]
    def nhalf = lowfactors.size() - ((lowfactors[-1]**2 == target) ? 1 : 0)
 
    [1] + lowfactors + (0..<nhalf).collect { target.intdiv(lowfactors[it]) }.reverse() + [target]
}
 
def decomposePrimes = { target ->
    def factors = factorize(target) - [1]
    def primeFactors = []
    factors.eachWithIndex { f, i ->
        if (i==0 || factors[0..<i].every {f % it != 0}) {
            primeFactors << f
            def pfPower = f*f
            while (target % pfPower == 0) {
                primeFactors << f
                pfPower *= f
            }
        }
    }
    primeFactors
}
 

نوشته شده در تاريخ چهارشنبه 1391/11/04 توسط مهوش رشتیانی

تاريخچه:

جيمز استراكان در آگوست سال 2003 براي اولين بار در وبلاگ خود در مورد توسعه زبان جديدي به نام گرووي نوشت. پس از آنكه فرآيند استانداردسازي پايان يافت، ژانويه سال 2007 نسخه استاندارد گرووي با عنوان ‌1.0 Groovy‌ منتشر شد. به فاصله زماني اندكي پس از نسخه 1.0، نسخه 1.1 در ماه دسامبر 2007 منتشر شد. اين نسخه بلافاصله به نام ‌1.5 Groovy‌ نامگذاري شد تا تغييرات مهم و بزرگ ايجاد شده را به وسيله اين تغيير نام منعكس كند.

 

ويژگي‌ها:

گرووي داراي ويژگيهايي است كه در جاواي استاندارد يافت نمي‌شود. از جمله اين ويژگي‌ها مي‌توان به نوع‌ داده‌ هاي ديناميك و تغيير كاربري اپراتورها اشاره كرد. دستور زبان گرووي در مقايسه با جاوا فشرده‌تر و كوچك‌تر است. از ويژگيهاي بارز و قابل توجه گرووي پشتيباني آن از زبان‌هاي مختلف ‌Markup‌ مانند ‌XML‌ و ‌HTML‌ است. اين قابليت امكان تعريف و كار با انواع مختلفي از داده‌هاي ناهمگون را با دستور زبان دقيق و روش برنامه‌سازي هم شكل فراهم مي‌كند. كد گرووي باز است و تقريبا تمام ‌IDE‌ هاي كد جاوا از كد گرووي نيز پشتيباني مي‌كنند و اين امر برنامه‌نويسي با گرووي را آسان مي‌كند.

اهداف:

هدف از طراحي زبان گرووي استانداردسازي يك زبان برنامه‌نويسي براي پلت‌فرم جاوا بود. زباني كه بتواند پا به پاي جاوا حركت كند. در حقيقت گرووي زباني سريع و پويا مانند پايتون، پرل و روبي است. تفاوت گرووي با اين زبان‌ها اين است كه گرووي براي پلت‌فرم جاوا طراحي شده است و قابليت بر‌هم‌كنش با برنامه‌هاي جاواي كنوني را دارد.
گرووي جايگزيني براي جاوا نيست، بلكه مكمل آن است. هدف اصلي از ايجاد اين مكمل، برطرف كردن اشكالات و پر كردن خلاهايي است كه اكنون برنامه نويسان و توسعه‌دهندگان حرفه‌اي كد آنها را حس مي‌كنند و خواهان روشي براي برطرف شدن آنها هستند، در حالي‌كه در پلت‌فرم كنوني جاوا اين مسايل ناديده گرفته شده‌اند.


نوشته شده در تاريخ چهارشنبه 1391/11/04 توسط مهوش رشتیانی
اسکیم یک زبان برنامه نویسی که چندین نمونه‌ای است .

ویژگی‌:

روال‌ها در اسکیم، تابع‌های دستهٔ اول هستند که برنامه‌نویسی تابعی را شدنی می‌کند.


نوشته شده در تاريخ چهارشنبه 1391/11/04 توسط مهوش رشتیانی

(define (sieve n)     (let ((bits (make-vector (+ n 1) #t)))       (let loop ((p 2) (ps '()))         (cond (( n p) (reverse ps))               ((vector-ref bits p)                 (do ((i (+ p p) (+ i p))) (( n i))                   (vector-set! bits i #f))                 (loop (+ p 1) (cons p ps)))               (else (loop (+ p 1) ps)))))) (define (primes n)   (if (or (not (integer? n)) ( n 2))       (error 'primes "must be integer greater than one")       (let* ((len (quotient (- n 1) 2))              (bits (make-vector len #t)))         (let loop ((i 0) (p 3) (ps (list 2)))           (cond (( n (* p p))                   (do ((i i (+ i 1)) (p p (+ p 2))                        (ps ps (if (vector-ref bits i) (cons p ps) ps)))                       ((= i len) (reverse ps))))                 ((vector-ref bits i)                   (do ((j (+ (* 2 i i) (* 6 i) 3) (+ j p)))                       (( len j) (loop (+ i 1) (+ p 2) (cons p ps)))                     (vector-set! bits j #f)))                 (else (loop (+ i 1) (+ p 2) ps)))))))   (define (td-prime? n . args)   (if (or (not (integer? n)) ( n 2))       (error 'td-prime? "must be integer greater than one")       (let ((limit (if (pair? args) (car args) 1000000)))         (if (even? n) (= n 2)           (let loop ((d 3))             (cond (( limit d)                     (error 'td-prime? "limit exceeded"))                   (( n (* d d)) #t)                   ((zero? (modulo n d)) #f)                   (else (loop (+ d 2)))))))))   (define (td-factors n . args)   (if (or (not (integer? n)) ( n 2))       (error 'td-factors "must be integer greater than one")       (let ((limit (if (pair? args) (car args) 1000000)))         (let twos ((n n) (fs '()))           (if (even? n)               (twos (/ n 2) (cons 2 fs))               (let odds ((n n) (d 3) (fs fs))                 (cond (( limit d)                         (error 'td-factors "limit exceeded"))                       (( n (* d d))                         (reverse (cons n fs)))                       ((zero? (modulo n d))                         (odds (/ n d) d (cons d fs)))                       (else (odds n (+ d 2) fs)))))))))   (define prime?   (let ((seed 3141592654))     (lambda (n)       (define (rand)         (set! seed (modulo (+ (* 69069 seed) 1234567) 4294967296))         (+ (quotient (* seed (- n 2)) 4294967296) 2))       (define (expm b e m)         (define (times x y) (modulo (* x y) m))         (let loop ((b b) (e e) (r 1))           (if (zero? e) r             (loop (times b b) (quotient e 2)                   (if (odd? e) (times b r) r)))))       (define (spsp? n a)         (do ((d (- n 1) (/ d 2)) (s 0 (+ s 1)))             ((odd? d)               (let ((t (expm a d n)))                 (if (or (= t 1) (= t (- n 1))) #t                   (do ((s (- s 1) (- s 1))                        (t (expm t 2 n) (expm t 2 n)))                       ((or (zero? s) (= t (- n 1)))                         (positive? s))))))))       (if (not (integer? n))           (error 'prime? "must be integer")           (if ( n 2) #f             (do ((a (rand) (rand)) (k 25 (- k 1)))                 ((or (zero? k) (not (spsp? n a)))                   (zero? k))))))))   (define (rho-factors n . args)   (define (cons x xs)     (cond ((null? xs) (list x))           (( x (car xs)) (cons x xs))           (else (cons (car xs) (cons x (cdr xs))))))   (define (rho n limit)     (let loop ((t 2) (h 2) (d 1) (c 1) (limit limit))       (define (f x) (modulo (+ (* x x) c) n))       (cond ((zero? limit) (error 'rho-factors "limit exceeded"))             ((= d 1) (let ((t (f t)) (h (f (f h))))                        (loop t h (gcd (- t h) n) c (- limit 1))))             ((= d n) (loop 2 2 1 (+ c 1) (- limit 1)))             ((prime? d) d)             (else (rho d (- limit 1))))))   (if (not (integer? n))       (error 'rho-factors "must be integer")       (let ((limit (if (pair? args) (car args) 1000)))         (cond (( -1 n 1) (list n))               ((negative? n) (cons -1 (rho-factors (- n) limit)))               ((even? n)                 (if (= n 2) (list 2)                   (cons 2 (rho-factors (/ n 2) limit))))               (else (let loop ((n n) (fs '()))                       (if (prime? n)                           (cons n fs)                           (let ((f (rho n limit)))                             (loop (/ n f) (cons f fs))))))))))clone edit download copy to clipboard private user's  deleteinput / output show all hide allupload with new input# 1:   hide   clone   input   3 seconds agoresult: success     time: 0.03s    memory: 4132 kB     returned value: 0
نوشته شده در تاريخ چهارشنبه 1391/11/04 توسط مهوش رشتیانی
تاریخچه:

در مقایسه با زبان‌های دیگر، همچون ++C یا بیسیک یا فورترن، جاوا زبان نسبتاً جدیدتری است. شرکت (sun Microsystems)سان مایکروسیستمز در سال ۱۹۹۱ یک پروژه تحقیقاتی به نام گرین (Green) را آغاز کرد. هدف این پروژه ایجاد زبانی جدید شبیه به ++C بود که نویسنده اصلی آن، جیمز گاسلینگ، آن را بلوط (Oak) نامید. اما بعدها به دلیل برخی مشکلات حقوقی[نیازمند منبع] از میان لیستی از کلمات تصادفی[۱] نام آن به جاوا تغییر کرد.

پروژه گرین به دلیل مشکلات بازاریابی در شرف لغو شدن بود تا اینکه گسترش وب در سال ۱۹۹۳ باعث نمایش توانایی‌های وافر جاوا در این عرصه گشت. اینگونه بود که شرکت سان مایکروسیستمز در مه ۱۹۹۵ جاوا را رسماً به بازار عرضه کرد.

جاوا یک زبان برنامه‌نویسی است که در آغاز توسط شرکت سان مایکروسیستمز ایجاد شده‌است و در سال ۱۹۹۵ به عنوان بخش اصلی سکوی جاوا منتشر شد. این زبان قسمت‌های بسیاری از گرامر خود را از C و ++C گرفته اما دارای مدل شی‌گرایی ساده‌ای است و امکانات سطح پایین کمی دارد. کاربرد جاوا در کامپایل به صورت بایت کد است که قابلیت اجرا روی تمامی ماشین‌های شبیه‌سازی جاوا را داشته باشد صرف نظر از معماری و خصوصیات آن کامپیوتر. اجرای اصلی کامپایلرهای جاوا، ماشین‌های پیاده‌سازی و کتابخانه‌های آن توسط این شرکت از سال ۱۹۹۵ منتشر شد. در 1997 may این شرکت، نرم‌افزار رایگان این زبان را فراهم کرد. دیگران هم کاربردهای دیگری از این زبان را منتشر کردند مثل کامپایلر GNU برای جاوا.

مرورگرهای اصلی وب، به هم پیوستند تا به طور مطمئن جاوا اپلت را بدون صفحات وب اجرا کنند و به این صورت جاوا خیلی زود معروف و محبوب شد. با پیدایش java2، نسخهٔ جدید توانست ترکیب‌های جدیدی را برای نوع‌های مختلف پلت فرم‌ها ایجاد کند. به عنوان مثال J2EE، باهدف کاربرد برای تشکیلات اقتصادی، و نسخهٔ سکوی جاوا، نسخه میکرو برای موبایل منتشر شد. در سال 199۶ با هدف بازاریابی، این شرکت نسخهٔ جدید J2 را با نام‌های سکوی جاوا، نسخه سازمانی، سکوی جاوا، نسخه میکرو و سکوی جاوا، نسخه استاندارد منتشر کرد. در سال ۱۹۹۷ شرکت سان میکروسیستمز،ISO/IEC JTC1 standards body و Ecma International را به فرمول جاوا تغییر داد. شرکت sun بسیاری از کاربردهای جاوایش را بدون هیچ هزینه‌ای فراهم آورد. شرکت sun با فروش مجوز برای بعضی از کاربردهای خاصش مثل Java Enterprise System درآمدی را بدست آورد. اولین تمایزی که بین SDK و سکوی جاوا داد شامل فقدان کامپایلر برای JRE و سرفایل‌ها بود. در ۱۳ نوامبر 199۶ شرکت sun نرم‌افزار جاوا را به صورت رایگان و با مجوز عمومی برای همه منتشر کرد. جاوا یک پلتفرم نرم‌افزاری است.

کتابخانه‌های استاندارد:

کتابخانه‌های جاوا که به صورت بایت کد از کد اصلی کامپایل شده‌اند، برای پشتیبانی از بعضی از کاربردهای جاوا، توسطJRE منتشر شده‌است. مثال‌هایی از این کتابخانه‌ها عبارتند از:

  • کتابخانه‌های مرکزی که شامل:
  • کتابخانه‌هایی که برای ساختار داده کاربرد دارند. مثل لیست‌ها، درخت‌ها، مجموعه‌ها، مترجم‌ها.
  • کتابخانهٔ پرداز XML (تجزیه، تغییر شکل، اعتبار)
  • کتابخانه‌های موضعی و بین‌المللی
  • کتابخانه‌های انتگرال گیری که امکان تایپ کردن توسط سیستم‌های بیرونی را می‌دهند.
  • JDBC برای دستیابی به داده‌ها
  • JNDI برای مراجعه و کشف کردن
  • CORBA & RMI برای توسعهٔ کاربرد توزیع کردن
  • کتابخانه‌های واسط کاربر
  • AWT (توابع پنجره‌ای مجرد)که قسمت‌هایی از GUI را فراهم می‌کنند.
  • کتابخانه‌های swing که در AWT ساخته شده‌اند اما کاربردهایی از AWT widgetry را فراهم می‌کنند.
  • APLها برای ضبط صدا، پردازش و بازنواختی
  • کاربردهای وابستهٔ پلت فرم ماشین‌های مجازی جاوا
  • Plugins که توانایی اجرا شدن در مرورگرهای وب را به اپلت می‌دهد.
  • java web start
  • دادن مجوز و مستند سازی

نوشته شده در تاريخ چهارشنبه 1391/11/04 توسط مهوش رشتیانی
class GeneratePrimeNumbersExample {
 
        public static void main(String[] args) {
               
                //define limit
                int limit = 100;
               
                System.out.println("Prime numbers between 1 and " + limit);
               
                //loop through the numbers one by one
                for(int i=1; i < 100; i++){
                       
                        boolean isPrime = true;
                       
                        //check to see if the number is prime
                        for(int j=2; j < i ; j++){
                               
                                if(i % j == 0){
                                        isPrime = false;
                                        break;
                                }
                        }
                        // print the number
                        if(isPrime)
                                System.out.print(i + " ");
                }
        }
}
  • upload with new input

نوشته شده در تاريخ چهارشنبه 1391/11/04 توسط مهوش رشتیانی
پیشینه:

پی اچ پی در آغاز جایگاه شخصی داشت. در ابتدای سال ۱۹۹۴ عموما مانند زبان برنامه‌نویسی c به صورت باینری توسط برنامه‌نویسان دانمارکی/گرینلندی به نام رسموس لردورف نوشته شد. لردروف در اصل این ابزار را ایجاد کرد تا یک مجموعه کوچکی از پردازه (اسکریپت) را جایگزین کند. او سعی می‌کرد که صفحات شخصی را حفظ کند. این ابزار برای این استفاده می‌شد که وظایفی مانند نمایش دادن خلاصۀ تجربیات و حفظ کردن این‌که چقدر از این صفحه مورد استفاده قرار می‌گیرد را انجام دهد. او این دو را با مفسرش ترکیب کرد تا پی اچ پی /اف آی را ایجاد کند چون بیشتر کاربرد داشت. پی اچ پی/اف آی شامل پیاده‌سازی برای زبان برنامه نویسی c بود و می‌توانست با پایگاه داده ارتباط یابد. قابلیت ساخت ساده و پویا برای کاربردهای وب. لردروف پی اچ پی رو در ۱۹۹۵ رها کرد تا کد آن‌را بهبود ببخشد و اشکالات آن‌را برطرف کند. این واگذاری به نسخۀ دوم پی اچ پی منجر شد و هم اکنون استفاده می‌شود. پی اچ پی شامل شبیه‌سازی و دستکاری کردن متغیرها با توانایی جاسازی HTML بود. ترکیب آن مانند پِرل اما محدودتر ٬ساده‌تر و پایدارتر بود. زیو سوراسکی و اندی گاتمنز دو توسعه دهنده در فناوری IIT اسرائیل بودند که پارسر را در سال ۱۹۹۷ دوباره نوشتند و اساس پی اچ پی ۳ را تشکیل دادند با تغییر دادن مجدد نام زبان به پی اچ پی: پیش پردازنده مافوق متن. گروه توسعه یافته رسما پی اچ پی /اف آی ۲ را در نوامبر ۱۹۹۷ بعد از دو ماه تجربه و آزمایش منتشر کرد. پس از آن آزمایش عمومی پی اچ پی ۳ آغاز شد و زبان رسمی در ژوئن ۱۹۹۸ تشکیل شد.سوراسکی و گاتمنز گروهی را برای باز نویسی پی اچ پی تشکیل دادند و موتور زند (به انگلیسی: Zend Engine)‏ را در ۱۹۹۹ تولید کردند. آن‌ها همچنین تکنولوژی آن را در اسرائیل تأسیس کردند. در۲۲ ماه می۲۰۰۰ پی اچ پی ۴ که توسط موتور زند روی کار آمده بود منتشر شد. در۱۳ ژوئیه ۲۰۰۴ پی اچ پی ۵ که توسط ماشین Zend2 نیرو گرفته بود منتشر شد. پی اچ پی ۵ دارای ویژگی‌هایی مانند پشتیبانی از زبان شی‌ٴ گرا (برای پایگاه داده) و وسعت بسیار زیاد در کارایی‌اش شده بود. پی اچ پیی که اخیرا توسط گروه پی اچ پی منتشر شده نسخه ۴ آن است. در آگوست ۲۰۰۸ این نسخه به ۴٫۴٫۹ توسعه یافت. در سال ۲۰۰۸ بدنۀ نسخه استوا و ثابت پی اچ پی ۵ در دست توسعه بود. پی اچ پی ۶ نیز در کنار پی اچ پی ۵ در دست توسعه‌است. تغییرات عمده آن شامل از بین بردن متغیرهای رجیستری است. تا کنون پی اچ پی کاملاً از یونیکد یا رشته‌های چند بایتی حمایت نکرده است. یونیکد در پی اچ پی ۶ پشتیبانی خواهد شد. این نسخه در هر دو محیط ۳۲ و ۶۴ بیتی اجرا خواهد شد.

استاندارد:

 همه متغیرها را در یک محدوده مستقل ذخیره می‌کند. این محدوده به طور نمونه ۳۲ بیت اعداد علامتدار است. اعداد بدون علامت در حالتهای معینی به مقادیر علامتدار تبدیل می‌شوند: این رفتار در زبانهای برنامه نویسی متفاوت است. متغیرهای صحیح می‌توانند به صورت دهدهی(مثبت یا منفی) ٬هشت هشتی و شانزده شانزدهی مشخص شوند

اعداد واقعی نیز در محدوده معینی ذخیره می‌شوند. آنها می‌توانند به دو صورت اعشاری و علمی استفاده شوند.PHP دارای نوع محلی به نام بولین می‌باشد که شبیه به بولین در زبان جاوا و ++C است. در نوع داده بولین مقدار غیر صفر به عنوان درست و مقدار صفر به عنوان نادرست استفاده می‌شود. همانطور که در پرل و ++C نیز همین طور است.

نوع داده null برای متغیرهایی که هیچ مقداری ندارند استفاده می‌شود. متغیرهایی با نوع مرجع به منابع خارجی اشاره می‌کنند. اینها نوعا توسط توابع ایجاد می‌شوند و تنها می‌توانند با همان تابع مورد استفاده قرار گیرند. مانند پوشه‌ها و عکسها و پایگاه داده.PHP آرایه‌ها و رشته‌ها را هم حمایت می‌کند.
کتابخانه استانداردPHP(SPL) به منظور حل مسائل استاندارد و دسترسی به داده‌های موثر و کلاس‌ها به کار می‌رود.


نوشته شده در تاريخ چهارشنبه 1391/11/04 توسط مهوش رشتیانی
function isPrime($test) {
 
$prime = 1;
 
if ($test % 2 == 0 && $test != 2){
 
return 0;
 
} 
 
if ($test == 2 || $test == 3) {
 
return 1;
 
}
 
for ($try = 3; $try < $test; $try++){
 
if (($test % $try) == 0) {
 
$prime = 0;
 
}
 
}
 
return $prime;

نوشته شده در تاريخ چهارشنبه 1391/11/04 توسط مهوش رشتیانی
تاریخچه:

پایتون اواخر سال ۱۹۸۰ (میلادی) توسط خَودو فان روسوم در مؤسسه ملی تحقیقات ریاضی و رایانه (CWI) در کشور هلند ایجاد شد. هدف خَودو ایجاد جانشینی برای زبان برنامه‌نویسی ای‌بی‌سی بودکه قابلیت پردازش استثناها را داشته باشد. خَودو طراح اصلی پایتون است و نقش مداوم او در تصمیم گیری پیرامون اهداف پایتون، باعث شد که انجمن پایتون به او لقب دیکتاتور خیراندیش زندگی را بدهد.

در سال ۱۹۹۱ فان روسوم کدی با برچسب نسخه ۰٫۹.۰ را منتشر کرد. البته در این مرحله از پیشرفت کلاس‌هایی با خاصیت ارث بری، پردازش استثنا، توابع و انواع داده list, dict, str وجود داشت. همچنین در این نسخه ابتدایی یک سیستم ماژول با اقتباس از ماژول-۳ وجود داشت، که فان روسوم این ماژول را به عنوان «یکی از واحدهای عمده برنامه نویسی پایتون» توصیف کرد. مدل استثناء پایتون نیز شباهت‌هایی به ماژول-۳ داشت، که به آن شرط else افزوده شده بود. در سال ۱۹۹۴ اولین مجمع مباحثه پیرامون پایتون شکل گرفت که مرحله برجسته‌ای در پیشرفت کاربری پایتون بود.

کتابخانه استاندارد:

پایتون یک کتابخانه استاندارد بزرگ دارد، که از آن به عنوان یکی از بزرگ‌ترین توانایی‌های پایتون یاد می‌شود، مشروط به اینکه ابزارهای از پیش نوشته شده، با بسیاری از وظایف سازگار باشد. ماژول‌های کتابخانه استاندارد می‌توانند به شیوه ماژول‌های نوشته شده در سی یا پایتون آرگومان دهی شوند. اخیراً کتابخانه‌های C++ به یک کتابخانه به نام Boost.Python رشد یافته‌است، برای ایجاد قابلیت همکاری بین C++ و پایتون. به دلیل تنوع گسترده در ابزارهای تولید شده توسط کتابخانه استاندارد، این کتابخانه با توانایی استفاده یک زبان سطح پایین ترکیب شده، مثل C و C++، که البته به عنوان واسط بین کتابخانه‌های دیگر است، پایتون می‌تواند یک واسط قوی بین زبان‌ها و ابزارها باشد.

کتابخانه استاندارد با تعداد زیاد فرمت‌ها و پروتکل‌هایی که حمایت می‌کند (مانند MIME و HTTP)، خصوصاً برای نوشتن علائم اینترنت مناسب است. ماژول‌ها برای ایجاد واسط کاربر گرافیکی، به پایگاه داده مربوطه متصل می‌شود، محاسبات را با دقت دلخواه دسیمال انجام می‌دهد، و عبارت‌های منظم را دستکاری می‌کند. پایتون همچنین یک واحد تست مدیریت پایگاه داده برای تست کردن رشته‌ها دارد.

بعضی از قسمت‌های کتابخانه استاندارد با مشخصات پوشانده شده، اما اکثریت ماژول‌ها اینگونه نیستند. آنها از طریق کدها، اسناد داخلی، و دنباله تست شان (اگر موجود باشد) تعیین می‌شوند. اگر چه، به دلیل اینکه اکثر کتابخانه‌های استاندارد، کد پایتون مربوط به پایگاه را دارند، فقط ماژول‌های اندکی هستند که باید تغییر داده شوند یا مجدّداً با یک پیاده سازی دیگر نوشته شوند.


نوشته شده در تاريخ چهارشنبه 1391/11/04 توسط مهوش رشتیانی

نوشته شده در تاريخ چهارشنبه 1391/11/04 توسط مهوش رشتیانی
def sieve(n):
    b, p, ps = [True] * (n+1), 2, []
    for p in xrange(2, n+1):
        if b[p]:
            ps.append(p)
            for i in xrange(p, n+1, p):
                b[i] = False
    return ps
def primes(n):
    if type(n) != int and type(n) != long:
        raise TypeError('must be integer')
    if n < 2:
        raise ValueError('must be greater than one')
    m = (n-1) // 2
    b = [True] * m
    i, p, ps = 0, 3, [2]
    while p*p < n:
        if b[i]:
            ps.append(p)
            j = 2*i*i + 6*i + 3
            while j < m:
                b[j] = False
                j = j + 2*i + 3
        i += 1; p += 2
    while i < m:
        if b[i]:
            ps.append(p)
        i += 1; p += 2
    return ps
 
def td_prime(n, limit=1000000):
    if type(n) != int and type(n) != long:
        raise TypeError('must be integer')
    if n % 2 == 0:
        return n == 2
    d = 3
    while d * d <= n:
        if limit < d:
            raise OverflowError('limit exceeded')
        if n % d == 0:
            return False
        d += 2
    return True
 
def td_factors(n, limit=1000000):
    if type(n) != int and type(n) != long:
        raise TypeError('must be integer')
    fs = []
    while n % 2 == 0:
        fs += [2]
        n /= 2
    if n == 1:
        return fs
    f = 3
    while f * f <= n:
        if limit < f:
            raise OverflowError('limit exceeded')
        if n % f == 0:
            fs += [f]
            n /= f
        else:
            f += 2
    return fs + [n]
 
def is_prime(n):
    if type(n) != int and type(n) != long:
        raise TypeError('must be integer')
    if n < 2:
        return False
    ps = [2,3,5,7,11,13,17,19,23,29,31,37,41,
         43,47,53,59,61,67,71,73,79,83,89,97]
    def is_spsp(n, a):
        d, s = n-1, 0
        while d%2 == 0:
            d /= 2; s += 1
        t = pow(a,d,n)
        if t == 1:
            return True
        while s > 0:
            if t == n-1:
                return True
            t = (t*t) % n
            s -= 1
        return False
    if n in ps: return True
    for p in ps:
        if not is_spsp(n,p):
            return False
    return True
 
def rho_factors(n, limit=1000000):
    if type(n) != int and type(n) != long:
        raise TypeError('must be integer')
    def gcd(a,b):
        while b: a, b = b, a%b
        return abs(a)
    def rho_factor(n, c, limit):
        f = lambda(x): (x*x+c) % n
        t, h, d = 2, 2, 1
        while d == 1:
            if limit == 0:
                raise OverflowError('limit exceeded')
            t = f(t); h = f(f(h)); d = gcd(t-h, n)
        if d == n:
            return rho_factor(n, c+1, limit)
        if is_prime(d):
            return d
        return rho_factor(d, c+1, limit)
    if -1 <= n <= 1: return [n]
    if n < -1: return [-1] + rho_factors(-n, limit)
    fs = []
    while n % 2 == 0:
        n = n // 2; fs = fs + [2]
    if n == 1: return fs
    while not is_prime(n):
        f = rho_factor(n, 1, limit)
        n = n / f
        fs = fs + [f]
    return sorted(fs + [n])
 

نوشته شده در تاريخ سه شنبه 1391/11/03 توسط مهوش رشتیانی
prime_decomp(N, L) :-
    SN is sqrt(N),
        prime_decomp_1(N, SN, 2, [], L).
 
 
prime_decomp_1(1, _, _, L, L) :- !.
 
% Special case for 2, increment 1
prime_decomp_1(N, SN, D, L, LF) :-
        (   0 is N mod D ->
            Q is N / D,
            SQ is sqrt(Q),
            prime_decomp_1(Q, SQ, D, [D |L], LF)
        ;
            D1 is D+1,
            (   D1 > SN ->
                LF = [N |L]
            ;
                prime_decomp_2(N, SN, D1, L, LF)
            )
        ).
 
% General case, increment 2
prime_decomp_2(1, _, _, L, L) :- !.
 
prime_decomp_2(N, SN, D, L, LF) :-
        (   0 is N mod D ->
            Q is N / D,
            SQ is sqrt(Q),
            prime_decomp_2(Q, SQ, D, [D |L], LF);
            D1 is D+2,
            (   D1 > SN ->
                LF = [N |L]
            ;
                prime_decomp_2(N, SN, D1, L, LF)
            )
        ).
  • upload with new input


 

تاریخچه:

این زبان برای اولین بار در اوایل ۱۹۷۰ توسط یک گروه دربرگرفته شده توسط آلن کلمرار در مارسی فرانسه بوده‌است. به گفته رابرت کوالسکی، اولین سیستم Prolog در سال ۱۹۷۲ توسط آلن فیلیپ راسل توسعه داده شد و پیاده‌سازان اولین مترجم Prolog بودند، با این حال، دیوید اچ دی وارن با ایجاد ماشین خلاصه وارن در اوایل کامپایلر Prolog با نفوذ را نوشت و «Edinburgh Prolog» را تعریف نمود که گویشی است که اساس برای نحو بسیاری از پیاده‌سازی مدرن است. Prolog یکی از زبان‌های برنامه نویسی به منطق اول بود، و باقی مانده‌است در میان از رایج‌ترین زبانها مانند امروز، بخاطر پیاده سازی آزاد و تجاری به وجود آمده‌است. در حالی که در ابتدا در با هدف پردازش زبان طبیعی ساخته شد اما به تدریج بخاطر استفاده و پشتیبانی سیستم‌های خبره، بازی‌ها، سیستم پاسخ خودکار، ontologies و سیستم‌های کنترل پیچیده، تغییر کرد و محیط‌های Prolog مدرن و با حمایت از ایجاد واسط کاربر گرافیکی، به عنوان برنامه‌های اداری و شبکه.. معرفی گردید و الحاقات بعدی از Prolog که توسط تیم اصلی ایجاد گشت محدودیت توانایی در منطق برنامه نویسی را در پیاده سازی از بین بردند.
زمزمه‌های ایجاد یک زبان منطق گرا از دهه ۷۰ میلادی از شمال امریکا شکل گرفته‌است. بعداً در نسل پنجم کامپیوترها از پرلوگ برای نوشتن کرنل سیستم‌عامل نیز در ایجاد پروژه سیستم FGCS استفاده شده‌است.

استاندارد:

نوع داده در پرلوگ به صورت ترم‌ها تعریف می‌شود که این ترم‌ها می‌توانند اتم، اعداد، متغیرها و یا ترکیبی از ترم‌های دیگر باشند.

الگوریتمهای Iterative (پشت سرهمی) می‌توانید بوسیله predicates بازگشتی به اجرا درآیند. سیستم‌های Prolog معمولاً به روش بهینه سازی معروفی به نام تماس دم (tco) پایبندند که ملتزم به بازگشت قطعی است و حتماً در این روش بهینه سازی می بایست به دم برسد. بهمین خاطر در روش بازگشتی از یک پشته با یک نوع محدودیت بهره می‌گیرد و بدین وسیله می‌تواند حلقه‌های متعدد و بازگشتی را با اطمینان به بازگشت به جواب را جوابگو باشد.

یکسری قوانینی تعبیه شده است که در آن کاربر با استفاده از آن می‌تواند از ایجاد لوپ‌های تودرتو جلوگیری کند. و البته با نظم دادن به دستورات می‌توان از ایجاد آنها جلوگیری کرد

 


نوشته شده در تاريخ سه شنبه 1391/11/03 توسط مهوش رشتیانی
import std.stdio;

bit flags[8191];
 
int main()
{   int     i, prime, k, count, iter;

    writefln("10 iterations");
    for (iter = 1; iter <= 10; iter++)
    { count = 0;
 flags[] = true;
 for (i = 0; i < flags.length; i++)
 {   if (flags[i])
     { prime = i + i + 3;
  k = i + prime;
  while (k < flags.length)
  {
      flags[k] = false;
      k += prime;
  }
  count += 1;
     }
 }
    }
    writefln("%d primes", count);
    return 0;
}

 

تاریخچه:

در سال 1991 والتر برایت تصمیم به ایجاد زبان جدیدی گرفت

اولین نسخه d1  در دسامبر 2001 منتشر شد و ورژن 1.0 آن در ژانویه سال 2007 ایجاد شد

در نسخه اول آن همانند c++  بر اهمیت بحث شی گرایی و متا پروگرمینگ پارادایم استوار بود

در ماه ژوین سال 2007 اولین نسخه ورژن d2  منتشر شد که همان ورژن d1 بود اما با اصلاحات و رفع اشکالات آن و با کتابخانه های توسعه یافته تر که ویژگی های متعدد زبان مانند الگوهای برنامه نویسی تابعی و نیز مشکلات کتابخانه استاندارد آن رفع شده و امروزه تنها با نام d معروف میباشد.

 

استاندارد ها:

از کامپایلر های Borland turbo c ,clang, gcc , lcc, pellesc, pcc , tcc , visual c++

کتابخانه ها:

کنابخانه استاندارد c glibc, diezlibc,bionic, musl,

 


نوشته شده در تاريخ پنجشنبه 1391/10/28 توسط طاهره رحیمی

const func array integer: factorise (in var integer: number) is func
  result
    var array integer: result is 0 times 0;
  local
    var integer: checker is 2;
  begin
    while checker * checker <= number do
      if number rem checker = 0 then
        result &:= [](checker);
        number := number div checker;
      else
        incr(checker);
      end if;
    end while;
    if number <> 1 then
      result &:= [](number);
    end if;
  end func;
const func boolean: isPrime(in var integer: number)is func
  result
     var bool: result is 0 times 0;
  local
     var integer: checker; 
  begin
       checker:=factorise(number);
       if checker=2 then
         result &:=[](true);
       else
          result &:=[](false);
       end if;
   writeFactors(result);
 end func;
 


نوشته شده در تاريخ پنجشنبه 1391/10/28 توسط طاهره رحیمی

Integer extend [
    primesDo: aBlock [
        | div next rest |
        div := 2. next := 3.
        rest := self.
 [rest==1]ifTrue:[show:’False’]
 [rest==2]ifTrue:[show:’True’]
        [rest>div]whileTrue[ [ rest \\ div ~= 0 ]
              whileTrue: [div := next. next := next + 2].
              whileFalse: [show :’False’]
]
primesDo: [ :each | each printNl ]


نوشته شده در تاريخ چهارشنبه 1391/10/20 توسط مریم رادفر

fun isprime ( n : int ) :bool=

let fun nodivisiors Above (m:int)=

if n mod m =0 then false

else if m*m >=n then true

else nodivisiorsAbove (m+1)

in

nodivisirsAbove (2)

end


نوشته شده در تاريخ جمعه 1391/10/15 توسط سودابه دودانگه

 

 

ویژگی زبان net.data



ادامه مطلب
نوشته شده در تاريخ جمعه 1391/10/15 توسط سودابه دودانگه

محیط برنامه نویسی LSL (بخش 4-1):

زبان LSL از زبان های اسکریپتی می باشد که برای برنامه های گرفیکی می باشد بنابراین محیط برنامه نویسی ما باید قابلیت گرافیکی باشد یکی از این محیط هاplugin  میباشد.که اجازه کامپایل و اجرای برنامه را به ما میدهد.

اعلان داده )LSL (5-1-3

Syntax این زبان مشابه زبان C می باشد. و تعریف متغیر به این صورت است :

                               ;  نام متغیر         نوع متغیر

  مثال:                                                                                              Integer           counter;

vector   startPosition;


نوشته شده در تاريخ جمعه 1391/10/15 توسط سودابه دودانگه

بخش(3-1-5)

اعلان داده در زبان برنامه نویسی mel با استفاده از قاعده زیر است:

(نام متغییر) $ (نوع داده);

 

 

 


نوشته شده در تاريخ پنجشنبه 1391/10/14 توسط سودابه دودانگه



برخی ویژگی های ABAP



ادامه مطلب
نوشته شده در تاريخ پنجشنبه 1391/10/14 توسط سودابه دودانگه

 

 

تاریخچه زبان  ABAP



ادامه مطلب
نوشته شده در تاريخ چهارشنبه 1391/10/13 توسط زهره محمدی عارف

C یک زبان قابل حمل میباشد.C

و Cobol جز زبانهای Imperativ میباشند.

زبان C هنگامی استاندارد شد که نمونه های کمی از آنها پیاده سازی شده بود. Timelines

هنگام صدا زدن تابع در زبان C انقیاد پارامترها به محل هایی از حافظه انجام میشود.(Runtime)

زبان Cobol کلمات اضافی زیادی دارد.noise_word.مثلا در دستور go to وجود go لازم ولی نوشتن to

اختیاری است و فقظ جهت افزایش خوانایی در دستور گنجانده میشود.


در زبان کوبول توسط دستور  move coprespanding  میتوان 2 رکورد را به یکدیگر انتساب داد.


در زبان C لیست اشیا اولیه نیست.


نوشته شده در تاريخ چهارشنبه 1391/10/13 توسط زهره محمدی عارف
زبان اسمبلی

اَسِمبلی (Assembly) به مجموعه زبان های برنامه نویسی سطح پایینی اطلاق می شود که در آن مستقیماً دستورالعمل های پردازندهٔ اصلی (CPU) نوشته می شود( یعنی دستوراتی که ALU توانایی انجام آنها را دارد.)

به دلیل سطح پایین بودن این زبان ها، نوشتن ، اشکال زدایی و نگهداری برنامه مشکلتر است. برای هر خانواده CPU یک زبان اسمبلی وجود دارد.

این زبان به زبان مادر کامپیوتر بسیار نزدیک می باشد بطوربکه تمامی برنامه های اولییه همچون ++C توسط زبان اسمبلی ساخته شده است و همچنین اکثر کارهای هک و .... با این زبان انجام می شود. در زبان اسمبلی هر دستور زبان متناظر یک دستور باینری است .
اين زبان را با استفاده از آسيمبلر ها مي توان به زبان ماشين يعني صفر و يك تبديل كرد. نرم افزارهاي اسمبلر بر روي سيستم نصب شده و با وارد كردن كدهاي اسمبلي و دباگ كردن ان مي توان انها را به زبان ماشين تبديل كرد.

در زبان اسمبلی از دستور loop برای ساختن حلقه های شمارشی کاهشی با بدنه کوچک استفاده می شود. فرم کلی آن به صورت زير است:

loop target

دستورالعمل loop ثبات CX را يک واحد کم می کند سپس اگر مقدار جديد CX مخالف با صفر باشد به آدرس target پرش می کند. اگر CX برابر با صفر باشد دستور بعدی اجرا می شود.

ثبات CX به عنوان شمارنده عمل می کند و تعداد تکرار حلقه بايد ابتدا در ثبات CX قرار بگيرد.



ادامه مطلب
نوشته شده در تاريخ چهارشنبه 1391/10/13 توسط زهره محمدی عارف

لیست ها  در هسکل مانند لیسپ از اهمیت بالایی برخوردارند. بسیار هم کارا هستند و فقط به عضو ابتدایی آن ها می توان دسترسی داشت چون با هیچ ترتیب معینی در حافظه نگهداری نمی شوند.



ادامه مطلب
نوشته شده در تاريخ چهارشنبه 1391/10/13 توسط سودابه دودانگه

REPORT Isprime.

DATA: Num TYPE I,

              b TYPE I.

WRITE 'enter the number'.

If n=2.

         WRITE 'number is prime'.

Endif.

DO.

        b=2.

        If n%b=0.

               WRITE 'number isn’t prime'.

               Exite.

        Elseif b+1>n/2.

               WRITE 'number is prime'.

               Exite.

        Else.

               b=b+1.

        Endif.

ENDDO.


نوشته شده در تاريخ چهارشنبه 1391/10/13 توسط طاهره رحیمی

تاریخچه ای کوتاه از زبان HTML را در ادامه مطلب ببینید.....



ادامه مطلب
.: Weblog Themes By Pichak :.


تمامی حقوق این وبلاگ محفوظ است | طراحی : پیچک

  • دانلود فیلم
  • قالب وبلاگ
  •