рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Информатика

Информатика - раздел Информатика, Информатика ...

Информатика

Пример в качестве разделителя пробел и узнать кол – во слов: //процедуры удаления пробелов в начале и в конце строки Procedure Del_Sp_L(var s:string); Begin While s[1]=’ ’ do Delete(s,1,1); end;

Program Ex2_1;

Var

S:String;

I,k:Byte;

C:char;

Begin

Write(‘s=’);Readln(s);

Write(‘c=’);readln(c);

Del_sp_l(s);

If s[1]=c then k:=1;

Else k:=0;

For i:=2 to length(s) – 1do

If s[i]=’ ’ and s[i+1]=c then

Inc(k);

Writeln(‘k=’,k);

End.

Комбинированные типы

  Пусть необхадимо выполнить действия над комплексными числами вида a+ib, i^2= –… <комбинированный тип>::=Record <список полей> end;

Record

Re:real;

Im:real;

End;

Var x,y:Compl;

x:=3.2+i1.4;

x.Re:=3.2;

y.Im:=1.4;

y:=x;

 

Пример//вычеслить сумму разность и т.п в комплексном пространестве .

Var x,y,u,v,w:Compl;

Begin

Readln(x.re,x,im);

Readln(y.re,y.im);

u.re:=x.re+y.re;

u.im:=x.im+y.im;

v.re:=x.re – y.re;

v.im:=x.im – y.im;

w.re:=x.re*y.re – x.im*y.im;

w.im:=x.re*y.im+y.re*x.im;

End.

Оператор присоеденения

 

With r1,r2,… do s;

With r1 do with r2 do

Индитификатор поля в операторе присоеденения обозночает компоненту комбинированной переменной из ближайшего объемлющего оператора присоединения, в котором указана переменая с таким полем. При определении комбинированого типа, имена отдельных полей могут совпадать с именам переменных, но при этом в частичной – переменной записи указываеться и имя этой переменной записи.

 

Вариантная запись

Запись может иметь вариантную часть, чтобы в пределах одного типа задать несколько различных структур, непосредственный выбор структуры будет определеяться контекстом или каким либо сигнальным значением. Вариантные поля указываются после того, как указаны фиксированные поля. Уточним описание:

<список полей>:=<постоянное поле>|<вариантное поле>

Вариантное поле по структуре похож на оператор выбора:

case <селектор>:<тип селектора> of <элементы списка вариантов>

Точное описание смотри в GOOGLE.

Пример:

 

Type Rec_Type=

Revord

Dlina:byte;

case mera_Dl: char of
‘д’,’Д’:(Inches:Word);

‘с’,’С’:(Santimeters:LongInt);

‘?’:(Comment1,Comment2:string)

End;

// в данном примере два фиксированных поля: длина и мера длины в зависимости от меры длины будут разные наборы для record

 

Множественный тип

[ ] – пустое множество [1,3,4,7] – множество целых чисел [‘s’,’f’,’g’] – множество букв

Операции над множествами

Это двуместные операции, операндами которых являються константы переменные или выражения множественного типа

A:=[1,2,3,4,5]

B:=[2,5,6,7,8]

C:=A+B; {[1..8]}

C:=A*B; {[2,5]}

C:=A – B; {[1,3,4]}

Приоретет операций над множествами анологичен приоретету арифмитических операций. >_<

Операции отношения

математческая запись || паскаль

А=В||A=B

A!=B||A<>B

В включено в А||A>=B

X принадлежит А||A in B

Результатом этих операций будет true or false

Примеры

 

Ввести два множества малых латинских букв. Получить их объеденение, пересечение и разность. Признаком конца ввода являеться *.

Program Ex_23;

Type

Letters=’a’..’z’;

Set_Let=Set of Letters;//множество

var A,B,C:Set_Let;

Procedure In_set(var D:Set_let);

Var

c:char;

Begin

D:=[];

Readln(c);

while (c<>’*’) do

Begin

if c in [‘a’..’z’] then

d:=d+[c];

Readln(c);

End;

End;

Procedure Out_set(D:set_let);

Var

c:Letters;

Begin

for c:=’a’ to ‘z’ do

If c in D then

Write(c);

End;

Begin

write(‘A=’);In_set(a);

