HOME ПРИМЕРЫ THANKS НОВИЧКАМ ДОКИ LINKS JavaScript Mail


 
В этот день много лет назад...
30 апреля. В 1804 году (213 лет назад) - В битве с голландцами в Суринаме английские войска впервые в мире применяют шрапнель.
 
 

Turbo Pascal Examples

Графика:
Построение графика функции
Прыгающий по экрану мячик.
Качание маятника.
Вложенные цветные круги.
Броуновское движение. Использование объектов.
Матрицы и массивы:
Сортировка элементов массива.
Удаление одинаковых элементов.
Простой пример на поворот матрицы.
Сортировка методом Шелла. +функции измерения временных интервалов.
Проверка выпуклости многоугольника.
Перемоножение матриц
Вычисление определителя матрицы. Рекурсия.
Нахождение обратной матрицы.
Задача об автостоянке.
Рекурсия. Подземелье сокровищ.
Численные методы:
Задачка на определение угла между стрелками часов.
Проверка на принадлежность точки многоугольнику.
Нахождение точки пересечения двух отрезков на плоскости.
Сортировка методом Шелла. +функции измерения временных интервалов.
Сортировка методом "пузырька". Пример на динамические структуры данных. Связанные списки.
Нахождение корня функции методом половинного деления.
Вычисление арккосинуса
Нахождение суммы цифр натурального числа.
Работа с фалами:
Рекурсивное сканирование директорий.
Работа со строками:
Работа со словами в предложении с разделителями.
Простейший синтаксический анализатор для распознавания и вычисления многчлена.
Синтаксический анализатор для распознавания и вычисления многчлена.
Работа со строками: смена кодировки, удаление тегов из HTML текста, обработка
Переименование файлов из кириллицы в латиницу.
Выдача контекстной подсказки.
Частотный словарь символов.
Подсчет повторяющихся символов в строке.
Ссылочные переменные:
Моделирование стека.
Пасьянс "Косынка".
Игры:
Пасьянс "Косынка".
Игра "Питон"
Игра "Анацефал". Пример использования объектов.
Игра "Минное поле"
Большие проекты:
Электронная картотека (без исходника)


 
Поиск файла во всех директориях (рекурсивно).
Еще один пример использования рекурсии. Описана процедура нахождения файла в текущем каталоге. Внутри происходит проверка атрибута найденого файла и если он является подкаталогом, происходит обращение процедуры самой к себе, с другими параметрами. Необходимо заметить, что в данной процедуре отсутствует проверка на завершение выполнения. Это возможно из-за того, что файловая структура (FAT) подразумевается корректной и конечной. Однако, если вдруг окажется, что FAT содержит ошибку и из дочернего каталога ссылается на какой нибудь из своих родительских каталогов, программа войдет в бесконечный цикл.


{ }
uses Dos;
var total,totald:longint;
  Procedure SearchDisk(mask,cat:string);
  var DirInfo: SearchRec;
      CurDir:string;
  begin
    GetDir(0,CurDir);
    chdir(cat);
    FindFirst(mask, AnyFile, DirInfo);
    while DosError = 0 do
      begin
      if (DirInfo.Name<>'.') and (DirInfo.Name<>'..') then
        begin
        WriteLn(' fn:',DirInfo.Name:14,'  Cat:',cat);
        if (DirInfo.Attr = $10) then
          begin { directory found }
          inc(totald);
          if (cat='\')
            then SearchDisk(mask,'\'+DirInfo.Name)
            else SearchDisk(mask,cat+'\'+DirInfo.Name);
          end
        else { file found }
          inc(total);
        end;
      FindNext(DirInfo);
      end;
    chdir(CurDir);
  end;
begin
total:=0; totald:=0;
SearchDisk('*.*','\');
writeln('Found: ',totald:5,' directories.');
writeln('       ',total:5,' files.');
end.

 

 

 

 

 

 

 


HOME