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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2012, 23:36   #1
Smirnov
 
Регистрация: 09.02.2012
Сообщений: 9
По умолчанию проверьте ошибки и недочёты

вроде всё работает, но препод очень строгий, не должно быть ничего лишнего и бесполезного, поэтому пожалуйста гляньте
Программа «графика»
uses crt, modulы,graph;
var
K:string;
A: array [1..2,1..10] of real;
grDriver : Integer;
grMode : Integer;
ErrCode,r,i,X1,X2,Y1,Y2,T2,j,x,y,z1 ,z2 : Integer;
dV,Kx,Ky:real;
begin
clrscr;
raschet(Q1);
for i:=1 to (Q1+1) do
begin
T:=T1+(i-1)*m;
V:=Scor(T);
A[1,i]:=T; {temperatura}
A[2,i]:=V; {skorost}
Writeln (T:3 ,' ',V:5);
end;
Y2:=450; {Y kray}
Y1:=40; {Y nachalo}
T2:=350; {T konechn}
X2:=450; {x kray }
X1:=80; {x nachalo }

dV:=A[2,Q1+1]-A[2,1];
Kx:= round ((X2-X1)/(T2-T1)); {kofi x}
Ky:= round((Y2-Y1)/dV); {kofi y}
writeln(Kx);
writeln(Ky);
readln;

grDriver := Detect;
InitGraph(grDriver, grMode, 'D:\BP\bgi');
ErrCode := GraphResult;
if ErrCode = grOk then
begin
{ ѓа дЁЄ }
setcolor(10);
Line(80, 40, 450, 40);
Line(80, 40, 80, 450);
Line(80,450, 450,450);
Line(450,40, 450,450);
setcolor(3);
setlinestyle(1,1,1);

r:=35;
For i:=1 to 11 do
begin
Line(80, 40+r*(i), 450, 40+r*(i)); {linii setki}
Line(80+r*(i-1), 40, 80+r*(i-1) , 450);
end;
end
else {podpis}
outTextXY(80,455, '150');
outTextXY(130,455,'175');
outTextXY(180,455,'200');
outTextXY(230,455,'225');
outTextXY(280,455,'250');
outTextXY(330,455,'275');
outTextXY(380,455,'300');
outTextXY(430,455,'325');
outTextXY(480,450, 'T,K');
outTextXY(50,445, '1,6' );
outTextXY(50,392, '1,7' );
outTextXY(50,341, '1,8' );
outTextXY(50,296, '1,9' );
outTextXY(50,254, '2,0' );
outTextXY(50,216, '2,1' );
outTextXY(50,181, '2,2' );
outTextXY(50,148, '2,3' );
outTextXY(30,10, 'V*10^4,M/c' );

MoveTo (X1,Y2);
for j:= 1 to 8 do
begin
z1:= round (X1+(25*(j-1)*Kx));
z2:= round (Y2-(A[2,j+1]-A[2,j])*(j-1)*Ky);
LineTo (z1,z2);
circle (z1,z2,2);
end;
readln;
end.




Модуль
unit modul;
interface
procedure raschet (var Q:integer);
function Scor (temp:real): real;
var
Q1,i:integer;
m,T1,T,V: real;
implementation

procedure raschet (var Q:integer);
var
T2:integer;
begin
m:=25; {shag}
T2:=350;
writeln ('vvedite T, K dlya rascheta Q');
readln (T1);
Q:=round((T2-T1)/m);
writeln('T,K V,m/s');
end;

function Scor (temp:real): real;
const
K=1.38e-23;
Mn=9.11e-13 * 0.26;
begin
Scor:=sqrt(3*K*temp/Mn);
end;
End.
Smirnov вне форума Ответить с цитированием
Старый 22.04.2012, 00:53   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Странная просьба... Ну допустим я прогу запустил, она отработала без ошибок - для меня это означает что она правильно написана, к чему придираться и что-то поправлять коли программа работает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.04.2012, 04:29   #3
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Не, ну мне, блин, нравицца!!.. Ни условия, ни требований, ни форматирования, ни тегов, ни компилятора! комментов минимум (особенно { ѓа дЁЄ } позабавило - гадёе?)).. Нате вам, мужики - догадывайтесь, смекайте, разбирайтесь, советуйте - а мне пофих, у мя преп строгий!

Честно скажу, я бы уже за одно такое отношение влепил бы пару..
Буду рад, если ты завалишь (впрочем, это я размечтался..))
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 22.04.2012, 09:33   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Разбираться в коде, тем более, как справедливо отмечено, с неправильным форматированием и без комментариев, желания нет.
Из того, что бросилось в глаза:
Код:
 Y2:=450; {Y kray}
 Y1:=40;  {Y nachalo}
 T2:=350; {T konechn}
 X2:=450; {x kray }
 X1:=80;  {x nachalo }
...
    Line(80, 40, 450, 40);
    Line(80, 40, 80, 450);
    Line(80,450, 450,450);
    Line(450,40, 450,450);
В таких случаях принято определять ряд констант и дальше в тексте пользоваться не числовыми значениями, а предопределенными константами.
Представь на минутку, что тебе нужно будет переписать эту программу для другого разрешения экрана.
Программа должна быть написана так, чтобы при таком переписывании достаточно было переопределить (а то и вообще узнать в процессе выполнения программы) несколько констант, и не лазить по всему исходнику с исправлениями.
Код:
               outTextXY(80,455, '150');
               outTextXY(130,455,'175');
               outTextXY(180,455,'200');
               outTextXY(230,455,'225');
               outTextXY(280,455,'250');
               outTextXY(330,455,'275');
               outTextXY(380,455,'300');
               outTextXY(430,455,'325');
               outTextXY(480,450, 'T,K');
               outTextXY(50,445, '1,6' );
               outTextXY(50,392, '1,7' );
               outTextXY(50,341, '1,8' );
               outTextXY(50,296, '1,9' );
               outTextXY(50,254, '2,0' );
               outTextXY(50,216, '2,1' );
               outTextXY(50,181, '2,2' );
               outTextXY(50,148, '2,3' );
А такие вещи нужно делать циклом.
Заодно предусмотреть, чтобы количество делений согласовалось с разрешением экрана.

Последний раз редактировалось s-andriano; 22.04.2012 в 09:36.
s-andriano вне форума Ответить с цитированием
Старый 25.04.2012, 20:59   #5
Smirnov
 
Регистрация: 09.02.2012
Сообщений: 9
По умолчанию

как преобразовать в строковую единицу текст????
Smirnov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверьте прогу на ошибки. если не сложно поясните ее содержание СветОК Паскаль, Turbo Pascal, PascalABC.NET 1 17.12.2010 17:25
Проверьте пож код, есть ли там ошибки dimonpwnz Помощь студентам 0 13.04.2010 20:38
Проверьте плиз где то ошибки ТРОЯН=) Помощь студентам 2 06.02.2009 15:10
Проверьте ошибки пожалуйста в задачах. velgelmina Помощь студентам 3 09.06.2007 22:10