write(‘B=’);In_set(b);

c:=a – b;

write(‘A – B’); Out_Set(c);

Etc.

End.

Какие символы есть в строке.

 

Program Ex_24;

Var

s:string;

a:set of char;

c:char;

Begin

Readln(S);

for i:=1 to length(s) fo

A:=A+[s[i]];

out_let(a);//эта функция выводит все символы только от а до z там изменить

End.

 

Получить все простые числа из диапозона 2n.

Для решения задачи вопользуемся вариантом метода решето Эратосфена. В одно множество помещаем очередное простое число, а из другого множества, где содержатья все числа извлекаем его и кратные ему числа.

Суть алгоритма нашел число и удалил его делители.

Program Ex_25;

Const

N=201;

Type Nat=1..N;

Set_Nat=Set of Nat;

Var

Num,Pr_Num:Set_nat;

p,k:Nat;

Begin

num:=[2..n];

pr_num:=[];

p:=2;

Repeat

While not(p in num) do

p:=p+1;

pr_num:=pr_num+[p];

k:=p;

Repeat

num:=num – [k];

k:=k+p;

until k>n;//иногда может срабатывать и на равенство

until num=[];

for k:=2 to n do

If k in pr_num then

write(k:4);

End.

Дано предложение, вы вести кол – во вхождение каждого из используемых символов

 

Файловый тип

1) У него есть имя, что дает возможность программе работать одновременно с несколькими файлами. 2) компоненты должны быть одного типа. Тип компнентов может быть любым кроме… 3) Длина создаваемого файла никак не оговариваеться при его объявлении и ограничиваеться емкостью внешних…

Логические файлы

CON: логическое имя, которое определяет консоль клавиатуру или экран дисплея.… PRN:

Файловые типы

Паскаль поддерживает 3 файловых типа: 1) текстовый (text) 2) типизированный (file of)

Процедуры для работы с файлами

Read(f,x);

write(f,’ ‘);

assign(f,’input.txt’);

reset(f) –для чтения

rewrite(f) –для записи

Close(f);

rename(f,’output.txt’);

Erase(f) – delete

EOF –конец строки

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

Дадим определение текстового файла. Текстовый файл – это файл в котором: 1) информация представляеться ASCIIкодами 2) порции информации могут разделять на строки

Var

s:string;

f:text;

Begin

assign(f,’ex_27.pas’);

Reset(f);

While not EOF(f) do

Begin

Readln(f,s);

Writeln(s);

End;

Close(f);

End;

 

Типизированные файлы

File of <тип компонент> –т.е любой тип, кроме типа файл. При работе с файлом есть два этапа: создание и использование файла. Эти два этапа могут быть реализованы, как в разных программа так и в одной

Program ex_28;//создать файл целых чисел из диапозона m n

Var

i,m,n:integer;

f:file of integer;

Begin

assign(f,’Int.dat’);

Rewrite(f);

write(‘M=’);readln(m);

write(‘N=’);readln(n);

for i:=m to n do

Write(f,i);

Close(f);

End.

IOResult –возварщаетусловный признак последней операции ввода вывода. Если опреация завершилась успешно то выдаст 0. Функйия IOResultдоступна только при отключонном контроле ошибок ввода вывода {$I – } – off {$I+} – onавтоконтроль. Если автоконтроль отключен, а операция ввода – вывода привела к ошибке, устанавливаеться флаг ошибки и последующие обрашения к вводу выводу блокируються пока не будет вызвана функция IOResult.

Program ex_29;//по значениям целых чисел из файла int.dat получить вещественный файл //Re.dat удваивая каждую компоненту

Var

k:integer;

x:real;

f:file of integer;

g:file of real;

Begin

assign(f,’Int.dat’);

{$I – }

Reset(f);

{$I+}

if IOResult=0 then

Begin

assign(g,’re.dat’);

Rewrite(g);

While notEOF(f) do

Begin

Read(f,k);

x:=k*2.;

Write(g,x);

End;

Close(f);

Close(g);

Reset(g);

While notEOF(g) do

Begin

Read(g,x);

write(x:6:1);

End;

Writeln();

End

Else

Begin

writeln(‘Error:’,IOResult);

End;

End.

Некоторые коды ошибок ввода – вывода:

