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


 
В этот день много лет назад...
26 ноября. В 1971 году (53 года назад) - Законом СССР устанавливается минимальный размер заработной платы рабочих и служащих - 70 руб. в месяц, который официально останется неизменным в течение почти 20 лет.
 
 

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