Тег «Паскаль»

Игра “Сапёр” на Паскале

Игра "Сапер" всем известна. Некоторые студенты делают реализацию алгоритма этой игры в качестве курсовой работы. Для таких студентов, я думаю, пригодится эта функция, которая открывает ячейки. Функция рекурсивная.

procedure matrix.OpenCells(i,j:integer);
var t:integer;
begin
t := 0;
if (i < 1) or (j < 1) then t := 1;
if (i = n+1) or (j = n+1) then t := 1;
if t [...]

Ваш отзыв

Сортировка вставками на Паскале

Разберем простой алгоритм сортировки методом вставки. Хотя существуют и более эффективные алгоритмы сортировок, этот метод достаточно прост в реализации и не треует оперативной памяти даже под стек.

Program SortByVstavka;
var A: array of Integer;
i, j, key: Integer;
begin
//Заполняем массив A
for i := 0 to Length(A) - 1 do
begin
key := A[i];
j [...]

Ваш отзыв

Косвенная рекурсия в Паскале

Про рекурсию я уже рассказывал на примере вычисления факториала. Но паскаль также поддерживает и так называемую косвенную рекурсию. Это когда некоторая функция вызывает другую функцию, которая в свою очередь вызывает первую функцию.

Program Primer_Kosvennoi_Rekursii;
Var
a : integer;
Procedure Recurs_2 (Var Y:integer); Forward;

Procedure Recurs_1 (Var X:integer);
Begin
X := X-1;
if X > 0
[...]

Отзывов (1)

Циклический алгоритм на Паскале

Задачку нужно решить на Паскале. Дано натуральное число n и действительные числа a1, a2, …, an. Вычислить P=(1+a1^n)(1+a2^n)...(1+an^n). Привожу решение:

var
n, i: integer;
a, P: real;
Begin
write('n= ');
readln(n);
P:=1;
For i:=1 to n do
Begin
write('a',i,'= ');
Readln(a);
P:=P*(1+(exp(ln(a)*n)));
End;
Write('P= ',P:3:2);
End.

------------------------------------------
Только качественные сейф-двери Екатеринбург помогут [...]

Ваш отзыв

Еще один способ построить график на Паскале

Вот задали построить график - Улитку Паскаля, х=a(cos^2t)+b(cost)
y=a(cost)*(sint)+b(sint)
a>0;b>0;t пренадлежит [0;2п]
Рассмотреть три случая, когда b>=2a
a<b<2a
a>b
Вот код решения этой задачи:

program Snail;uses
Crt,
Graph;const
grPath = 'C:\LAN\BP\BGI';
A = 50;
B = 70;

var
grDriver, grMode: Integer;
MidX, MidY: Integer; {координаты центра экрана}
g: Integer; {счетчик в градусах}
t: Real; {счетчик в радианах}
X, Y: Real; {текущие координаты}

begin
grDriver := Detect;
InitGraph(grDriver, grMode, grPath);
MidX := GetMaxX div 2;
MidY := GetMaxY div [...]

Ваш отзыв