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.