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


 
В этот день много лет назад...
20 апреля. В 1910 году (114 лет назад) - Комета Галлея максимально приближается к земле.
 
 

Turbo Pascal Examples

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


 Пример одиннадцатый. Падающий мячик.

Отобразить на экране падающий мячик. Траектория высчитывается как обычная синусоида взятая по модулю. Единственное, с каждым переходом нуля меняется амплитуда (уменьшается вдвое).

Uses Graph,Crt;
Var
Driver,Mode,ErrCode,i:integer;
x,sx,sx1,amp,y:real;

procedure DrawCircle(x,y:integer;color:word);
var p:FillPatternType;
  begin
  Setcolor(color);
  Circle(x,y,20);
  GetFillPattern(p);
  SetFillPattern(p,color);
  FloodFill(x,y,color);
  end;
Begin
Driver:= detect;
Initgraph(Driver,Mode,'');
ErrCode := GraphResult;
if ErrCode <> grOk then
  WriteLn('Graphics error:',GraphErrorMsg(ErrCode));
sx1:=-1; amp:=1;
OutTextXY(100, 1, 'Press any key to start...');
if (readkey=#27) then;
for i:=1 to 640 do
  begin
  x:=1.5+i*0.02;
  sx:=sin(x);
  if (sx*sx1>0) then
    begin
    sx1:=-sx;
    amp:=amp/2;
    end;
  y:=amp*abs(sx);
  DrawCircle(i,460-round(480*y),blue);
  Delay(1050);
  DrawCircle(i,460-round(480*y),black);
  end;
SetColor(White);
OutTextXY(100, 40, 'Press enter to exit...');
readln;
Closegraph;
End.

 

 

 

 

 

 

 


HOME