Cum să scrieți soluții despre judecătorul online Pascal @ timus

Cum să scrieți soluții despre Pascal

Programele Pascal sunt compilate pe server folosind 32 de biți compilator FreePascal 2.6.4. Este configurat în modul de compatibilitate cu Borland Delphi și rulează cu următorii parametri:







Puteți descărca FreePascal și citiți documentația online la www.freepascal.org.

Exemplu de rezolvare a problemei

Iată un exemplu de rezolvare a problemei A + B la Pascal:

Ce este nou în compilatorul pe 32 de biți, comparativ cu compilatorul pe 16 biți

Dacă sunt utilizate pentru a scrie programul în vechiul compilator pe 16 biți pentru DOS, de exemplu, în Borland Pascal 7.0, atunci va fi util să știți următoarele:

  • Puteți utiliza rețele mai mari de 64 KB.
  • Tipul întreg este de 32 de biți și se potrivește cu tipul de longint. Un tip întreg semnat pe 16 biți este numit smallint.
  • Linile nu se limitează acum la 255 de caractere. Nu vă referiți la un caracter nul pentru a afla lungimea unui șir, utilizați funcția lungime (lungimi) pentru aceasta. Puteți stabili lungimea unui șir utilizând procedura setlength (s, n).

În plus, au apărut multe cuvinte cheie noi. Următoarele cuvinte nu pot fi redefinite sau utilizate ca identificatori:

Dar acest cod nu este compilat:

Caracteristicile compilatorului în comparație cu alte compilatoare Pascal pe 32 de biți

Există câteva caracteristici ale compilatorului folosit pe server, care sunt utile pentru a ști.







  • Nu există module crt și wincrt pe server. Deoarece procedurile conținute în ele nu sunt necesare pentru rezolvarea problemelor.
  • Cu alocarea dinamică a memoriei, dimensiunea blocului este rotunjită la un multiplu de 16 octeți. De exemplu, dacă selectați mai multe blocuri de 4 octeți, atunci programul dvs. va utiliza de 4 ori mai multă memorie decât este necesar. Folosiți structuri de date statice, nu au acest dezavantaj și, de regulă, funcționează mai repede decât cele dinamice.
  • Seturile pot ocupa doar 4 sau 32 octeți, ceea ce poate duce, de asemenea, la o depășire semnificativă a memoriei. Adesea, o bună alternativă la seturi este utilizarea de biți ai unui întreg (sau o serie de numere întregi).
  • Tipurile de variabile de tip integer și tip de virgulă mobilă nu pot fi menționate în mod explicit. Expresia "x: = prelungită (i)". unde x este de tip extins. și eu este un număr întreg. este eronată. În timp ce expresia "x: = i" este corectă.

Nu puteți modifica valoarea variabilei for loop în interiorul unei buclă. Următorul cod nu este compilat:

În plus, după buclă for, valoarea variabilei buclă nu este definită. Ie valoarea sa nu poate fi utilizată, de exemplu, în scopuri de căutare. Următorul exemplu va funcționa diferit pe compilatoare diferite:

Cum se utilizează tipurile de date pe întregul număr pe 64 de biți

Compilatorul acceptă pe deplin numere pe 64 de biți, semnate și nesemnate. 64-bit întreg cu semn are o serie de valori de la -9.223.372.036.854.775.808 la 9223372036854775807 unsigned - de la 0 la 18446744073709551615. Semnul tip nazyvetsya Int64. nesemnate - qword. Următorul exemplu ilustrează utilizarea tipurilor întregi pe 64 de biți:

Cum se citesc datele înainte de sfârșitul fluxului de intrare

Alte observații

Uneori, verdictul răspunsului greșit înseamnă, de fapt, o eroare de execuție. Acest lucru se datorează faptului că FreePascal le o eroare de execuție de program intercepteaza și afișează un mesaj în fluxul de ieșire.

Pentru a mări volumul stivei, și pentru a evita preaplin atunci când se utilizează „profundă“ recursivitate, utilizați directiva specială (egală cu 16 MB este stabilită în exemplul mărimea stack-ului):

Este convenabil să utilizați directiva condițională ONLINE_JUDGE pentru soluții de depanare.

Compilatoare anterioare







Trimiteți-le prietenilor: