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

Вычисления значений формул

<Формула>=<Цифра> |(<Формула> <Операция> <Формула>)

<Цифра>=0..9

<Операция>= +,-,*

Function f:longint;

Var c,op:char; left,right:integer;

Begin

Read(c);

If (c>=’0’) and (c<=’9’)

Then f:=ord(c) – ord(‘0’)

Else

Begin

Left:=f: read(op); righr:=f;

Case op of

+’:f:=left+right’

-‘:f:=left-right;

*’:f:left*right;

End;

Read(c);

End;

End;

Begin

Writeln(f);

Readln;

End;

Написать функцию для вычисления значения формулы преобразовав f(x) так, что бы она вычисляла результат деления и работала с многоразрядными числами

Быстрая сортировка

Идея быстрой сортировки:

  1. Выбрать элемент, который назовем опорным

  2. Разделить массив на 2 части. Левую (в которой содержатся элементы не больше опорного) и Правую(В которой содержатся элементы не меньшими опорного)

  3. Повторить действия для левой и правой части

Const n =____;

Type TVector=array[1..n] of integer;

Procedure quicksort(var x:tvector; l,r:word);

Vat y,buf:integer;

I,j:integer;

Begin

Y:=x[(l+r) div 2];

I:=l;

j:=r;

while i<=j do begin

while x[i]<y do inc(i);

while y[j]>y do dec(j);

if i<=j then

buf:=x[i]; x[i]:=x[j]; x[j]:=buf;

inc(i); dec(j);

end;

end;

if i<j then quickSort(I,J);

else auicksort(I,r);

end;

begin

input(x);

quicksort(x,1,n);

output;

end.

Д.З. Посчитать время работы сортировки «qs» для 100к элементов, 200к, 400к.

T:=gettickcount;

T:=gettickcount-t;

{замер времени исполнения функции}

Файлы

  1. Физические (поименованная область на диске )

  2. Логические (переменная файлового типа)

Три типа файлов:

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

File–of– базовый тип(любой кроме файловов)

Type TSstudent=record

……

End;

Myfile=file of TStudent

Var

F1:file of byte;

F2:file of integer;

F3:file of array[1..100] of byte;

F4:file of char ;

F5:file of myfile;

{Все компоненты нумеруются с нуля}

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

Text

Var t:text

  1. Нетипизированные файлы

File

Var t:file

Два типа доступа к файлам:

  1. Последовательный (sequentialaccessfile) ( в текстовых файлах используется только последловательный)

  2. Прямой (randomaccessfile) (В бинарный и типизированных)

Размер файловой переменной

Var t:file of

Sizeof(?) - 128

Var t:text

Sizeof(?) - 256

Var t:file

Sizeof(f)-128

Процедуры и функции общие для всех типов файлов

  1. Procedureassignfile(varf;fn:string) (связывает файловую переменнуюfс физическим файлом на диске)

Например:

  1. assignFile(f,’c:\temp\test.pas’)

  2. assignFile(f,’ test.pas’)

  3. readln(filename); assignFile(f,filename);

  4. con” – консоль (путь файла)

  5. prn’ – Принтер

  6. lpt1(3)

  7. aux’ мультимедийные устройства

  8. nul’ –

  9. assignFile(f,’ con’)

  1. procedurereset(varf) (Открывает файлы для чтения а типизированные и бинарные еще и для записи. После открытия указатель устанавливается на начало файла)

  2. procedurerewrite(varf) (Открывает файл для записи. Если файла не существует, то он создастся. Если файл существует – то содержимое файла уничтожается, а указатель устанавливается на начало файла)

  3. procedure closefile (var f) (Закрывает открытый файл)

  4. functionEOF(varf):Boolean(Возвращает значение тру если достигнут признак конца файла)

assignFile(f,’filename’);

reset(f);

writeln(eof(f));

assignFile(f,’filename’);

reset(f);

while not eof(f) do begin

считали оброботали вся фигня лалала что за мачмала под звуки репа у моего окна

end;

closeile(f);

  1. FunctionIOresult:word(После вызова значения «Сбрасывается» в 0. При ошибке после обращения к этой функции выключаются операции ввода вывода.)