PascalABC.NET - PascalABC.NET - Wikipedia

PascalABC.NET
ParadigmaKo'p paradigma: protsessual, funktsional, ob'ektga yo'naltirilgan, umumiy
LoyihalashtirilganS.S. Mixalkovich, Ivan Bondarev, A.V. Tkachuk, S.O. Ivanov
Birinchi paydo bo'ldi2002; 18 yil oldin (2002)
Barqaror chiqish
3.6.0.2330 / 30 yanvar 2020 yil; 10 oy oldin (2020-01-30)
Matnni yozishStatik, qisman xulosa qilingan
Amalga oshirish tiliPascalABC.NET
OSO'zaro faoliyat platforma
LitsenziyaLGPLv3
Fayl nomi kengaytmalari.pas
Veb-saytpascalabc.net/ uz/
Ta'sirlangan
Delphi, Paskal, C #, Python

PascalABC.NET a Paskal klassik Paskal tilini, Delphi tilining aksariyat xususiyatlarini, shuningdek, o'zlarining bir qator kengaytmalarini amalga oshiradigan dasturlash tili. U amalga oshiriladi .NET Framework platforma va barcha zamonaviy til xususiyatlarini o'z ichiga oladi: sinflar, operatorning haddan tashqari yuklanishi, interfeyslar, istisnolardan foydalanish, umumiy darslar va tartiblar, axlat yig'ish, lambda iboralari, parallel dasturlash vositalari (OpenMP faqat 2016 yilgacha).

PascalABC.NET ham sodda va kuchli birlashgan rivojlanish muhiti o'rnatilgan disk raskadrovka, IntelliSense tizimi, ariza tuzuvchisi, kod shablonlari va kodni avtomatik formatlash bilan. Buyruqlar qatori PascalABC.NET kompilyatori Linux va MacOS-da (Mono ostida) ham mavjud.[1]

PascalABC.NET rus maktablari va universitetlarida mashhur. Janubiy Federal Universitetida bu "Dasturlash asoslari" kursida Axborot texnologiyalari talabalariga dars berish va Rossiyaning eng yirik kompyuter maktablaridan birida bolalarni o'qitish uchun asosiy til sifatida ishlatiladi.

PascalABC.NET-ning asosiy xususiyatlari

Paskal tilidagi kengaytmalar

  • Operatorlar += -= *= /=
  • blok ichidagi o'zgaruvchilar ta'riflari
  • O'zgaruvchan deklaratsiya uchun pastadir sarlavhasi
  • Boshlanish bilan o'zgaruvchan deklaratsiya (var n: tamsayı: = 10;)
  • O'zgaruvchan turdagi chegirma (var x: = 1;)
  • har biriga
  • Parametrlarning o'zgaruvchan soniga ega tartiblar
  • o'rnatilgan har qanday turdagi (to'plami tamsayı)
  • Yozuvlardagi usullar
  • Sinf deklaratsiyasida aniqlangan usullar
  • Birliklarning soddalashtirilgan sintaksisi
  • Kalit so'z yangi (konstruktorni chaqirish)
  • Dala boshlovchi
  • Operatorning haddan tashqari yuklanishi
  • Statik konstruktorlar
  • Direktivalar OpenMP
  • torlar uchun holat
  • funktsiya turi sintaksis T-> T
  • sintaksis turi (T1, T2)
  • hosil va hosil ketma-ketligi
  • naqshlarni moslashtirish

Tizim birliklari

Aksariyat bo'limlar ta'limga yo'naltirilgan:

  • GrafikABC (Windows Forms asosida), GraphWPF (WPF asosida) rastrli grafik birliklari
  • ABCObjects (Windows Forms asosida), WPFObjects (WPF asosida) vektorli grafik birliklari
  • 3D grafikalar va animatsiya birligi Graph3D (Helix Toolkit kutubxonasi asosida)
  • FormaABC bo'limi oddiy dizaynerlarsiz Windows dasturini yaratish uchun
  • Robot va Drawman-ijrochi bo'linmalari (maktab kompyuter fanlari)

Namunalar

1. Massivning birinchi va ikkinchi yarmini almashtiring

boshlash  var a := ArrGen(10,men->2*men+1);  a.Chop etish;  Tasdiqlash(a.Uzunlik mod 2 = 0);  var n := a.Uzunlik div 2;  a := a[n:] + a[:n];  a.Chop etish; oxiri.

2. 100!

boshlash  var p: BigInteger := 1;  uchun var men:=1 ga 100 qil    p := p * men;  Chop etish(p);oxiri.

3. Ikki butun sonning kattaroq umumiy bo'luvchisi

boshlash  var (a, b) := ReadInteger2;  esa b > 0 qil    (a, b) := (b, a mod b);  var GCD := Abs(a);  GCD.Chop etish;oxiri.

4. Fibonachchining 1000 dan kam sonini ko'rsating

boshlash  Seq(1,1,(x,y)->x+y,x->x<1000).Chop etish;oxiri.

5. Fayl uchun so'z chastotasi lug'ati

boshlash  var d := yangi Lug'at<mag'lubiyat,tamsayı>;  har biriga var s yilda ReadLines('words.txt') qil    har biriga var so'z yilda s.ToWords qil      d[so'z] := d.Ol(so'z) + 1;  d.PrintLines;oxiri.

5a. Fayl uchun so'z chastotasi lug'ati. Funktsional uslubdagi echim

boshlash  ReadLines('words.txt').Ko'pni tanlang(s->s.ToWords).Guruh tomonidan(v->v).EveryCount.PrintLines;oxiri.

6. OpenMP direktivalari yordamida matritsani parallel ravishda ko'paytirish

protsedura Mult(a,b,v: qator [,] ning haqiqiy; n: tamsayı);boshlash  {$ omp parallel} uchun  uchun var men:=0 ga n-1 qil    uchun var j:=0 ga n-1 qil    boshlash         var cc := 0.0;       uchun var l:=0 ga n-1 qil          cc += a[men,l]*b[l,j];       v[men,j] := cc;       oxiri;oxiri; konst n = 1000; boshlash  var a := MatrixRandomReal(n,n,1,1.1);  var b := MatrixRandomReal(n,n,1,1.1);  var v := yangi haqiqiy[n,n];  Mult(a,b,v,n);  Chop etish(Milisaniyadagi Delta/1000);oxiri.

Shuningdek qarang

Adabiyotlar

Tashqi havolalar