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


 
В этот день много лет назад...
27 апреля. В 1938 году (86 лет назад) - В Москве арестовывается ведущий советский физик-теоретик, профессор Лев Давидович Ландау, заведующий Теоретическим отделом Института физических проблем (ныне им. Капицы), основанного и возглавлявшегося Петром Леонидовичем Капицей. Арест производится спустя четыре дня после того, как Ландау вместе с одним из своих младших коллег составил резко антисталинскую листовку, которую предполагалось размножить и распространить во время празднования 1 Мая. Впрочем, у НКВД к тому времени имелось и множество других поводов для ареста Ландау, связанных как с его неосторожными высказываниями, так и с тем обстоятельством, что был арестован целый ряд его близких знакомых и коллег. Ландау проведет в следственном изоляторе Бутырской тюрьмы ровно год и будет освобожден благодаря хлопотам Капицы, который направит письма Сталину - непосредственно в день ареста и Молотову - в начале апреля 1939, и чрезвычайно высоко ценившего Ландау датского физика Нильса Бора, который напишет Сталину, когда до Копенгагена дойдут слухи о московском аресте. Протокол допроса Ландау, опубликованный в 1991, составлен таким образом, как будто ученый "раскололся" сразу, на первом же допросе. На самом же деле его сутками "держали на стойке", грозили переводом в Лефортово, где, как было известно, широко применялись различные виды "силового воздействия". В Бутырках же, как позже вспоминал Ландау, на него несколько раз замахивались, но не били. И еще, воздавая должное Капице, он говорил: "было очевидно, что я мог протянуть еще не больше полугода: я просто умирал". Физика освободили, "руководствуясь приказанием Народного Комиссара Внутренних Дел Союза Сср, комиссара Государственной Безопасности 1-го ранга тов. Л.П. Берия об освобождении Ландау на поруки академика Капицы".
 
 

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