Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
паскаль. Краткая инструкция.docx
Скачиваний:
7
Добавлен:
11.09.2019
Размер:
82.78 Кб
Скачать

Текстовые файлы

Var f:text;

Описывает файл состоящий из строк текста.

Константы

Const pi=3.14;

Const digits:array[0..9] of Char = (‘0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’);

Const digits:array[0..9] of Char = ‘0123456789’;

Пользовательские процедуры и функции

Нахождение наибольшего общего делителя

program nod;

var a,b,c:integer;

begin

Writeln('enter a,b');

Readln(a,b);

While b>0 do begin

c:=b;

b:=a-(a div b)*b;

a:=c;

end;

Writeln(a);

end.

*- у взаимно простых чисел НОД=1

** - НОК(a,b)= abs(a*b)/НОД(a,b);

Нахождение простых чисел от 1 до n

program simplified;

var n:integer;i,j:integer;

a:array[1..100] of boolean;

begin

Writeln('enter n');

Readln(n);

i:=2;

While sqr(i)<=n do begin

if a[i]=false then begin

j:=sqr(i);

While j<=n do begin

If a[j]=false then a[j]:=true;

j:=j+i;

end;

end;

inc(i);

end;

For i:=2 to n do If a[i]=false then Write(i:3);

end.

*- через алгоритм нахождения простых чисел можно найти все простые делители числа

**- если до sqrt(n) число n не имеет делителей => n – простое

Сортировка массива (метод Шелла)

Program shell;

const n=30;

type arr=array[1..n] of integer;

var x:arr;p:integer;

procedure sorting(var a:arr);

var b,i,j,k,h:integer;

begin

b:=n;

k:=b div 2;

While k>0 do begin

For i:=1 to b-k do begin

j:=i;

While (j>=1) and (a[j]>a[j+k]) do begin

h:=a[j];

a[j]:=a[j+k];

a[j+k]:=h;

dec(j);

end;

end;

k:=k div 2;

end;

end;

begin

Randomize;

For p:=1 to n do begin

x[p]:=-n+random(2*n+1);

Write(x[p]:4);

end;

Writeln;

Writeln;

sorting(x);

For p:=1 to n do begin

Write(x[p]:4);

end;

end.

Сортировка массива слиянием

program merg;

uses crt;

const n=30;

type arr=array[1..n] of integer;

var a:arr; ii:integer;

procedure Merge (var a: arr; p, q, r: integer);

var i, j, k: integer;

var B: arr;

begin { Merge }

i := p;

j := q + 1;

k := p;

while ((i <= q) and (j <= r)) do

begin

if (A[i] < A[j])

then begin

B[k] := A[i];

i := i + 1;

end

else begin

B[k] := A[j];

j := j + 1;

end;

k := k + 1;

end;

while (i <= q) do

begin

B[k] := A[i];

k := k + 1;

i := i + 1;

end;

while (j <= r) do

begin

B[k] := A[j];

k := k + 1;

j := j + 1;

end;

for k := p to r do A[k] := B[k];

end;

procedure MergeSort (var A: arr; p, r: integer);

var q: integer;

begin { MergeSort }

if (p < r) then

begin

q := (p + r) div 2;

MergeSort (A, p, q);

MergeSort (A, q + 1, r);

Merge (A, p, q, r);

end;

end;

begin

Randomize;

For ii:=1 to n do begin

a[ii]:=-3*n+random(6*n+1);

Write(a[ii]:4);

end;

Writeln;

Writeln;

mergesort(a,1,n);

For ii:=1 to n do Write(a[ii]:4);

end.

Пирамидальная сортировка массива

program pyramide;

uses crt;

const n=30;

type arr=array[1..n] of integer;

var a:arr; q:integer;

procedure swap(var x,y:integer);

var temp:integer;

begin

temp:=x;

x:=y;

y:=temp;

end;

procedure toPyr(var data:arr;z:integer);

var i:integer;

begin

for i:=(z div 2) downto 1 do begin

if 2*i<=z then if data[i]<data[2*i] then swap(data[i],data[2*i]);

if 2*i+1<=z then if data[i]<data[2*i+1] then swap(data[i],data[2*i+1]);

end;

end;

procedure left(var data:arr);

var i:integer;

temp:integer;

begin

temp:=data[1];

for i:=1 to n-1 do

data[i]:=data[i+1];

data[n]:=temp;

end;

begin

Randomize;

For q:=1 to n do begin

a[q]:=-2*n+random(4*n+1);

Write(a[q]:4);

end;

for q:=n downto 1 do begin

topyr(a,q);

left(a);

end;

Writeln;

Writeln;

For q:=1 to n do Write(a[q]:4);

end.

low

X:=low(x)

Возвращает младшее значение в диапазоне аргумента.

Ord

X:=ord(‘a’)

Возвращает код символа из таблицы ASCII

ln

X:=ln(2.71)

Натуральный логарифм числа

pi

X:=pi

Возвращает значение числа пи

odd

If odd(x)=true then …

Проверяет – является аргумент нечетным числом

pred

X:=pred(11);

{x=11; x=10}

Возвращает предшествующее значение аргумента

length

X:=length(s);

Возвращает динамическую длину строки

pos

X:=pos(s1,s2)

Производит поиск подстроки в строке. Возвращает номер позиции первого вхождения подстроки в строку.