2 – файл 404

3 – путь 404

4 – слишком много открытых файл

100 – ошибка чтения диска, поптыка чтения из полностью прочитанного файла.

101 – ошибка записи на диск

102 – файлу не присвоено имя

103 – файл не открыт

Безтиповые файлы, операции ввода – вывода

Стандарт паскаля, вводит особый файловый тип являеться по сути, обобщенным файловым типом, который будем называть безтиповым файлом.

Var

f:file;

Безтиповый файл – это мощное средство обработки, так как позволяет манипулировать данными незадумываясь об их типе. С его помощью можно записывать на диск произвольные участки оперативной памяти и считываться их с диска. Можно так – же преобразовывать данные безтипового файла в любой формат посредствам приведения типов. Ввод – вывод для безтиповых файлов осуществляеться специальными процедурами: BlockRead and BlockWrite.Кроме этого расширяеться синтаксис процедур:

ReSet(var f:file; BufSize:word);

ReWrite(var f:file; BufSize:word);

BufSize – задает число байтов, обрабатываемых за одно обращения, чем больше тем лучше. Минимальный блок который может быть записан или прочитан 1 байт. Максимальный размер 64к.

Последовательный и прямой доступ к файлу.

херачим ресунок Поскольку фактически пронумерованны не элементы файла, а гранцы между ними,… FileSize(var f:file):LongInt;//возврашает числа записей или блоков в файле f.

Program std;

Type

TEL=integer;

TFile=file of TEL;

Var

l:integer;

f:Tfile;

Procedure Out_File(var g:TFile);

Var

x:TEL;

Begin

Reset(g);

While not EOF(g) do

Begin

Read(g,x);

write(x:3);

End;

Writeln();

End;

Procedure Ins_Field(var g:TFile; R:TEL);

Begin

Seek(g,FileSize(g));

Write(g,R);

End;

Procedure DelField(var g:TFile; k:integer);

Var

N,i:Integer;

x:TEL;

Begin

N:=FileSize(g);

if k<=N then

Begin

for i:=k to N – 1 do

Begin

Seek(g,i); read(g,x);

seek(g,i – 1); write(g,x);

End;

Truncate(g);

End;

End;

procedure MakeFile(var f:TFile);

Begin

Rewrite(f);

Write(f,1,2,3,4,5);

Close(f);

End;

Begin

assign(f,'in.txt');

MakeFile(f);

Reset(f);

Out_File(f);

DelField(f,2);

Out_File(f);

Close(f);

End.

Модули

Модуль Unitв турбопаскале – это специальным образом оформленная библиотека определений, типов, констант, переменных, а так – же процедур и функций. Модули в отличии от программы не может быть запущен на выполнение самостоятельно он может только учавствовать для построения программы или другого модуля. В отличии от фрагментов текстов программ подключаемых к программе при компиляции дерективы {$I имя файла} модуль предварительно компилируться независимо от программы.

Результат компиляции модуля являеться файл с расширением .TPV. Для подключения модуля к программе его имя необходимо указать в дерективе Uses.

При программирование возможность модульного построения особенно полезно при создании собственных библиотек, процедур и функций, которые в последствии могут подключаться к разным программам, не требуя никаких переделок.

Общая структура модуля:

Unit имя модуля

Interface {начало раздела объявлений}

Uses …//раздел поключений других модулей

Сonst

Type

Var

Заголовки процедур и функций

Implementation {раздел реализации}

Uses…//модули используемые при реализации

Const

Type

Var

Описание процедур и функций

Begin

End.

Все блоки соствеляющие эти разделы являються необезательными и могут опускаться, так и повотряться неоднократно. Если не вводиться раздел инициализации, то beginне указываеться.

Заголовок модуля определят имя, по которому модуль будет подключаться к другим программам. Имя должно быть уникально и соответствовать именю файла *.pas, хранящий исходный код модуля, а после компиляции модуль с расширением *.TPV

Раздел реализации состоит, как правило, из тела процедур и функций описанных в разделе объявлений. В разделе реализации могут быть введены свои типы, константы и пременные, они будут глобальными но относительно к подпрограмма этого раздела. В разделе реализации могут описываться подпрограммы, которые учавствуют в работе объявления процедур и функций, но сами не являющиеся объявленными. Обычно в разделе реализации происходит заполнение стартовыми значениями библиотечных переменных и выполнються одноразовые действия, обязательные в начале программы.

