LINUX.ORG.RU

Free Pascal 2.0 beta


0

0

Тихо и незаметно 5 ноября вышла первая бета версии 2.0 Free Pascal. Изменений, по сравнению с 1.2 уйма. Приведу только некоторые:
- Динамические массивы;
- Поддержка 64 битных типов данных;
- Перегруженные операции;
- Улучшена совместимость с Delphi;
- Потдержка PowerPC архитектуры, MacOS и многое другое. Посмотреть полный список можно вот здесь. http://www.freepascal.org/future.html
Новсти вот тут http://www.freepascal.org/news.html

>>> Хомяк тут

★★★★★

Проверено: maxcom

Ответ на: Тест для программеров от vada

Re: Тест для программеров

"Математическое" решение (3 - x) - по-моему самое красивое, но входные данные надо, конечно же, проверять ;)

anonymous ()
Ответ на: Тест для программеров от vada

Re: Тест для программеров

> Если на вход блока поступает число 1, то на выходе должно быть 2, а если поступает число 2, то на выходе должно юыть 1.

puzomerka = lambda x : {1:2,2:1}[x]

tws ()
Ответ на: Re: Тест для программеров от tws

Re: Re: Тест для программеров

Re: Re: Re: Re: Re: Re: Re: Free Pascal 2.0 beta 2anonymous (*) (18.11.2003 13:08:54)

>Короткими и нечитаемыми. Наверное вы читать не умеете ;)

anonymous ()
Ответ на: Тест для программеров от vada

Re: Тест для программеров

>Если на вход блока поступает число 1, то на выходе должно быть 2, >а если поступает число 2, то на выходе должно юыть 1.

x^=3;

anonymous ()
Ответ на: Re: Re: Re: Тест для программеров от anonymous

Re: Re: Re: Re: Тест для программеров

return (x mod 2) + 1

Сказано же было - тест для программеров, а не для паскалистов.

return (~x) & 0x3;

Ламерские понты.

anonymous ()
Ответ на: Re: Re: Re: Re: Тест для программеров от anonymous

Re: Re: Re: Re: Re: Тест для программеров

to anonymous (*) (19.11.2003 4:04:25):

>return (x mod 2) + 1

>Сказано же было - тест для программеров, а не для паскалистов.

даун, это Ада, а не Паскаль!

anonymous ()

Re: Free Pascal 2.0 beta

Только что обнаружил в презентации MySQL AB, посвященной переходу SAP-DB в их руки:

"- Development will be done from the MySQL codebase with features being rewritten based on the SAP-DB code.

* This is needed since SAP-DB is mostly written in Pascal"

anonymous ()

Re: Free Pascal 2.0 beta

>Если на вход блока поступает число 1, то на выходе должно быть 2,
а если поступает число 2, то на выходе должно юыть 1.

Дети, ептыть. Никуя программы писать не умеете :)

Учитесь

/* v 1.0 2003/11/19 04:11:02 form Exp $ */
/*
* Copyright (c) 2003 Sun_ch
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice unmodified, this list of conditions, and the following
* disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
*/

int f_1_or_2(int number){

if (number == 1) return 2;
if (number == 2) return 1;
perror("Error in function f_1_or_2: input number %d is is invalid\n", number);
return -1;
}

Sun-ch ()
Ответ на: Re: Free Pascal 2.0 beta от Sun-ch

Re: Re: Free Pascal 2.0 beta

2 Sun-ch :

> int f_1_or_2(int number){
>
> if (number == 1) return 2;
> if (number == 2) return 1;
> perror("Error in function f_1_or_2: input number %d is is invalid\n", number);
> return -1;
> }

Я плакаль :-)))))

Мужик, прочитай хотя бы man perror на предмет того,
что она делает и какие аргументы принимает !
Хоть бы соответствующий #include включил...

anonymous ()
Ответ на: Re: Free Pascal 2.0 beta от Sun-ch

Re: Re: Free Pascal 2.0 beta

отлично, а теперь -- " cat | sort | uniq " на перле!

мы ждем с нетерпением!!!

anonymous ()
Ответ на: Re: Free Pascal 2.0 beta от Sun-ch

Re: Re: Free Pascal 2.0 beta

Sun-ch, ну зачем же так позориться? Не ожидал от тебя такого.

