PascalABC.NET - PascalABC.NET - Wikipedia
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto problémech na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Paradigma | Multi-paradigma: procesní, funkční, objektově orientovaný, obecný |
---|---|
Navrhl | SS Mikhalkovich, Ivan Bondarev, A.V. Tkachuk, S.O. Ivanov |
Poprvé se objevil | 2002 |
Stabilní uvolnění | 3.6.0.2330 / 30. ledna 2020 |
Psací disciplína | Statický, částečně odvozeno |
Jazyk implementace | PascalABC.NET |
OS | Cross-platform |
Licence | LGPLv3 |
Přípony názvu souboru | .pas |
webová stránka | pascalabc |
Ovlivněno | |
Delphi, Pascal, C#, Krajta |
PascalABC.NET je Pascal programovací jazyk, který implementuje klasický Pascal, většinu funkcí jazyka Delphi, stejně jako řadu jejich vlastních rozšíření. Je implementován na .NET Framework platforma a obsahuje všechny moderní jazykové funkce: třídy, přetížení operátora, rozhraní, zpracování výjimek, obecné třídy a rutiny, odvoz odpadu, výrazy lambda, nástroje paralelního programování (OpenMP pouze od roku 2016).
PascalABC.NET je také jednoduchý a výkonný integrované vývojové prostředí s integrovaným debuggerem, systémem IntelliSense, návrhářem formulářů, šablonami kódu a automatickým formátováním kódu. Kompilátor příkazového řádku PascalABC.NET je k dispozici také v systémech Linux a MacOS (v režimu Mono).[1]
PascalABC.NET je populární v ruských školách a univerzitách. Na Southern Federal University se používá jako hlavní jazyk pro výuku studentů informačních technologií v kurzu „Základy programování“ a pro výuku dětí v jedné z největších počítačových škol v Rusku.
Klíčové vlastnosti PascalABC.NET
Rozšíření jazyka Pascal
- Operátoři
+= -= *= /=
- definice blokových proměnných
- Deklarace proměnné v
pro
záhlaví smyčky - Deklarace proměnné s inicializací (
var n: integer: = 10;
) - Odpočet proměnného typu (
var x: = 1;
) pro každého
- Rutiny s proměnným počtem parametrů
soubor
jakéhokoli typu (množina celé číslo
)- Metody v záznamech
- Metody definované v deklaraci třídy
- Zjednodušená syntaxe jednotek
- Klíčové slovo
Nový
(vyvolání konstruktoru) - Inicializátory pole
- Přetížení obsluhy
- Statické konstruktory
- Směrnice OpenMP
- pouzdro na struny
- syntaxe typu funkce T-> T
- syntaxe typu n-tice (T1, T2)
- výtěžek a sekvence výtěžku
- porovnávání vzorů
Systémové jednotky
Většina jednotek se zaměřuje na vzdělávání:
- Rastrové grafické jednotky GraphABC (na základě Windows Forms), GraphWPF (na základě WPF)
- Jednotky vektorové grafiky ABCObjects (na základě Windows Forms), WPFObjects (na základě WPF)
- 3D grafická a animační jednotka Graph3D (na základě knihovny Helix Toolkit)
- Unit FormsABC k vytvoření jednoduché aplikace systému Windows bez návrháře formulářů
- Jednotky-vykonavatelé Robot a Drawman (školní počítačová věda)
Vzorky
1. Zaměňte první a druhou polovinu pole
začít var A := ArrGen(10,i->2*i+1); A.Println; Tvrdit(A.Délka mod 2 = 0); var n := A.Délka div 2; A := A[n:] + A[:n]; A.Println; konec.
2. 100!
začít var str: BigInteger := 1; pro var i:=1 na 100 dělat str := str * i; Println(str);konec.
3. Větší společný dělitel dvou celých čísel
začít var (A, b) := ReadInteger2; zatímco b > 0 dělat (A, b) := (b, A mod b); var GCD := Břišní svaly(A); GCD.Tisk;konec.
4. Zobrazte všechna čísla Fibonacciho menší než 1000
začít SeqWhile(1,1,(X,y)->X+y,X->X<1000).Tisk;konec.
5. Slovník frekvencí slov pro soubor
začít var d := Nový Slovník<tětiva,celé číslo>; pro každého var s v ReadLines('words.txt') dělat pro každého var slovo v s.ToWords dělat d[slovo] := d.Dostat(slovo) + 1; d.PrintLines;konec.
5а. Slovník frekvencí slov pro soubor. Řešení ve funkčním stylu
začít ReadLines('words.txt').Vyberte mnoho(s->s.ToWords).Skupina vytvořená(proti->proti).EveryCount.PrintLines;konec.
6. Násobení paralelní matice pomocí direktiv OpenMP
postup Mult(A,b,C: pole [,] z nemovitý; n: celé číslo);začít {$ omp paralelně pro} pro var i:=0 na n-1 dělat pro var j:=0 na n-1 dělat začít var cc := 0.0; pro var l:=0 na n-1 dělat cc += A[i,l]*b[l,j]; C[i,j] := cc; konec;konec; konst n = 1000; začít var A := MatrixRandomReal(n,n,1,1.1); var b := MatrixRandomReal(n,n,1,1.1); var C := Nový nemovitý[n,n]; Mult(A,b,C,n); Println(Milisekundy Delta/1000);konec.