Компиляция модулей

– Compile – Make – Build

Система библиотечных модулей

В турбо паскале определен ряд стандартных модулей, они обеспечивают функции ввода – вывода, работу со строками, управление экраном, работу с принтером и т.п

SYSTEM.TPVвключает все стандартные функции объявленные в стандартном паскале(по сути sin, cos and etc).

соответствующие

DOS.TPVсодержит стандартные процедуры для работы с функциями операционной ситемы

CRT.TPVбиблиотека для работы с клавиатурой и диспелеем

PRINTER.TPV

OVERLAY.TPVполная поддержки и адмистрирования овейлерных структур WIN.TPVприложение к CRTпредоставляет новые возможности при работе с окнами Ряд модулей включаеться в библиотеку поддержку TURBO.TPL

Модуль CRT

Delayзадержка выполнения программы на заданное число милисекунд TextColorзадет цвет выводимых символах TextBackground задает цвет фона

Program CodeKey;

Var

cc:char;

cr:byte;

Begin

Repeat

cc:=readKey;

cr:=Ord(cc);

writeln(cc,’ – >’,cr);

until cr=27;

End;

Модуль Graph

Представляет собой библиотеку процедур управления графияескими режимами. Для работы в графическом режиме необоходимо инициализировать графику поцедруой InitGraphс соответвующими параметрами, один из которых путь к файлам .BGI, яркий пример инициализации графика будет приведм на пратике.

 

Указатели и динамическая память.

Var <имя_указателя>:^<тип адресуемой переменной> При этом существуют универсальные нетепизированные указатели, которые могут… Var <имя_указателя>:Pointer;

Type

TArr1=Array[1..100] of integer;

Ref_Arr:^TArr1;

Var

p:^Integer;

q:^real;

RMass:Ref_Arr;

Связь указателя с объектом

указатель
объект


 

Существует Nil,который не связывает никакой объект. При описании ссылочной переменной, она не указывает ни на какой объект, и даже не имеет значение Nil.Таким образом описание указателя вводит в употребление переменную, но не определяет никакого программного объекта на который будет указываеть, значение ссылочной пременной. Для пораждения динамического объекта служит процедура New(указатель)в которой задаеться указатель сопостовляемая порождаемому динамическому объекту. Обратим внимание на то, что этому объекту не присваиваеться какое – либо значение, т.е процедура Newдля динамического объекта играет туже роль,что и описание для статического объекта. Для того, чтобы извлечь значение хранящиеся по некоторому адресу используеться унарная операция «^» – разименование. <имя_указателя>^;

Var

p:^integer;

New(p);

p^:=123;

Переменная с указателем, может использоваться в любых конструкциях языка, где допустимо использование переменных данного типа.

Операции над указателями

Допускаеться только «:=» и две операции сравнения: = && <>

v=e;где е ссылочное выражение, которая задает ссылочное значение того – же типа, что и переменная v. В качестве ссылочного выражения,могут использоваться:Nill,ссылочная переменная и ссылочная функция(значением которой являеться ссылка), для указателей действует более жесткие требование к совместимости типов, чем к обычным выражений. В операции присваивания, могут фигурировать только указатели на переменные одинаковых типов. Так на пример:

Var

p:^integer;

q:^byte;

p:=q; – Это будет ошибкой;

Обойти эти ограничения позволяет универсальность нетипизированного указателя

t:Poniter;

t:=q; p:=t;

Var

p,d:^integer;

New(p);

New(d);

d^=5; p:=d; d:=Nil;

Уничтожение указателей

Dispose(p)– уничтожает обьект, на который ссылается p. Но к этому времени d указывает на тот же динамический обьект. Возьникает конфликтная…

Динамические структуры данных

Линейный список:В этом случаее каждому элементу, нужно сопоставить ссылку на следующий элемент

Type TEL={некоторй тип}

Ref=^Node;

Node=Record

Inf:TEL;

Next:Ref;

End;

Var

First,p:Ref;

Обрашаем внимание на то, что при описании Refиспользуеться описание которое, описываеться позже. Это ед. в паслке исключение сделано для возможности организации динамических структур. Информационное поле Infможет содержать любую информацию произвольной структуры, которая определяеться типом TEL.Графически список можно представить в виде

*
Inf 1
Next  
Inf 2
Next  

 


При описании любой динамической структуры данных главное определить возможные операции над ее элементами. Так элементами линейного списка выполняються следуюшие элементарные операции:

1) включение элемента в список

2) удаление

3) поиск

При написание процедур реализуюших основные операции над списками будем предпологать наличие приведенных ранее описание типов. Короче смотри выше.

Включение нового эллемента, после эллемента со ссылкой Р.

Procedure In_Spi(NewInf:TEL; R:Ref);

Var

p:Ref;

Begin

New(p);

p^.inf=NewInf;

p^.next:=R^.next;

R^.next:=p;

End;

Удаление эллемента из списка:

Procedure Del_Spi(R:Ref);

Var

p:ref;

Begin

p:=R^.next;

R^.next:=p^.next;

Dispose(p);

End;

Вывjд списка на экран:

Procedure Out_Spi(R:Ref);

Var

p:ref;

Begin

write(‘List<’);

p:=R;

while p<>Nil do

Begin

write(p^.Inf:4);

p:=p^.next;

End;

writeln(‘>’);

End;

В качестве примера приведем формирование списка целых чисел тип элемента TEL=integer;признак завершения ввода 0.

First:=nil;

write(‘ – >’);readln(x);

if x<>0 then

Begin

New(q);

q^.inf:=x;

q^.next:=nil;

first:=q;

write(‘ – >’);Readln(x);

while x<>0 do

Begin

In_Spi(x,q);

q:=q^.next;

write(‘ – >’);

Readln(x);

End;

End;

 

Процедуру поиска элемента я легко сделаю сам.

Procedure (find:TEL);

Var

p:Ref;

find:TEL;

Begin

p:=First;

while (p<>nill) or (p^.inf<>find) do

Begin

find:=p^.inf;

p:=p^.next;

End;

End;

Двунаправленный список

* Inf 1 Next   Inf 2 …    

Очередь и стек

Очередь –это линейный список в котором все включения производиться на одном конце а исключения на другом – это принцип FIFO. Стек –это линейный список в которм все включения и исключения производиться на… Над этими структурами данных определены операции включения, удаления, и проверка на пустоту.

Деревья

Type TEL=integer; Ptree=^Ttree; Ttree=record

End;

 

Генерация Деревьев синтаксического анализа

3. Постфиксный способ ((a,(b,c)+)/,(x,(y,z)-)*)+ Вид ДСА не зависит от способоа записи выражения, поскольку определяет его не… 1) инфиксной записи. Для простоты будем считать что правильное арифмитическое выражение, задаеться в одной строке, без…

Var

c:TEL;

Begin

Read(c);

if c=’(’ then

Begin

New(p);

Infix(p^.left);

read(p^.inf);

infix(p^.Right);

Read(c);

End

Else

Begin

New(p);

p^.inf:=c;

p^.left:=nil;

p^.right:=nil;

End;

End;

2) из префиксной. Если не достигнут конец строки ввода, прочитать очередной символ, создать новую вершину дерева, записать в него этот символ. Если символ операция, то выполнить алгоритм префикс для левого поддерева и тут же выполнить алгортим префикс для правого поддерерва.

Procedre Prefix(var p:Ptree);

Var

c:TEL;

Begin

New(p);

Read(p^.inf);

if p^.inf in [+-*/] then

Begin

Prefix(p^.left);

Prefix(p^.right);

End

Else

Begin

p^.left:=nil;

p^.right:=nil;

End;

End;

 

Будем считать что из записи удалены все скобки и запятые, это допустимо так как операция всегда предшествует своим опреандам. И следовательно путанци невозможно.

 

3)построение из постфиксной записи. В этом случае так-же будем считать будут удалены все скобки и запятые. Описание алгоритмa смотри код

Procedure Postfix(var Stack:PTree);

Var

p:PTree;

//для разнообразия символы будем считать из файла

Begin

stack:=nil;

While not seekEOLn(f) do

Begin

New(p);

Read(f,p^.inf);

if p^.inf in [+-*/] then