anonymous ()
Ответ на: Re: Re: Free Pascal 2.0 beta от anonymous

Re: Re: Re: Free Pascal 2.0 beta

to anonymous (*) (19.11.2003 12:29:50):

>Sun-ch, ну зачем же так позориться? Не ожидал от тебя такого.

1) У тебя чувства юмора нету :0)
2) Я бы тоже стебаться начал, но мне чё-то последнее время так лениво... ;)
3) Sun-ch так держать ! Хоть какое-то веселье :)

MrBool ()
Ответ на: Re: Re: Free Pascal 2.0 beta от anonymous

Re: Re: Re: Free Pascal 2.0 beta

Саныч очередной раз облажался :) раньше чем серез 50 постов он в этом топике не появится

anonymous ()
Ответ на: Re: Re: Re: Re: Re: - Respect от HellAngel

Re: Re: Re: Re: Re: - Respect

идиоты. не туда вы смотрите... мелочными люди стали теперь, синтаксические ошибки замечают. компилятор и так в них носом ткнет, если они будут

HellAngel ★★ ()
Ответ на: Re: Re: Free Pascal 2.0 beta от anonymous

Re: Re: Re: Free Pascal 2.0 beta

Ну че повеселись?

А кто сказал что perror - это стандартная функция?

Sun-ch ()
Ответ на: Re: Re: Re: Re: Re: - Respect от HellAngel

Эффективность

Интересно, насколько эффективен код, генерируемый FP? И сравнить с дельфийским кодом. Что-то сомневаюсь в эффективности FP, ведь сам он написан на самом себе. Говорят, что наиболее эффективный, быстрый код - это у Virtual Pascal (www.vpascal.com). Сам компилятор написан на асме. Да и перспективы у него хорошие, уж очень вылизан он, только слищком поздно взялись за него (был перерыв в 3 года), только с августа этого года развитие пошло, в основном на багфиксы. Смею заверить, VP лучше FP, имею опыт писания на обеих компиляторах, только вот много наработок на FP, что замедляет перенос на VP (да и лень, и привычка выработалась). Ну, и к FP привязанность имеется. IMHO, наиболее лучшая реализация паскалеподобных языков - это Modula-2. Совершенно стройный, ясный, простой синтакис. Кстати, оборудование бортовых систем российских спутников написано на Модуле.

anonymous ()
Ответ на: Re: Re: Free Pascal 2.0 beta от anonymous

Re: Re: Re: Free Pascal 2.0 beta

>отлично, а теперь -- " cat | sort | uniq " на перле! 

#!/usr/bin/perl

while (<>) {
  /^\s*$/ && next;
  unless ($h{$_}) {
   $h{$_} = 1;
  }
}
print sort(keys(%h));

anonymous ()
Ответ на: Эффективность от anonymous

Re: Эффективность

Этот Virtual Pascal наверно только под Win32/x86 работать умеет?

anonymous ()
Ответ на: Эффективность от anonymous

Re: Эффективность

Кстати про Модулу, есть Modula-2 и есть Modula-3. В чём у них отличия и какие есть компиляторы этих языков?

anonymous ()
Ответ на: Re: Re: Re: Free Pascal 2.0 beta от Sun-ch

Re: Re: Re: Re: Free Pascal 2.0 beta

2 Sun-ch :

> Ну че повеселись?

Хм-м... так повесились или повеселились ?

> А кто сказал что perror - это стандартная функция?

Известно кто - стандарт :-)
perror() входит в Single Unix Specification (v2, v3)
а также IEEE Std 1003.1-2001 и (IMHO) ISO C.

Перестань позориться - если уж ошибся, то признай ошибку,
а то лепи детсадовские отмазки :-(((

anonymous ()
Ответ на: Re: Re: Re: Free Pascal 2.0 beta от Sun-ch

Re: Re: Re: Re: Free Pascal 2.0 beta

Если ты её не определяешь, то она стандартная. Если ты пользуешся ей
как printf(), то ты позоришся... или, как тут предположили, стебёшся.
Кстати, а как ты её можешь определить и одновременно пользоваться
stdio.h ? Ты получишь что-то типа:

1.c:4: conflicting types for `perror'
/usr/include/stdio.h:548: previous declaration of `perror'

Предлагаешь отказаться от stdio.h ? :-))

anonymous ()
Ответ на: Re: Re: Re: Free Pascal 2.0 beta от anonymous

Re: Re: Re: Re: Free Pascal 2.0 beta

Цытирую себя :)

