Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

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

Читайте также:
  1. Cудeбныe функции князя и вeчe
  2. I. Правосознание: понятие, структура, функции и виды.
  3. I. Сущность, формы, функции исторического знания.
  4. II. МЕТОДЫ, ПОДХОДЫ И ПРОЦЕДУРЫ ДИАГНОСТИКИ И ЛЕЧЕНИЯ
  5. II. МЕТОДЫ, ПОДХОДЫ И ПРОЦЕДУРЫ ДИАГНОСТИКИ И ЛЕЧЕНИЯ
  6. II. Правовая культура: понятие, функции и виды.
  7. II. Функции Аппарата Правительства
  8. II. Функции школьной одежды
  9. II.2.2. Функции
  10. III. Административные процедуры

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

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) Производит поиск подстроки в строке. Возвращает номер позиции первого вхождения подстроки в строку.

 




Дата добавления: 2014-12-19; просмотров: 23 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.012 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав