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


 
В этот день много лет назад...
27 апреля. В 1636 году (388 лет назад) - Основывается славный город Тамбов на высоком берегу реки Цны. Он уже в конце XVIII века станет губернским городом, так что не совсем прав Лермонтов, начавший поэму "Тамбовская казначейша" словами "Тамбов на карте генеральной кружком означен не всегда".
 
 

Turbo Pascal Examples. Stack example.

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


 
Stack example
Сформировать стек. Анализируя стек, сформировать списки:
а) букв латинского алфавита;
б) литер цифр.


type
  stack_p = ^stack_t;
  stack_t = record
    ch :char;
    next:stack_p;
    end;

var stack_root,lat_list_root,num_list_root,work:stack_p;
    example:String;
    i:byte;

procedure addToStack(var root:stack_p;uch:char);
var w:stack_p;
  begin
  if (root = nil) then
    begin
    new(w);
    root := w;
    end
  else
    begin
    w := root;
    while w^.next <> nil do
      w:=w^.next;
    new(w^.next);
    w:=w^.next;
    end;
  w^.ch := uch;
  w^.next := nil;
  end; { addToStack }

procedure printStack(root:stack_p;title:String);
var w:stack_p;
  begin
    writeln(title);
    w := root;
    while w <> nil do
      begin
      write(w^.ch,',');
      w:=w^.next;
      end;
    writeln;
  end; { printStack }

  begin { main }
  example := 'This is an example. The 1st program has 234 lines.';


  { form stack }

  stack_root:=nil;
  for i:=1 to length(example) do
    addToStack(stack_root,example[i]);

  if (stack_root=nil) then
    begin
    writeln('The stack is empty.');
    halt(0);
    end;

  printStack(stack_root,'Original Stack');

  lat_list_root:=nil;
  num_list_root:=nil;

  work:= stack_root;
  while (work <> nil) do
    begin
    if (pos(work^.ch,'0123456789') >0)
      then addToStack(num_list_root,work^.ch)
      else addToStack(lat_list_root,work^.ch);
    work:=work^.next;
    end;
  printStack(lat_list_root,'Latin letters list');
  printStack(num_list_root,'Digits list');

  end.


 

 

 

 

 

 

 


HOME