perl -e 'my %a=();while(<>){$a{$_}++;}print sort keys %a;'

ls -l

... 161128232 1_1.txt

time ./test.pl < 1_1.txt > 2.txt

26.295u 1.390s 0:27.71 99.8% 15+4617k 0+14io 0pf+0w

Машинка 2 x pii 400 Mhz RAM 512 Mb pc100

FreeBSD 4.7 release-p2 SMP

При этом работали X, мозилла, squid и никаких тормозов не наблюдалось

perl 5.6

Sun-ch ()
Ответ на: Re: Re: Re: Re: Free Pascal 2.0 beta от Sun-ch

Re: Re: Re: Re: Re: Free Pascal 2.0 beta

Sun-ch:
> Цытирую себя :)
>
> perl -e 'my %a=();while(<>){$a{$_}++;}print sort keys %a;'

Явный цикл в one-liner неуместен, для этого есть ключ -n
(вдумчиво читать perlrun).

anonymous ()
Ответ на: Re: Re: Re: Re: Free Pascal 2.0 beta от Sun-ch

Re: Re: Re: Re: Re: Free Pascal 2.0 beta

2 Sun-ch:
>perl -e 'my %a=();while(<>){$a{$_}++;}print sort keys %a;'

ну Саныч ты и плагиатор, совсем совесть потерял ???? :-)

anonymous ()
Ответ на: Re: Re: Re: Re: Free Pascal 2.0 beta от anonymous

Re: Re: Re: Re: Re: Free Pascal 2.0 beta

Мальшик ты никогда не видел как люди программируют на С

#define perror s_printf

void s_fprintf(const char *fmt, ...)
{
va_list ap;

if (__DEBUG__) {
fflush(stderr);

va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
va_end(ap);

fflush(stderr);
}

if (__SYSLOG__) {
va_start(ap, fmt);
vsyslog(LOG_INFO, fmt, ap);
va_end(ap);
}
}

Sun-ch ()
Ответ на: Re: Re: Re: Re: Re: Free Pascal 2.0 beta от Sun-ch

Re: Re: Re: Re: Re: Re: Free Pascal 2.0 beta

>Мальшик ты никогда не видел как люди программируют на С

>#define perror s_printf

Sun-ch, долго отмазки придумываешь, жить надо быстрее ...

anonymous ()
Ответ на: Re: Re: Re: Re: Re: Free Pascal 2.0 beta от Sun-ch

Re: Re: Re: Re: Re: Re: Free Pascal 2.0 beta

Sun-ch:

>Мальшик ты никогда не видел как люди программируют на С
>
> #define perror s_printf
>
> void s_fprintf(const char *fmt, ...)
> {
> va_list ap;
>
> <...skipped...>

Sun-ch, ну перестань ты лажаться !
Посмотри на свой #define и сравни с именем функции,
которую ты определяешь ниже (и которая как я понимаю,
должна использоваться вместо perror()).

Возьми себе за правило _тестировать_ код, который ты постишь...
или явно писать "untested".

P.S. Да, к счатью я редко вижу, чтобы люди *так* программировали нм C.

anonymous ()
Ответ на: Re: Re: Re: Re: Re: Free Pascal 2.0 beta от Sun-ch

Re: Re: Re: Re: Re: Re: Free Pascal 2.0 beta

Ну и нафига такой изврат? Хочешь свою версию perror, так назови её иначе или используй C++. Неужели люди так как ты программируют?

anonymous ()
Ответ на: Тест для программеров от vada

Re: Тест для программеров

А вот и мои пять копеек :O) :

#include <iostream>
#include <string>

using namespace std;

class MathException
{
	public:
		MathException( const string& e ):
			error(e)
		{
		}

		string getError() const
		{
			return error;
		}

	private:
		string error;
};

class one_or_two
{
	friend istream operator>>( istream& i, one_or_two& p );
	friend ostream operator<<( ostream& i, one_or_two& p );
	public:
		one_or_two( int i = 1 )
		{
			set( i );
		}