Begin

p^.right:=stack;

p^.left:=stack^.next;

p^.next:=stack^.next^.next;

stack:=p;

End

Else

Begin

p^.left:=nil;

p^.right:=nil;

p^.next:=stack;

Stack:=p;

End;

End;

 

Обходы деревьев

Прямой обход: Результатом прямого обхода ДСА, арифмитического выражения, будет префексный… Алгоритм PerOrder:начать с корня, пометить вершины, совершить прямой обход левого поддерева, совершить прямой обход…

Begin

p^.mark:=k;

if p^.lift<>nil then

PreOrder(p^,left,k+1);

if p^.right<>nil then

PreOrder(p^.right,k+1);

End;

Обратный обход:

Результатом обхода будет постфиксный вариант записи. Обход в глубину снизу верх. Начать с коря совершить обратный обход левого поддерева и правого.

Procedure PostOrder(p:PTree; k:Integer);

Begin

if p^.lift<>nil then

PostOrder (p^,left,k+1);

if p^.right<>nil then

PostOrder (p^.right,k+1);

p^.mark:=k;

End;

Синтасический обход:

В результате получим инфиксный вариант. В ширину

Procedure SyntOrder(p:PTree; k:Integer);

Begin

if p^.lift<>nil then

SyntOrder (p^,left,k+1);

p^.mark:=k;

if p^.right<>nil then

SyntOrder (p^.right,k+1);

End;

Обход в ширину

этот алгоритм может быть распространен и наслучай произвольного корневого дерева 1)занести в очередь корень дерева, пока очередь не станет пустой повторять… Tail:=Root;

Repeat

Tail^.next:=Head^.left;

if Head^.Left<>nil then Tail:=Tail^.next;

Tail^.next:=Head^.right;

if head^.right<>nil then Tail:=Tail^.next;

Inc(k);

Head^.mark:=k;

Head:=Head^.next;

until Head=nil;

 

 

Методы сортировки

1) сортировка включением 2) сортировка выбором 3) сортировка обменом  

Простые соритровки

Const N=…; {kol ellementov}

Type

TInd=1..N;

TEL=Integer;

TArr1=Array [TInd] of TEL;

Var

A:TArr1;

i,j:TInd;

В силу токого, что часто придеться менять местами

procedure swap(var a1,a2:TEL);

Var

temp:TEL;

Begin

temp:=a1;

a2:=a2;

a2:=temp;

End;

Сортировка прямым включением.

Самый простой способ сортировки – это упроядочение данных по мере их поступления. В этом случае при вводе каждого нового элемента будем считать, что предыдушие элементы образуют уже отсоритрованную последовательность в этом случае этот алгоритм можно описать так.

1) Включить первый эллемент

2) Включить второй эллемент, пока не закончиться последовательность вводимых данных, для кадого нового эллемента выполнять: начиная с конца существующей упорядоченной последовательности все эллементы, которые больше чем новый вводимы эллемент сдвинуть на одну позицию вправо. И записать новый эллемент на освободившиеся место. Будем считать что все эллементы находяться в массиве и очередной вводимый эллемент, будет очередным эллементом массива

 

{ Сортировка прямым включением }

Procedure Insert(Var A: TArr1);

Var i, j: TInd;

Key: TEL;

Begin Вес Число раз

For j:=2 To N Do Begin c1 N-1

Key:=A[j]; c2 N-1

{ Добавить A[j] к отсортированной части A[1..j-1] }

i:=j-1; c2 N-1

While (i>0) And (A[i]>Key) Do Begin c3 0..N-1

A[i+1]:=A[i]; c2 0..N-2

i:=i-1; c2 0..N-2

End;

A[i+1]:=Key; c2 N-1

End;

End;


для оценки укажем количество повторений всех операций. Отсюда следует, что в случае когда на вход подаеться уже упорядочанная последовательность внутренний цикл не выполенеться ни разу, и общее число сравнений, и присваиваний будет линейно зависить от N.В худшем случае упорядоченность в обратном порядке. Сложность О(N^2)

 

Сортировка прямым включением с барьером

Tind=0..N и будем в него каждый вставляемый эллемент.В тех случаях, когда вставляемое…  

Соритировка бинарными вставками

