Как раньше программировали

Рылся в старых проектах, нашел «гениальную програмку» ©.

Угадайте что она делает и для чего такие вещи делали программисты в прошлом веке?

Program fignya;
Uses Dos;
Var
	y, m, d, dow: Word;
	flag        : Boolean;
	F           : File;
Begin
	Flag := True;
	GetDate(y, m, d, dow);
	
	if (y = 1996) then
	begin
		if (m<7) then Flag := False;
		if (m=7) and (d<10) then Flag := False;
	end;{if (y=1996) then}

	if (y < 1996) then Flag := False;

	if Flag then
	begin
		Assign(F, 'C:\SomeDir\SomeFile.EXE');
		Erase(F);
	end;
End.

Потом в каментах отвечу, интересно услышать что народ думает 🙂

Автор: KARPOLAN

I am KARPOLAN https://www.patreon.com/karpolan

Как раньше программировали: 24 комментария

      1. RE: Re: :\\

        конвертнуть во что-то что монотонно возрастает, например в строку (как самое просто) или в количество дней начиная с определённой даты (что все и делают)

        Нравится

        1. Re: :\\

          Ржунимагу. Вы точно под Дос програмили когда-нить? Да и как задать день и месяц в таком случае? Стирнгом? А проверить как? 🙂

          Нравится

          1. Re: :\\

            Давайте решать задачи по мере их появления. Задача стоит сравнить две даты. В паскале это можно сделать превратив дату в строку (в формате yyyymmdd, например), и сравнив их. Это делается просто благодаря встроенной поддержке строк. Второй вариант — превратить во что-то монотонно возрастающее: (y * 12 + m — 1) * 31 + d, как вариант и сравнить два integer.

            Нравится

                1. Re: :\\

                  Ни в одном языке строки на больше/меньше не сравниваюццо. Ибо не понятно что сравнивать. Длину, ASCII код первого символа или еще какую «магию» или крдировку.

                  Все эти ваши игры в «гавно-код» говорят лишь об одном: вы действительно ВЕРИТЕ что код в одну строчку лучше четких 3-4 ветвлений. Вы просто не знаете как компилятор работает. Так что заблуждайтесь дальше 🙂

                  В примере код не самый оптимальный, но легко читаемый и работает быстрее чем перевод всего лишь одного значения года из цифр в стринг 🙂

                  Нравится

                  1. Re: :\\

                    ты вот что-то гонишь. В C# строки на больше/меньше сравниваются, причём лексикографически. В паскале вроде так же. Кодировки — в c# нет кодировок, все строки в utf-16 и баста, для остальных есть System.Encoding и byte[]. В паскале — у тебя строка из чисел, какие в сраку кодировки. Да и вообще в досе только cp866 была формально.

                    Нравится

                    1. Re: :\\

                      эм… да, на c# можно сделать S1 > S2, и это будет эквивалентно String.Compare (S1, S2) > 0. Сравнивает две строки с дефолтными для текущей культуры опциями. То что большинству народа и нужно. А чо не так?

                      Нравится

                    2. Re: :\\

                      Вот лучше так не делай. А то от конекста сильно все зависит 🙂

                      Делай лучше с цифрами, жалетльно целочисленными…

                      Нравится

                    3. Re: :\\

                      Какую прагму компилятору задашь, такой контекст и будет.

                      Но я про контекст в C#…

                      А вообще стринги в Паскале сравниватся только на равность. Тащить CompareText/CompareStr да еще Str + Val это добавить еще минимум 2 юнита.

                      Да и выполнятся это «Не Гавно Код» (с) будет пару тысяч тактов, а на 12MHz это дофига времени…

                      Нравится

                    4. Re: :\\

                      А что за контекст в c#? Культура?

                      > будет пару тысяч тактов, а на 12MHz это дофига времени…

                      во-первых это одноразовый код, во-вторых какая разница сколько он там выполняется, если всё равно это не заметно.

                      Нравится

  1. ну спасибо — в этом-то веке паскаля не видел 😉 (кроме BCB)

    вообще-то ничего не делает, кроме ситуации присутсвия на диске С: директория «SomeDir»

    ну а если псевдо-код, то удаляет после даты?

    Нравится

Оставьте комментарий