Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2023, 03:22   #1
Валентина 23
Новичок
Джуниор
 
Регистрация: 05.05.2023
Сообщений: 4
По умолчанию Программирование

Здравствуйте. Помогите исправить ошибку.
Program Kinetika;
Uses GraphABC;
Type mas = array[1..1001, 1..3] of real;
Var C:mas; i, j, x,y,n,k,d,xn,xk,yn,yk,xGR,yGR,xGR1, yGR1,color,o: integer;
s:string; CA,CB,K1,dt,t,Mx,My:real;
procedure Setka(x,y,d,n,k:integer);
Begin
SetPenWidth(3);
rectangle(x-3,y-3,x+d*5+154,y+d*10+14);
SetPenWidth(1);
SetPenStyle(psdot);
for j:=0 to n-1 do begin
for i:=0 to n do begin
x:=54+i*32;
y:=30+j*41;
Rectangle(x,y,x+33,y+42);
end;
end;
end;
Procedure Osi;
begin
TextOut(150,10,' Изменение концентрации ');
o:=0;
for i:=1 to 20 do begin
if 20 mod 2 = 0 then
o:=o+2;
i:= i+1;
Str(o,s);
TextOut(45+i*18,445,s);end;
for i:=0 to 1001 do begin
Str(i*10,s);
TextOut(25,435-i*42,s);
end;
end;
Procedure Graphic;
begin
xn:=54;
xk:=710;
yn:=60;
yk:=444;
K1:=0.4; // - Индивидуально для каждого задания по № варианта
CA:=100;
CB:=0;
t:=0;
dt:=0.1;
for i:=1 to 101 do
begin
t:=t+0.1;
C[i,1]:=t;
CA:=CA+(-K1*CA)*dt; // Кинетические уравнения для реакции
CB:=CB+(K1*CA)*dt; // А → B K1 - константа скорости
C[i,2]:=CA;
C[i,3]:=CB;
end;
SetPenWidth(2);
SetPenStyle(psSolid);
Mx:=(xk-xn)/(20-1);
My:=(yk-yn)/(101-10);for j:=2 to 3 do
begin
if j=2 then color:=clRed;
if j=3 then color:=clBlue;
SetPenColor(color);
for i:=1 to 100 do
begin
xGr:=xn+Round(mx*C[i,1]);
yGr:=yk-Round(my*C[i,j]);
Circle(xGr,yGr,3);
end;
end;
end;
Begin
SetWindowSize(500,480);
CenterWindow;
MaximizeWindow;
Setka(55,30,40,10,0);
Osi;
SetPenColor(clRed);
Graphic;
end.
Валентина 23 вне форума Ответить с цитированием
Старый 05.05.2023, 10:05   #2
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 736
По умолчанию

Тэги кода и форматирование не забываем делать. Нужно указывать код ошибки и ее описание. А также номер строки с ошибкой, что хотели получить и в чем вообще ошибка.
Cuprum5 вне форума Ответить с цитированием
Старый 05.05.2023, 10:26   #3
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

1) Для оформления кода надо использовать теги [CODE][/CODE]
2) Может ещё и напишите в чем ошибка. На первый взгляд эта портянка должна прожёвываться компилятором без ошибок.
macomics вне форума Ответить с цитированием
Старый 05.05.2023, 11:26   #4
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 736
По умолчанию

Код:
Program Kinetika;
Uses GraphABC;
Type mas = array[1..1001, 1..3] of real;
Var C:mas;
    i, j, x,y,n,k,d,xn,xk,yn,yk,xGR,yGR,xGR1, yGR1,color,o: integer;
    s:string;
    CA,CB,K1,dt,t,Mx,My:real;
    
procedure Setka(x,y,d,n,k:integer);
Var i, j: integer;
Begin
    SetPenWidth(3);
    rectangle(x-3,y-3,x+d*5+154,y+d*10+14);
    SetPenWidth(1);
    SetPenStyle(psdot);
    for j:=0 to n-1 do
    begin
        for i:=0 to n do
        begin
            x:=54+i*32;
            y:=30+j*41;
            Rectangle(x,y,x+33,y+42);
        end;
    end;
end;

Procedure Osi;
Var i: integer;
begin
    TextOut(150,10,' Изменение концентрации ');
    o:=0;
    for i:=1 to 20 do
    begin
        if 20 mod 2 = 0 then
            o:=o+2;
        {i:= i+1;}
        Str(o,s);
        TextOut(45+i*18,445,s);
     end;
     for i:=0 to 1001 do
     begin
        Str(i*10,s);
        TextOut(25,435-i*42,s);
     end;
end;

Procedure Graphic;
Var i, j: integer;
    color: System.Drawing.Color;
begin
    xn:=54;
    xk:=710;
    yn:=60;
    yk:=444;
    K1:=0.4;  //- Индивидуально для каждого задания по № варианта
    CA:=100;
    CB:=0;
    t:=0;
    dt:=0.1;
    for i:=1 to 101 do
    begin
        t:=t+0.1;
        C[i,1]:=t;
        CA:=CA+(-K1*CA)*dt;  //Кинетические уравнения для реакции
        CB:=CB+(K1*CA)*dt;   //А → B K1 - константа скорости
        C[i,2]:=CA;
        C[i,3]:=CB;
    end;
    SetPenWidth(2);
    SetPenStyle(psSolid);
    Mx:=(xk-xn)/(20-1);
    My:=(yk-yn)/(101-10);
    for j:=2 to 3 do
    begin
        if j=2 then color:=clRed;
        if j=3 then color:=clBlue;
        SetPenColor(color);
    for i:=1 to 100 do
    begin
        xGr:=xn+Round(mx*C[i,1]);
        yGr:=yk-Round(my*C[i,j]);
        Circle(xGr,yGr,3);
    end;
    end;
end;

Begin
    SetWindowSize(500,480);
    CenterWindow;
    MaximizeWindow;
    Setka(55,30,40,10,0);
    Osi;
    SetPenColor(clRed);
    Graphic;
end.
Cuprum5 вне форума Ответить с цитированием
Старый 05.05.2023, 11:37   #5
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Цитата:
Сообщение от Cuprum5 Посмотреть сообщение
if 20 mod 2 = 0 then
а это точно нужно проверять?
macomics вне форума Ответить с цитированием
Старый 05.05.2023, 11:44   #6
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 736
По умолчанию

Выражение не имеет смысла, поэтому всегда выполняется - можно убрать. Программу писал не я, поэтому, пожалуйста, обращайтесь к автору темы.
Cuprum5 вне форума Ответить с цитированием
Старый 05.05.2023, 15:32   #7
Валентина 23
Новичок
Джуниор
 
Регистрация: 05.05.2023
Сообщений: 4
По умолчанию

Всем спасибо
Валентина 23 вне форума Ответить с цитированием
Старый 05.05.2023, 15:34   #8
Валентина 23
Новичок
Джуниор
 
Регистрация: 05.05.2023
Сообщений: 4
По умолчанию

А можете ещё помочь создать блок схему на эту программу?
Валентина 23 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование AntonAr Помощь студентам 0 08.01.2018 16:56
Программирование на СИ MaksDM Помощь студентам 2 01.04.2017 03:50
3D программирование Darius55555 Мультимедиа в Delphi 1 16.06.2009 12:03
Программирование на Си++ Solnce_7_6 Помощь студентам 0 15.06.2009 00:43