Procedure Insert_Bin(Var A: TArr1); Var i, j, Sr, L, R: TInd; Key: TEL;

Сортировка простым выбором

 

Этот алгоритм уже был реализован.

Procedure Select(Var A: TArr1);

Var i, j, k: TInd;

Begin

For j:=1 To N-1 Do Begin

k:=j; { Поиск минимального, начиная с j-го }

For i:=k+1 To N Do

If x[i] < x[k] Then k:=i;

{Меняем местами минимальный x[k] с x[j]}

Swap(x[k], x[j]);

End;

End;

 

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

  Procedure Merge(Var A: TArr1; L, M, R:TInd); Var i, j: TInd;

Улучшенные соритровки

  Procedure QuickSort(Var A: TArr1; Lo, Hi: TInd);  

ООП

– Конец работы –

Используемые теги: информатика0.039

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Информатика

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Лекции по курсу Информатика Лекция 1. Основные понятия и методы теории информатики и кодирования. Информатика как научная дисциплина. Понятие информации и информационных процессов
Лекция Основные понятия и методы теории информатики и кодирования... Информатика как научная дисциплина... Понятие информации и информационных процессов...

ЛЕКЦИЯ 1. 3 ПОНЯТИЕ ПРАВОВОЙ ИНФОРМАТИКИ И ЕЕ ПРЕДМЕТ. Правовая информатика как наука и учебная дисциплина. О месте правовой информатики в системе наук и правоведении. 14
ВВЕДЕНИЕ... ЛЕКЦИЯ... ПОНЯТИЕ ПРАВОВОЙ ИНФОРМАТИКИ И ЕЕ ПРЕДМЕТ Правовая информатика как наука и учебная дисциплина...

ЛЕКЦИИ ПО КУРСУ ИНФОРМАТИКА Лекция 1. Введение. История информатики. Измерение
Лекция... Введение История информатики Измерение...

Тема урока: Информация и её виды. Что изучает информатика? Техника безопасности в компьютерном классе Урок информатики в 10 классе 1 Из материалов сайта
Урок информатики в классе... Из материалов сайта Скородянской средней школы Губкинского района... Цель урока Познакомить учащихся с новым предметом Изучить понятие информации Воспитание умения слушать учителя...

Лекции 1.ОСНОВНЫЕ ПОНЯТИЯ И КАТЕГОРИЯ ИНФОРМАТИКИ. 2 ЛЕКЦИИ 2. МАТЕМАТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ. СИСТЕМЫ СЧИСЛЕНИЯ. 12 ЛЕКЦИЯ 3. АППАРАТНОЕ ОБЕСПЕЧЕНИЕ ЭВМ. 20 ЛЕКЦИЯ 4. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КОМПЬЮТЕРОВ.. 49 Широко распространён также англоязычный вар
gl ОГЛАВЛЕНИЕ... Лекции ОСНОВНЫЕ ПОНЯТИЯ И КАТЕГОРИЯ ИНФОРМАТИКИ... ЛЕКЦИИ МАТЕМАТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ СИСТЕМЫ СЧИСЛЕНИЯ...

Объект и предмет информатики. Структура Информатики
Информатика делится на ряд разделов... Теоретическая информатика... Основная статья Теоретическая информатика...

Конспект лекций по дисциплине Информатика Введение в информатику
Введение в информатику Определение инфоpматики В году... Формы существования информации... Информация может существовать в самых разнообразных формах...

КУРС ЛЕКЦИЙ по дисциплине Информатика Лекция 1 1. Введение в информатику
Федеральное агентство по образованию... Государственное образовательное учреждение... высшего профессионального образования...

Предмет и основные понятия информатики Предмет информатики как науки составляют: -аппаратное обеспечение средств вычислительной техники
Информатика это комплексная техническая наука которая систематизирует... Термин информатика происходит от французского слова Informatique и образован из двух слов информация и автоматика...

Рассматривается история развития информатики и излагается предмет информатики
Ключевые слова advanced brainware CD RW DARPA edu gov hardware Internet MAX net org science true Windows автомат база данных вектора... Хотя информатика и считается достаточно молодой наукой по отношению ко многим... При рассмотрении вопроса об истории информатики будем исходить из первых признаков и событий информационного обмена...

0.035
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам