begin A:=1000; if A=1 or 1000 then writeln('1'); if A=1 or 1000 or 99999 then writeln('2'); if A=1..2000 then writeln('3'); if A<>1..999 or 500 then writeln('4'); if A<>1,3,800,-999990 then writeln('5'); end.
Почему в fpc не реализованы такие сравнения для целых чисел? Вроде бы полезная штука.
Так и делается, но получается слишком много лишних мелкопупырчатых функций. Надо сделать сравнение не с одним а с двумя числами? Создавай для этого функцию!
begin A:=1000; if A=1 or 1000 then writeln('1'); if A=1 or 1000 or 99999 then writeln('2'); if A=1..2000 then writeln('3'); if A<>1..999 or 500 then writeln('4'); if A<>1,3,800,-999990 then writeln('5'); end.
Почему в fpc не реализованы такие сравнения для целых чисел? Вроде бы полезная штука.
procedure TForm1.Button1Click(Sender: TObject); var A: Integer; begin A := StrToInt(Edit1.Text); if A in [1, 1000] then StaticText1.Caption := '1' else if A in [1, 1000, 99999] then StaticText1.Caption := '2' else if A in [1..2000] then StaticText1.Caption := '3' else if not (A in [1..999, 500]) then StaticText1.Caption := '4' else if not (A in [1, 3, 800, -999990]) then StaticText1.Caption := '5' else StaticText1.Caption := ''; end; end.
СИобразный кошмар нам не нужен, потому не одну а много: для двух чисел, для трёх, четырёх, для диапазона. Сложить все недостающие в паскале стандартные функции в модуль и пристёгивать его к каждой программе.
Добавлено спустя 4 минуты 30 секунд:
sign писал(а):Лазарус 0.9.31FPC 2.6.0Пользуйтесь на здоровье:
uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} Classes { you can add units after this };
{$R *.res}
var A: Integer; begin A:=1000; if A in [1,1000] then writeln('1'); if A in [1,1000,99999] then writeln('2'); if A in [1..2000] then writeln('3'); if not(A in [1..999,500]) then writeln('4'); if not(A in [1,3,800,-999990]) then writeln('5'); end.
В начале обычно пишут про базовые операции и гуи в объёме достаточном для вывода результатов формул но недостаточном для построения нормальной морды. А в конце тучи формул практически бесполезных для логики. В формулах отсутствуют конструкции if then else, case, goto, следовательно практические задачи часто имеют логические решения не описываемые математиками. Кроме того операции с матрицами-шматрицами обычно уже встроены куда надо, нужно лишь ими воспользоваться. Ну и деления, математики над ними не парятся - подумаешь миллион делений, он ничем не хуже миллиона умножений. Дочитать до конца груды неудобных pdf ради крупиц полезных знаний слишком напряжно и долго. А потом люди изучившие паскаль по таким книгам говорят что он учебный язык непригодный для реальных задач.
Вот именно. Давно заметил, что над книгами по паскалю/дельфи, а теперь и по лазарю как бы злой рок довлеет - почти все они начинаются с экзерсисов типа "как бросить кнопочку на формочку", продолжающихся чуть ли не всю книгу вперемешку с надуманными задачками. В отличие от книг по с/срр, кстати. Толковых справочников по паскалю/дельфи тоже раз-два, и обчёлся, по лазарю так и вовсе нет. И опять в отличие от с/срр. Грустно.