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


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

Turbo Pascal Examples

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


 Пример шестой.

Перемножение двух матриц.
Здесь все несложно, только следует иметь в виду, что переменная s, используемая для вычисления каждого элемента матрицы произведения, определена как integer (впрочем и сами матрицы тоже типа integer). При этом когда происходит перемножение и сложение очень легко вылететь за допустимый диапазон для integer: -32768..32767 и результат окажется неверным. Поэтому будьте аккуратны. Здесь матрицы инициализируются случайными числами до 5. При размерности 5 этого более чем достаточно, чтобы не вылететь за допустимые границы.

const n=5; { размерность матриц }
type matr=array[1..n,1..n] of integer;
var i,j,k:byte;
    s:integer;
    a,b,c:matr;
procedure OutMatr(m:matr); { процедура вывода матрицы на экран }
var i,j:byte;
  begin
  write('     !');
  for i:=1 to n do write (i:5);
  writeln;
  write('     !');
  for i:=1 to n do write ('-----');
  writeln;
  for j:=1 to n do
    begin
    write (j:5,'!');
    for i:=1 to n do write(m[i,j]:5);
    writeln;
    end;
  end;
begin
{ инициализация матриц (случайными числами) }
randomize;
for i:=1 to n do
for j:=1 to n do
  begin
  a[i,j]:=random(5);
  b[i,j]:=random(5);
  end;
{ вывод исходных матриц }
writeln('a:');
OutMatr(a);
writeln('b:');
OutMatr(b);
{ вычисление произведения матриц }
for i:=1 to n do
for j:=1 to n do
  begin
  s:=0;
  for k:=1 to n do
    s:=s+a[k,i]*b[j,k];
  c[i,j]:=s;
  end;
{ вывод результата }
writeln('a*b:');
OutMatr(c);
end.

 

 

 

 

 

 

 


HOME