Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Пмогите плиз с оформлением

Автор: Мартын 23.11.2007 20:27

Люди помогите пожалуйста , не могу оформить задачу. У нас учитель казел, не может зачесть ппрограмму пока она правельно не будет отфарматированна ! Тобишь типа два пробела от begin нуна делать и так далее

Вот можете посматреть что в этих двух программа не правельно расставлено ? И как сделать оформление правельным

Цитата

var i,f,n,x :integer;
b:boolean;
begin
readln(n);
f:=1;
b:=true;
i:=0;
repeat
readln (x) ;
if x<f then
b:=false;
f:=x;
i:=i+1
until (b=false) or (i=n);
if b then writeln ('vozrast');
if (not b) then writeln ('net');
end.


И вот вторая программка
Цитата

var j,a,b,h: integer;
x,y,z: real;
f,f2:boolean;
const eps=0.0000000001;
begin
write('Ââåäèòå a,b,h: ');
readln(a,b,h);
writeln('x | y | z');
f:=false;
f2:=false;
while a<b do
begin
x:=a;
if(sin(x)>=0) and ((x*x + sqrt(sin(x)))<>0) then
begin
y:=1/(x*x + sqrt(sin(x)));
f:=true;
end;

if(x>0) and (sin(x)<>0) then
begin
z:=1/( exp(sqrt(x))) - cos(x)/sin(x);
f2:=true;
end;
if(f=true) and (f2=true) then writeln(x,'|',y,'|',z);
if(f=true) and (f2=false) then writeln(x,'|',y,'|_');
if(f=false) and (f2=true) then writeln(x,'|_|',z);
if(f=false) and (f2=false) then writeln(x,'|_|_');
a:=a+h;
f:=false;
f2:=false;
end;
end.

Автор: Гость 23.11.2007 20:28

извеняюсь чуток не правльно кинул программы, через цитату кинул поетому пробелы убрались

var j,a,b,h: integer;
x,y,z: real;
f,f2:boolean;
const eps=0.0000000001;
begin
write('Ââåäèòå a,b,h: ');
readln(a,b,h);
writeln('x | y | z');
f:=false;
f2:=false;
while a<b do
begin
x:=a;
if(sin(x)>=0) and ((x*x + sqrt(sin(x)))<>0) then
begin
y:=1/(x*x + sqrt(sin(x)));
f:=true;
end;

if(x>0) and (sin(x)<>0) then
begin
z:=1/( exp(sqrt(x))) - cos(x)/sin(x);
f2:=true;
end;
if(f=true) and (f2=true) then writeln(x,'|',y,'|',z);
if(f=true) and (f2=false) then writeln(x,'|',y,'|_');
if(f=false) and (f2=true) then writeln(x,'|_|',z);
if(f=false) and (f2=false) then writeln(x,'|_|_');
a:=a+h;
f:=false;
f2:=false;
end;
end.

И еще
var i,f,n,x :integer;
b:boolean;
begin
readln(n);
f:=1;
b:=true;
i:=0;
repeat
readln (x) ;
if x<f then
b:=false;
f:=x;
i:=i+1
until (b=false) or (i=n);
if b then writeln ('vozrast');
if (not b) then writeln ('net');
end.


М
Можешь называть меня "казлом", но сообщения надо правильно оформлять. Ставь паскалевские теги!
-- Лопарь


Автор: Артемий 23.11.2007 20:30

Цитата
учитель казел

да нет,учитель как раз правильно делает!

Автор: sintanial 23.11.2007 20:37

ну блин я полтора часа пытался отформатировать так нечего и не получилось. Я конечно погоречился(просто уже какую неделю не могу сдать =) ), он не казел но все же, он даже не может проверить правльность задачи, хотя бы правельность проверил бы =(( .
Ну так что, что тута можно отфармотировать ?=) а то я уже не знаю )

Автор: Артемий 23.11.2007 20:40

Не хочу быть многословным, но понимаешь, иногда именно проверить бывает сложно с таким форматированием.

Автор: sintanial 23.11.2007 20:42

артемий пожалуйста покажи где ошибка =)

Автор: volvo 23.11.2007 20:42

Цитата
что тута можно отфармотировать ?
Да много чего... Программа вообще-то должна быть написана так, чтобы с первого взгляда было понятно, что к чему. Вот у тебя этого как раз нет... Например, тут:

    if x<f then
b:=false;
f:=x; { <--- вот эта строка что, ТОЖЕ к If относится? }
i:=i+1


а если нет, то почему она ровно ПОД той строкой, которая выполняется при истинном условии? Она должна быть левее...

Автор: Гость 23.11.2007 22:40

Люди можете пожалуйста отфармотировать и выложить сдесь. А я посматрю, и запомню как надо, и в следующий раз не буду уже допускать такие ошибки =)

Автор: Lapp 24.11.2007 11:34

Тебе же volvo написал все. Сдвинь две строчки, начиная с той, которую он отметил, на две позиции влево. Точно такая же ситуация есть и в другой проге.
Еще желательно var, const и type - тоже форматировать. Вот так:

type
tType1 = integer;
tType2 = real;
tType3 = record
a,b,c,d: real;
p: pointer;
end;

var
v1,v2: tType1;
v3: tType2;

Еще одна рекомендация, но это на любителя: писать begin в конце строчки типа if. Вот так:
if a<b then begin
Oper1;
Oper2;
end
else begin
Oper3;
Oper4;
end;

Если же if не требует begin (то есть только один оператор за ним), то писать его на той же строке:
if a<b then c:=a+b else c:=a-b;
Аналогично с wile, for и repeat.
В остальном у тебя все вполне прилично, вроде.. если я ничего не пропустил smile.gif.