Найти и исправить ошибки в программе паскаль

program Project1;
 
const
  n = 6;     // Задание константы. Число элементов массива.
var
  arr: array [1..n] of integer; // Объявление переменной arr тип целочисленный массив
  i,b,a: integer;  // Объявление  переменных i,b,a тип целочисленные переменные.
 
begin    // Начало программы.
Randomize;          // Инициация генератора случайных чисел.
for i:= 1 to n - 1 do   // Цикл с параметрами.
   arr[i]:= random(100);   // Заполнение массива случайными числами.
for i:= 1 to n - 1 do   // Цикл с параметрами.
   write(arr[i]:5);   // Вывод значений элементов массива в консоль.
writeln;                  // Перевод курсора на новую строчку.
write ('Введите значение нового элемента: ');  //  Вывод пояснительной надписи в консоль.
readln (b);                    //  Ввод данных в программу.
write ('Введите позицию в массиве для нового элемента: ');     //  Вывод пояснительной надписи в консоль.
readln (a);                     //  Ввод данных в программу.
for i:= n-1 downto a do      //  Цикл с параметрами.
  arr [i+1]:= arr[i];          //  Сдвиг элементов массива вправо.
arr[a]:= b;                    // Назначение элементу массива с номером a значение b.
writeln ('Ваш массив');        // Вывод пояснительной надписи в консоль.
for i:= 1 to n do              // Цикл с параметрами.
  write (arr[i]:5);            // Вывод значений элементов массива в консоль.
writeln;                       //  Перевод курсора на новую строчку.
readln                         //  Функция ввода информации, чтобы программа задерживалась в окне консольной программы.
end.                           //  Конец программы.
program kursovaya_Runge_Kutt_Eiler;
uses crt,graphABC;
const 
h=3*pi/4000;{Точность}
var 
  i,j,p:integer;
  n,q:real;
  s:string;   { Строка } 
  r1,r2,r3,r4,yi,xi,dy,xm,ym:real;
  {Одномерные массивы решения данного дифф. уравнения}
  a:array[0..1000] of real;
  b:array[0..1000] of real;
  a1:array[0..1000] of real;
  b1:array[0..1000] of real;
{Данное дифф. уравнение} 
function f(x,y:real):real;
  begin 
    f:=sqrt((1+cos(2*x))/y); 
  end;
begin 
clrscr;
 {Начальное значение интервала}
xi:=Pi/4; 
{Начальное условие}
yi:=1; 
{Начальные номера массивов}
i:=0; j:=0; 
 {Начальное значение интервала}
xm:=Pi/4; 
{Начальное условие}
ym:=1;
q:=0.5;
{Метод Рунге-Кутты}
  writeln('Метод Рунге-Кутты:');
  writeln('№=',i, '     | ','x=',xi:5:3, ' | ','y=',yi:5:3);
  repeat
    r1:=h*f(xi,yi);
    r2:=h*f(xi+h/2,yi+r1/2);
    r3:=h*f(xi+h/2,yi+r2/2);
    r4:=h*f(xi+h,yi+r3);
    dy:=(r1+2*r2+2*r3+r4)/6;
    yi:=yi+dy;
    xi:=xi+h;
    a[i]:=xi;{Заполнение массива элементом x}
    b[i]:=yi;{Заполнение массива элементом y}
    i:=i+1;{Счётчик}
    if i mod 100=0 then
    { Вывод результатов }
    writeln('№=',i/100, ' | ','x=',xi:5:3, ' | ','y=',yi:5:3);
  until xi>Pi;
readln;
{Метод Эйлера}
writeln('Метод Эйлера:');
writeln('№=',j/100, '      | ','x=',xm:5:3, ' | ','y=',ym:5:3);
  repeat
    ym:=ym+h*f(xm,ym);
    xm:=xm+h;
    a1[j]:=xm;{Заполнение массива элементом x}
    b1[j]:=ym;{Заполнение массива элементом y}
    j:=j+1;{Счётчик}
    if j mod 100=0 then
    { Вывод результатов }
    writeln('№=',j/100, '  | ','x=',xm:5:3, ' | ','y=',ym:5:3);
  until xm>Pi;
{ Построение графика функции }
SetWindowHeight(700);{Высота экрана в пикселях}
  SetWindowWidth(900);{Ширина экрана в пикселях}
  SetPenColor(clBlack);{Цвет линий}
    SetPenWidth(2);{Толщина линий в пикселях}
    {Построение осей графика 0xy}
    line(180,600,900,600);
    line(220,0,220,700);
    line(220,0,220-10,10);
    line(220,0,220+10,10);
    line(900,600,900-10,600-10);
    line(900,600,900-10,600+10);
{Построение шкал графика}
for p:=1 to 7 do
   begin
    line(220+75*p,595,220+75*p,605);
    line(215,0+75*p,225,0+75*p);
   end;
{Вывод на экран текста,заключённого в ' '}
TextOut(205,580,'0');
TextOut(880,580,'x');
TextOut(225,15,'y');
{Вывод на экран цифрового значения шкал по X}
for p:=1 to 7 do
  begin
    str(q:4:1,s);{Преобразует элемент q в строковый s}
    TextOut(220+75*p,580,s);{Вывод элемента s на экран}
    q:=q+0.5;{Счётчик}
  end;
{Вывод на экран цифрового значения шкал по Y}
q:=0.5;
for p:=1 to 7 do
  begin
    str(q:4:1,s);{Преобразует элемент q в строковый s}
    TextOut(180,595-75*p,s);{Вывод элемента s на экран}
    q:=q+0.5;{Счётчик}
  end;
  {Построение сетки графика}
for p:=1 to 8 do
  begin
   SetPenColor(clGreen);{Цвет сетки}
   SetPenWidth(1);{Толщина линий сетки в пискелях}
   line(200,75+75*p,900,75+75*p);{Построение линий сетки по горизонтали}
   line(220+75*p,0,220+75*p,700);{Построение линий сетки по вертикали}
  end;
  {Построение графика функции}
  while p<=1000 do {Кол-во точек графика}
    begin
    n:=175;{коэф.}
    Setpixel(round(a[p]*(n/4)+700),round(abs(b[p]*n)+77),clRed); {Вывод на экран пикселей с указанным цветом 1-го графика}
    Setpixel(round(a1[p]*(n/4)+700),round(abs(b1[p]*n)+77),clBlue);{Вывод на экран пикселей с указанным цветом 2-го графика}
    p:=p+1;{Счётчик}
    end;
readln;
end.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *