1. Заголовок или название темы должно быть информативным ! 2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК ! 4.НЕ используйте форум для личного общения! 5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
ПС: есть ли возможность скопировать код из паскаля в .doc? Или из турбо паскаля 7.0 в фри паскаль иде не открывая фаил там.
ППС: в фри паскале я делаю Debug -> output, Window -> tile. но после последующего Ctrl+Ф9 -> output прыгает за окно кода программы обратно. Как мне зафиксировать аутпут?
PPPS: в турбо паскале если выдаёт ошибку я могу нажать Ф1 и увидеть объяснение ошибки. Как это сделать в фри паскале? Там кликая на ошибке Ф1,ктрл+Ф1, алт+Ф1 ничего не выводит.
Ну вот еще... Ты б код форматировала, проблемы б не было:
Program iff2; var a, b, c: integer; begin a:=1; b:=2; c:=0; if a>b then if a<b then c:=1 else c:=2; writeln( c );
if a<b then if a>b then c:=3 else { ; } else c:=4; writeln( c ); end.
Цитата
есть ли возможность скопировать код из паскаля в .doc? Или из турбо паскаля 7.0 в фри паскаль иде не открывая фаил там.
В DOC - можешь просто скопировать в Clipboard + вставить в Word. Вариант скопировать отсюда в FPC - не устраивает? Значит из TP -> FPC в общем случае - нельзя (можно, но только если весь код помещается на одной странице, и его видно ВЕСЬ сразу, иначе придется это делать в несколько этапов)...
Цитата
в фри паскале я делаю Debug -> output, Window -> tile. но после последующего Ctrl+Ф9 -> output прыгает за окно кода программы обратно. Как мне зафиксировать аутпут?
Установить курсор на последний END и нажать на F4, а не запускать программу через Ctrl+F9
+++ а есть возможность автоматически в фри паскале и/или турбо паскале7.0 форматировать текст. Где галочку поставить? Или надо самой это делать...? thanks
а есть возможность автоматически в фри паскале и/или турбо паскале7.0 форматировать текст.
На этом форуме Romtek выкладывал утилиту под названием PTOP. По-моему, она же идет в дистрибутиве FPC (сейчас проверить не могу), посмотри в папке \bin. С ее помощью можно отформатировать текст программы. Инструкция по использованию доступна на оф. сайте (и в PDF-файлах помощи, идущих с FPC).
+++ а есть возможность автоматически в фри паскале и/или турбо паскале7.0 форматировать текст. Где галочку поставить? Или надо самой это делать...? thanks
Уже написанный текст можно отформатировать утилитой, но пока пишешь - соблюдай правила сама. Некоторые настройки в FPS все же целесообразно сделать. Зайди в Options - Environment и поставь там одинаковые Tab size и Indent Size - я, например, использую 2, но можно и 4. Далее, когда кодишь:
1. если набрала begin (или repeat, или оператор case c of, или type, var, const, record ..) - сразу жмешь Enter и Tab; 2. перед тем, как написать end (или в конце блока описаний), нажимай Enter и Bcsp;
Вот пример:
const // enter, tab n=4;
type // enter, tab tMan = record // enter, tab First,Last: String; Age: integer end;
begin // enter, tab b:= true; while b do begin // enter, tab Class[1]:=Ivan; for i:=1 to n do with Class[i] do if Age<7 then begin // enter, tab WriteLn(First,' ',Last,' is too young); Inc(Age) // enter, bcsp end else if Age>17 then begin // enter, tab WriteLn(First,' ',Last,' is too old); Dec(Age) // enter, bcsp end else b:=false // enter, bcsp end; WriteLn('Let''s dance!') // enter, bcsp end.
Эти правила примерные, не жесткие. Можешь сама подумать, как именно для тебя будет удобнее. Например, оператор:
if a>0 then i:=1 else i:=2
- не имеет смысла разбивать на несколько строк. Но если последовательно выполняющихся операторов несколько - все они должны быть на одном инденте. Оператор begin должен быть в конце строки (либо вообще один на строке), а end - только в начале. В этом случае легко отследить начало и конец блока, проверить соответствие begin'ов и end'ов. А также разобраться с then/else.
Если нужно подвинуть сразу несколько строк (пришлось, например, заключить группу строк в begin/end), то пометь их блоком и нажми Ctrl-K и I (вправо, от слова Indent) или Ctrl-K и U (влево, Unindent). Ьуквы I и U можно нажимать как при нажатом Ctrl, так и при отпущенном. Блок не обязательно должен начинаться и кончаться на строке - если хоть один символ помечен, вся строка будет двигаться.
В ТР принцип тот же, только меню немного иначе устроено..
Спрашивай, если неясно что-то.
--------------------
я - ветер, я северный холодный ветер я час расставанья, я год возвращенья домой
1. если набрала begin (или repeat, или оператор case c of, или type, var, const, record ..) - сразу жмешь Enter и Tab; 2. перед тем, как написать end (или в конце блока описаний), нажимай Enter и Bcsp;
Я конечно понимаю, что все зависит только от личных предпочтений, но я делаю немного по-другому: 1) после набора begin сразу же нажимаю на Enter и строго под ним дописываю end, а уж потом возвращаюсь, и добираю код между begin-ом и end-ом 2) то же самое - и при if then else: сразу записываю обе эти ветки (если необходима ветка else, естественно), причем с begin/end обязательно. А потом - возвращаюсь и дописываю код между begin/end. Ошибиться просто нереально...
Это - что касается TP... В FPC есть дополнительное встроенное средство, позволяющее мне даже этого не писАть: Code Template (управление ими лежит где-то в Options -> Environment, но надо не забыть включить в IDE использование темплейтов, иначе Ctrl+J работать не будет). То есть, набирается ifthen или ifelse (смотря что нужно, и как я это назвал), и тут же нажимается Ctrl+J. И IDE сама подставляет назначенную на это ключевое слово последовательность операторов, да еще и ставит курсор туда, куда нужно (вернее, туда, куда я указал при назначении темплейта).
(P.S. Завтра вернусь домой - смогу расписать более подробно)