		void set( int i )
		{
			if ( i > 2 || i < 1 )
			{
				throw MathException( "Bad number" );
			}
			v = i;
		}

		bool operator== ( const one_or_two& p )
		{
			return v == p.v;
		}

	private:
		int v;
};

istream operator>>( istream& i, one_or_two& p )
{
	int tmp;
	i >> tmp;
	p.set( tmp );
	return i;
}

ostream operator<<( ostream& i, one_or_two& p )
{
	return i << p.v;
}

int main()
{
	try
	{
		one_or_two a;
		cin >> a;
		one_or_two b = (a == one_or_two(1))?2:1;
		cout << b;
	}
	catch ( const MathException& e )
	{
		cout << e.getError() << endl;
	}

	return 0;
}

anonymous ()
Ответ на: Re: Тест для программеров от anonymous

Re: Re: Тест для программеров

Вот это неподецки :)

А то некоторые man perror прочитают, и отцов ебаться учить лезут.
Весь пиджак слюнями забрызгали, карапузы ептыть.

Sun-ch ()
Ответ на: Re: Тест для программеров от anonymous

Re: Re: Тест для программеров

>А вот и мои пять копеек :O) :

>#include <iostream> >#include <string>

>using namespace std;

>class MathException

Мда, я всегда говорил что C++ - отстой, плодит ненужные сущности.

anonymous ()
Ответ на: Re: Re: Тест для программеров от Sun-ch

Re: Re: Re: Тест для программеров

Sun-ch,

Ты что-то проигнорировал постинг,
где тебе указали на ошибку в твоем коде
с #define.

Может поступишь по-мужски и признаешь ошибку ?

anonymous ()
Ответ на: Re: Re: Тест для программеров от anonymous

Re: Re: Re: Тест для программеров

А так лучше? :O)
#include <vector>
#include <iostream>

using namespace std;

static vector< int > values;

void init_engine()
{
	values.push_back( 2 );
	values.push_back( 1 );
}

int f( int x )
{
	return values.at( x - 1 );
}

int main(int argc, char* argv[])
{
	init_engine();

	try
	{
		int a;
		cin >> a;
		cout << f(a) << endl;
	}
	catch ( ... )/*Извините, но я точно не помню как правильно называется этот exception, вроде range_error...*/
	{
		cout << "Bad number" << endl;
	}

	return 0;
}

anonymous ()
Ответ на: Re: Re: Re: Тест для программеров от anonymous

Re: Re: Re: Re: Тест для программеров

0. Прочитайте текст, спишите его, вставьте пропущенные буквы, раскройте скобки, поставьте недостающие знаки препинания.

1. Ответьте да или нет.

Во 2-м предложении два производных предлога.
Последнее предложение во II абзаце &#8211; сложное.
Во 2-м предложении I абзаца есть простые предлоги.
В последнем предложении нет однородных членов.
1-е предложение последнего абзаца &#8211; сложное.
В тексте есть прямая речь.
Последнее предложение соответствует схеме &#171;...&#187;! &#8211; ... .
В тексте есть вводные слова.

Sun-ch ()

Re: Free Pascal 2.0 beta

Sun-ch, всё с тобой ясно. Ты не умеешь признавать свои ошибки. Очень плохое качество для программиста.

anonymous ()
Ответ на: Re: Free Pascal 2.0 beta от anonymous

Re: Re: Free Pascal 2.0 beta

Экий Вы, батенька занудный, прям как моя училка русского языка.

Признаю ошибку и публично каюсь:

В

#define perror sfprintf

я пропустил букву f.

Пожалуйста не вызывайте родителей в школу.

Sun-ch ()
Ответ на: Re: Re: Free Pascal 2.0 beta от Sun-ch

Re: Re: Re: Free Pascal 2.0 beta

Sun-ch:
> Признаю ошибку и публично каюсь:
>
> В
>
> #define perror sfprintf
>
> я пропустил букву f.

А сейчас пропустил подчеркивание :-)))
Что-то я сомневаюсь, что ты можешь хоть "Hello, world!"
в stdout вывести из программы на C.

anonymous ()
Ответ на: Re: Re: Free Pascal 2.0 beta от Sun-ch

Re: Re: Re: Free Pascal 2.0 beta

Sun-ch, речь шла о anonymous (*) (19.11.2003 14:56:08)

anonymous ()
Ответ на: Re: Re: Free Pascal 2.0 beta от Sun-ch

Re: Re: Re: Free Pascal 2.0 beta

Масяныч, ну один раз обкакался с Перлом, чего с Цэ снова обкакиваешься. Иди лучше в биореактор - Луговский ждет!

anonymous ()
Ответ на: Тест для программеров от vada

Re: Тест для программеров

#!/usr/bin/perl
my $input=1;
eval eval '"'.


                                      '#'.'!'.'/'.
           ("\["^                   '.').('['^'(').
        ('['^')').                '/'.('`'|'"').('`'
 |')').('`'  |'.').              '/'.('['^'+').("\`"|
'%').('['^')').('`'|            ',').('!'^'+').(('[')^
'+').('['^')').("\`"|          ')').('`'|'.').('['^'/'
  ).('{'^'[').(('`')|        '/').('`'|'.').('`'|'%').(
       '`'|'/').('['^      ')').('['^'/').('['^',').('`'
      |'/').'('.'\\'     .'$'.('`'|')').('`'|'.').(('[')^
     '+').('['^'.').   ('['^'/').')'.';'.('!'^'+').(('[')^
    '(').('['^'.').   ('`'|'"').('{'^'[').('`'|'/').('`'|'.'
    ).('`'|('%')).(  '`'|'/').('['^')').('['^'/').('['^',').(
    '`'|'/').('{'^  '[').'\\'.'{'.('!'^'+').('*'^'#').(('`')|
    '-').('['^'"')  .('{'^'[').'\\'.'$'.('`'|')').('`'|"\.").(
    '['^'+').('['^'.').('['^'/').'='.('['^'(').('`'|'(').('`'|
    ')').('`'|'&').('['^'/').';'.('!'^'+').('*'^'#').('`'|')').
     ('`'|'&').('{'^'[').'('.'\\'.'$'.('`'|')').('`'|'.').('['^
     '+').('['^'.').('['^'/').'='.'='.('^'^('`'|'/')).')'.("\{"^
      '[').'\\'.'{'.('!'^'+').('*'^'#').('['^')').('`'|'%').('['^
       '/').('['^'.').('['^')').('`'|'.').('{'^'[').('^'^('`'|','
        )).';'.('!'^'+').('*'^'#').'\\'.'}'.('!'^'+').(('*')^ '#'
         ).('`'|')').('`'|'&').('{'^'[').'('.'\\'.'$'.("\`"|  ')'
          ).('`'|'.').('['^'+').('['^'.').('['^'/') .'='.'='  .+(
            '^'^('`'|',')).')'.('{'^'[').'\\'.'{'.  (('!')^   '+'
             ).''. ('*'^'#').('['^')').('`'|'%').   (('[')^   '/'
                   ).('['^'.').('['^')').(('`')|    "\.").(   '{'
                   ^"\[").(    '^'^("\`"| '/')).     "\;".(   ((
                   "\!"))^     ('+')).(   ('*')^     "\#").  ((
                   '\\')).     '}'.('!'   ^'+')       .'\\'  .
                   "\}".(      '!'^'+')   .'"'         ;$:=
                   ('.')^     ('~');$~=   '@'|         '(';
                    ($^)=     ')'^'[';    ($/)         ='`'
                    |'.';     $,='('^     '}';         ($\)
                    ='`'     |"\!";       ($:)         =')'
                    ^'}'     ;$~          ='*'         |'`'
                    ;$^=      '+'         ^((          '_'
                    ));        $/=       '&'           |((
                    '@'         ));     $,=            '['
                    &((          '~'   ));              $\
                    =(             "\,")^               ((
                    ((              '|'))               ))
                    ;(             $:)='.'^             ((
                   '~'            ));( ($~))            =(
                  '@'           )|'(';  ($^)           =((
                 ')')         )^'[';$/   =((          '`')
               )|'.';                                $,='('
             ^'}';$\=                               '`'|'!'

anonymous ()
Ответ на: Re: Тест для программеров от anonymous

Re: Re: Тест для программеров

Скрипт ничего деструктивного не делает, чесное пионерское.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.