// Функция определения // простоты числа function IsSimple (N: integer): boolean; begin if N<2 then begin Result := False; exit; end; Result := True; var SqN := round(sqrt(N)); forvar i:=2 to SqN do if N mod i = 0 then begin Result := False; exit; end; end;
begin writeln(IsSimple(13)); end.
Баннеры
Гостевая книга
Комментарии, пожелания и замечания пользователей
Ромка21
При отладке с подключенным модулем CRT, нажимаю F7 и выдает ощибку,
"Программу с подключенным модулем CRT нельзя запускать по F9.
Запустите программу, используя Shift-F9"
21.05.2012
Lexan
Что это за ошибка такая?
test.pas(7) : Нельзя преобразовать тип T к T
вот в таком коде
type A<T>=interface function B(x:T):T; end;
function C<T>(x:T):T;where T:A<T>;forward; function C<T>(x:T):T; begin result.B(x);//test.pas(7) : Нельзя преобразовать тип T к T //ошибка связана с аргументом x end;
begin end.
12.05.2012
Сергей Р.
Большое спасибо очень помогло.
08.05.2012
mikst
Используйте f: TextFile
08.05.2012
Сергей Р.
есть такая программка:
Uses system;
var f:text; x:integer;
d:DateTime;
begin
assign(f, 'sis.moj');
append(f);
d := DateTime.Now;
writeln(f,d1);
close(f);
end.
но PABC.net пишет на "f:text"-"ожидался тип". как с модулем system вывести дату и время в файл?
06.05.2012
SoundWave
Здравствуйте, с вашего сайта я не могу скачать PascalABC.NET + Microsoft .NET Framework v4.0 (Setup, 118 Mb), закачка доходит до 60 % и перестаёт закачиваться дальше. Помогите пожалуйста.
05.05.2012
Programmer
При распараллеливании возникает ошибка.
Есть такой код.
...
var s:array of string; begin setlength(s,val.Length); {$omp parallel for} for var i:integer:=0 to val.Length-1 do s[i]:=val[i].tostring;
...
Компилируется успешно, но не распараллеливается, при этом выдает ошибку:
() : This OMP construction not builded: Неверное представление индексаторов прямоугольного динамического массива
Как распараллелить подобную конструкцию?
15.04.2012
вофка
Уважаемые, пожалуйста сделайте версию для linux, хотябы для MonoDevelop !!!
31.03.2012
Kasperos
не знаю кто говорил или нет, но в 1.7 (460) еще оставалось
типизированный файл со строкой N>127
при записи строки длинной в 128 и более символов к индексу длины добавляется единичка (зачем она там никто не знает)
кроме того:
работать со строкой больше 255 символов программа позволяет, а вот объявить строку фиксированной длиной больше 256 низзя, совместимость совместимостью, но можно уж тогда и новую superstring[100500] ввести
30.03.2012
AlexAlex
А как сделать в браузере (сам сделал) чтобы в гугле когда на ссылку жмёшь открывалась новая вкладка, а не internet exploarer?
23.03.2012
PitBul477
Мне вот интересно два момента. Первое:а будет ли поддержка графического модуля в последующих версиях программы? Второе:возможно ли при помощи какой-либо команды указать путь к файлу,который нужно открыть?
23.03.2012
miks
2 spot94
Задавайте вопросы на форуме. У Вас какая-то серьёзная проблема с правами под NT, потому всё и не работает.
18.03.2012
spot94
Функция readkey не работает, при компиляции выдает ошибку:
18.03.2012 12:39:38
PascalABCCompiler.Core v1.8.0.486 (12.02.2012), debug version
Runtime version: 4.0.30319.1
OS version: Microsoft Windows NT 6.1.7600.0
Processor count: 8
WorkingSet: 147408 kb
StatesList:
CompilationFinished Program3.pas
Ready
Error[0]: Внутренняя ошибка компилятора в модуле [pabcnetc.exe] :'System.Exception: System.IO.IOException: Неверно задано имя папки.
в System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
в System.IO.Directory.SetCurrentDirectory(String path)
в PascalABCCompiler.Compiler.Compile()'
18.03.2012
miks
>При компиляции любой программы в PascalABC.NET выдаёт ошибку
Судя по ошибке, у Вас нет прав на запуск юучу-файла из каких-то каталогов. Настраивайте доступ правильно.
17.03.2012
miks
Все задачи электронного задачника не будут доступны - их автор М.Э.Абрамян (сайт ptaskbook.com) предоставил для инсталлятора PascalABC.NET возможность решать только часть из задач электронного задачника. Впрочем, Вы можете решать все задачи электронного задачника в Web-среде - это сделано в рекламных целях.
17.03.2012
miks
Модуль Graph - учебный и действительно работает медленно. Напрямую соответствующие dll использовать можно - в PascalABC.NET есть возможность вызова кода из неуправляемых dll. Но лучше, видимо, найти прослойку на C# для DirectX или OpenGL, оформленную в виде dll, и вызывать именно её.
17.03.2012
miks
lock - ключевое слово PascalABC.NET - используйте другое имя.
17.03.2012
valve
Здравствуйте.
В библиотеке, которую использует моя программа, в интерфейсе объекта имеется процедура 'lock', но компилятор воспринимает его как служебное слово и выводит ошибку
Система PascalABC.NET - отличный набор инструментов и функций для программирования. Служит для обучения программированию, в т.ч. объектно-ориентированному.
Имеется широкий спектр модулей, и это очень отрадно. Но к сожалению, не все полноценны (имею в виду скорость выполнения и функциональность). Например, модуль GraphABC работает довольно медленно. Есть ли у вас возможность создать графический модуль на основе DirectX или OpenGL? Если нет, то как можно использовать напрямую соответствующие .dll?
Заранее спасибо.
17.03.2012
simfer
Здравствуйте. Вопрос - а что нужно сделать, чтобы все задачи электроного задачника стали доступны для автоматической проверки, а не только те, которые отмечены * (разделы begin, boolean, integer)????
14.03.2012
Empreror
При компиляции любой программы в PascalABC.NET выдаёт ошибку
11.03.2012 16:20:43 PascalABCCompiler.Core v1.8.0.486 (12.02.2012), debug version Runtime version: 4.0.30319.261 OS version: Microsoft Windows NT 6.1.7601 Service Pack 1 Processor count: 2 WorkingSet: 98020 kb StatesList: BeginCompileFile Program1.pas BeginParsingFile Program1.pas EndParsingFile Program1.pas ReadPCUFile PABCSystem.pcu ReadDLL System.dll ReadDLL mscorlib.dll ReadDLL System.Core.dll ReadPCUFile __RedirectIOMode.pcu ReadDLL System.Windows.Forms.dll ReadPCUFile crt.pcu CompileInterface Program1.pas EndCompileFile Program1.pas SemanticTreeConversion Optimizer CodeGeneration Program1.exe CompilationFinished Program1.pas Ready
Error[0]: Внутренняя ошибка компилятора в модуле [pabcnetc.exe] :'System.Exception: System.IO.
FileNotFoundException: Не удается найти указанный файл. (Исключение из HRESULT: 0x80070002) в System.Reflection.Emit.AssemblyBuilder.DefineDynamicModule(RuntimeAssembly containingAssembly, Boolean emitSymbolInfo, String name, String filename, StackCrawlMarkHandle stackMark, IntPtr& pInternalSymWriter, ObjectHandleOnStack retModule, Boolean fIsTransient, Int32& tkFile) в System.Reflection.Emit.AssemblyBuilder.DefineDynamicModule(RuntimeAssembly containingAssembly, Boolean emitSymbolInfo, String name, String filename, StackCrawlMark& stackMark, IntPtr& pInternalSymWriter, Boolean fIsTransient, Int32& tkFile) в System.Reflection.Emit.AssemblyBuilder.DefineDynamicModuleInternalNoLock(String name, String fileName, Boolean emitSymbolInfo, StackCrawlMark& stackMark) в System.Reflection.Emit.AssemblyBuilder.DefineDynamicModuleInternal(String name, String f
13.03.2012
valve
При запуске данной программы
...............................................
#reference 'openGL32.dll'
begin
end.
..............................................
Выводится ошибка
Program2.pas(1) : Ошибка при чтении сборки 'openGL32.dll'
, хотя 'openGL32.dll' находится в той же папке, что и программа. В чём дело?
07.03.2012
Artem
А здесь есть ответы по электронному задачнику PT4?
07.03.2012
Максутов А.
Здравствуйте.
Система PsacalABC.NET - отличный набор инструментов и функций для программирования. Служит для обучения программированию, в т.ч. объектно-ориентированному.
Имеется широкий спектр модулей, и это очень отрадно. Но к сожалению, не все полноценны (имею в виду скорость выполнения и функциональность). Например, модуль GraphABC работает довольно медленно. Есть ли у вас возможность создать графический модуль на основе DirectX или OpenGL? Если нет, то как можно использовать напрямую соответствующие .dll?
Заранее спасибо.
07.03.2012
Fess
Есть ли команда readkey на pascalabc net? Если нету, то есть ли у нее команда-замена?
23.02.2012
Владимир262
Косяк с комментариями внутри комментариев
Например следующая строка не будет компилироваться.
{count:=count+1;{увеличение на 1}}
31.01.2012
Apromix
Здраствуйте! Спасибо за PascalABC.NET. Прикольная система Заинтересовали плагины, их написание. Сколько плагинов существует для среды сейчас и где их взять? Где можно выложить свой плагин, чтобы и другие им пользовались? Спасибо
25.01.2012
miks
1. Сделайте
type TRec = Record name : ShortString; End;
И всё заработает. Читайте документацию. Во Free Pascal устаревшие строки.
2. Доступ к элементам строк через указатель работать не будет. Это - ограничение .NET. Пользуйтесь более высокоуровневыми средствами. Для иллюстрации низкоуровневых используйте Free Pascal или C.
30.12.2011
Boris
Здравствуйте. В PascalABC.NET не компилируется следующий несложный код:
program test;
type
pchar=^char;
var
s:string;
ch:char;
pc:pchar;
begin
readln(s);
pc:=@s[2];{нельзя получить адрес выражения}
ch:=pc^;
writeln(ch);
readln;
end.
В это же время тот же самый код идеально работает в Borland Pascal 7. Надеюсь в дальнейших версиях данный недостаток будет устранен, поскольку он делает нереализуемыми целое множетсво задач на указатели и строки. Спасибо.
23.12.2011
Alexey
Program rec;
type TRec = Record name : String; End;
var f : File of TRec; Begin End.
Должно работать, но выдает ошибку при компиляции
FreePascal не жалуется
20.12.2011
Коваль Александр
Здравствуйте mklokov! Вы спрашивали:
Код: for i:=1 to 3 do begin b:=random; writeln(b:6:4) end; работает.
Код : for i:=1 to 3 do writeln(random:6:4) даёт ошибку компиляции в выделенной строке: "Данный формат вывода может быть применен только к вещественному типу"
Планирую со школьниками проходить функцию random, ожидаю соответствующего вопроса.
Отвечаю. Дело в том, что формат применяют к переменной, а не к функции.
09.12.2011
Коваль Александр
Здравствуйте! Извините за беспокойство и нелепый вопрос. Сам разобрался: для ввода строк нужно писать не
read
а
readln
и все работает.
09.12.2011
Коваль Александр
Вот такая простенькая программка не работает. Первая строка вводится и переход на конец программы. В чем причина?
Здравствуйте! У вас случаем нет решебника для задач в PABC. Хотелось бы проверять правльность написатния алгоритма, а негде.
06.12.2011
miks
Надо дать имя типу массива:
type Arr = array[1..10] of integer;
var a,b: Arr;
Тогда всё будет работать.
25.11.2011
egorka13
Этот фрагмент кода должен копировать случайно сгенерированный массив a в массив b.
var a: array[1..10] of integer;
b: array[1..10] of integer;
begin
for var i := 1 to 10 do
begin
a[i] := Random(10);
end;
b := a;
end.
При попытке его выполнения в WDE компилятор выдаёт ошибку "Нельзя преобразовать тип array [1..10] of integer к array [1..10] of integer".
В справке написано: "Статические массивы одного типа можно присваивать друг другу, при этом будет производиться копирование содержимого одного массива в другой:
a1:=a2;"
Что делать?
25.11.2011
mklokov
Здравствуйте!
Код: for i:=1 to 3 do begin b:=random; writeln(b:6:4) end; работает.
Код : for i:=1 to 3 do writeln(random:6:4) даёт ошибку компиляции в выделенной строке: "Данный формат вывода может быть применен только к вещественному типу"
Планирую со школьниками проходить функцию random, ожидаю соответствующего вопроса.
22.11.2011
miks
Регистрацию исправили
18.11.2011
miks
Регистрацию - в ближайшее время исправим
16.11.2011
Ceridan
Вопрос по регистрации в WDE. Не отображает картинку с проверочным кодом. Пробовал из под разных браузеров, нигде не показывает.
Подскажите пожалуйста, можно ли как-то зарегистрироваться с такой проблемой?
16.11.2011
dima1204123
var fi,fo:text;
a,b:array [1..100]of integer; s,p,i,j:integer; begin assign(fi,'n'); assign(fo,'.\pesok.out.bat'); reset(fi); rewrite(fo); for i:=1 to 3 do read(fi,a[i]); for i:=1 to 3 do read(fi,b[i]); for i:=1 to 2 do for j:=i+1 to 3 do begin if a[i]if b[i]end; s:=0; for i:=1 to 3 do s:=s+a[i]*b[i];writeln(fo,s);close(fo); close(fi);
end.
кокда я создал сам файл я не могу его открытьбвыдает ошибку Ошибка времени выполнения: Файл 'c:\PABCWork.Net\aaa.dat' не найден.
15.11.2011
book
сделайте плиз выделение парных скобок более ярким. очень-очень надо . заранее благодарю
11.11.2011
Деркач Даниил
подскажите пожалуйста: какие адреса оперативной памяти паскаль использует под видео-буфер. хочу использовать его для ускоренмя отрисовки графики в паскале
30.10.2011
Дмитрий Александрович Луи
Здраствуйте не подскажите что за проблема,дело в том что в модуле uses graphabc; не работает процедура SaveWindow выдаёт ошибку даже на такой простой программе:
program test; uses graphabc; begin SaveWindow('1.png'); end.
выдаёт ошибку : ошибка времени выполнения:B GDI+возникла ошибка общего вида.
если запускать не с под оболочки а из системы то ошибка такая
Сигнатура проблемы: Имя события проблемы: CLR20r3 Сигнатура проблемы 01: program2.exe Сигнатура проблемы 02: 0.0.0.0 Сигнатура проблемы 03: 4ea7c0f0 Сигнатура проблемы 04: System.Drawing Сигнатура проблемы 05: 4.0.0.0 Сигнатура проблемы 06: 4ba1e086 Сигнатура проблемы 07: 3c Сигнатура проблемы 08: d2 Сигнатура проблемы 09: AMAG3AACMAWG2XAF344U21ACVE5PSTKL Версия ОС: 6.1.7600.2.0.0.256.1 Код языка: 1049 Дополнительные сведения 1: 0a9e Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789 Дополнительные сведения 3: 0a9e Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789
Помогите пожалусто.
26.10.2011
Almaz
Ошибка компиляции: Внутренняя ошибка компилятора в модуле [pabcnetc.exe] :'System.Exception: System.IO.DirectoryNotFoundException: Не удалось найти часть пути "C:\PABCWork.NET". в System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) в System.IO.Directory.SetCurrentDirectory(String path) в PascalABCCompiler.Compiler.Compile()'
25.09.2011
Almaz
Добрый день! Кто знает как можно прописать в PascalABC.Net путь к задачнику и требуемым компонентам(не компилирует без них). Дело в том, что основная система у меня стоит на диске E, а задачник с модулями прописывается при установке на C. А диска C у меня нет при добавлении харда они смешались и на основной ОС осталась буква E. Я пробовал менять диски(хотя это опасно), в регистре переделывал не нашел пути задачника к диску C. Не хочется ставить два харда или форматировать или виртуальный диск устанавливать. Кто знает скажите пожалуйста, как решить.
25.09.2011
Max97
Добрый день. А есть ли возможность писать UnitTest для программ на PascalABC? Это современная тенденция (TestDrivenDevelopment). Хотелось бы сразу прививать эту практику.
25.09.2011
Orsker
Приятно удивлён Вашей разработкой. Для обучения программированию - самое то! Для более серьёзных работ неплохо было бы увидеть аналог Pascal Server Pages для разных платформ :)
25.08.2011
Фрол
Ещё раз здравствуйте! Поискал информацию самостоятельно и выяснил, что, вроде бы, разрабатывать плагины теоретически могут и сторонние разработчики. Но для этого нужна соответствующая документация! Полноценной документации так и не нашёл. Видел статью "Как создать компилятор", но она не закончена: 3 последних раздела не написаны. Планируется ли опубликовать информацию, которая позволила бы сторонним разработчикам создавать свои компиляторы, интегрированные в среду PascalABC.NET? Заранее благодарю за ответ.
10.08.2011
Фрол
Здравствуйте!
В разделе "Описание языка PascalABC.NET" упоминается поддержка плагинов. Как я понимаю, сторонним разработчикам их разработка недоступна?
10.08.2011
mikst
Регистрация участников открыта.
Просьба задавать последующие вопросы на форуме ИТ в топике:
Когда начнется регистрация участников на конурс Создание игрового приложения в pabc.net? Или организаторы про это дело забыли? Если регистрация уже идет, как это и должно по идее быть, ткните носом где.
25.07.2011
Casey
virtual world, mix911, Сайт выглядит Отлично. Ничего лишнего и со Вкусом, Приятная цветовая тема.
16.07.2011
sniper
нормально сайт выглядит, по сути важна начинка как в той пословице "встречают по одежке, провожают по уму"
10.07.2011
mix911
да, согласен с virtual world, и ещё вам нужны партнёры, требуется продвинуть этот сайт, или создать другой...
07.07.2011
virtual world
не уверен что туда пишу, но почему бы вам не заняться дизайном сайта: выглядит он не профессилнально...
07.07.2011
грэйс
Пожалуста, выпустите в июле новую версию с:
- яркое выделение парных скобок (раньше помнится была);
- по возможности, добавьте лёгкость создания вычислительных (и прочих тоже) готовых программ от языка Бэйсик;
пока всё спасибо жду
07.07.2011
mikst
Регистрация участников конкурса «Создание игрового приложения в среде PascalABC.Net» начнется примерно в середине июня.
20.05.2011
Гусейн
подскажите пожалуйста как здесь зарегистрироваться?
19.05.2011
Аляксей
Написал, посмотрите, пожалуйста
13.05.2011
mikst
Напишите проблему на форуме
13.05.2011
Аляксей
У меня в любой процедуре первый readln (и read) пропускается компилятором, т.е. его просто нет в выполняемой программе.
Что делать?
13.05.2011
mikst
Вызовы функций в константных выражениях запрещены. Представьте:
var a: array [1..Random(100)] of integer;
Или, что еще хуже, там будет стоять функция, написанная Вами.
11.05.2011
tima
ku!
const
v1 = 4;
v2 = round(v1/2);
var
a: array [1..v2] of integer; //ожидалось константное выражение
begin
end.
почему нельзя так?
10.05.2011
hu2
Тем более, мне кажется, что c# легче, чем pascal
03.05.2011
hu2
Все это детская фигня, если хотите писать программы, которые нестыдно запускать, то пишите, например, на visual c#
03.05.2011
Евгений2
Сейчас едет массовый переход на СПО(Линукс) у гос. структур и школ. Вопрос, можно сделать приложения(разработки ПаскалАБС) чтоб запускались в браузере linux (лисы или оперы без разницы). Нужна работа с простами базами из 3-5 таблиц, с выводом и редактированием, поиском в браузере. Среду компиляции и сервер в принципе можно в винде развернуть.... если возможно, то как, дайте ответ на 131516@mail.ru
16.04.2011
Tr0ll
В версии PascalABC.net исчезают такие функции как Readkey и Keypressed...
Как же делать чтоб программа во время цикла реагировала на нажатие клавиши?
26.03.2011
KenGOoOo
Хотелось бы,что бы в модуле CRT работали объявленные ранее процедуры по изменению окна,прокрутки.
В первом случае окно увеличивается,но рабочая часть остается прежней.
Спасибо.)
21.03.2011
Scout
Подскажите пожалуйста как быть!
Описание: ProcVars.pas(6) : Ошибка времени выполнения: Система конфигурации не прошла инициализацию
Фаил: ProcVars.pas
19.03.2011
ua3rad
Где найти описание модуля FormsABC!
15.03.2011
mikst
При вызове используется запятая, при описании - точка с запятой. всё правильно.
Сообщение об ошибке - компилятор не знает смысл assign, поэтому считает, что там может быть ).
Пишите правильно :)
23.02.2011
Тимур
В справке написанно: Assign(f: FileType; name: string);
Если написать например:
s1: file of integer;
...
assign(s1;'C:\PABCWork.NET\s1.save'); пишет что после s1 ожидалось ')' Если использовать запятую все прекрасно работает. Исправьте. И еще в справке написанно procedure readln(f: Text; a,b,...); Тот же случай... с запятой не работает. Не знаю как быть не удается считать из файла. Reset(s1) сделал.
21.02.2011
Безимени
Большое спасибо за Ваш труд ! Учить информатику стало куда как проще и интереснее.
12.01.2011
daesher
2 MozG
Строка имеет переменный размер, файл бы содержал не сами строки, а какие-то ссылки на них (думаю, Вам это не надо?)
Попробуйте так:
[code]
type uchenik = record n:shortstring; f:shortstring; k:integer; p:char; end;
my_file = file of uchenik; [/code]
06.01.2011
MozG
Проблемка с программкой. Нельзя работать с типизированными файлами записей.
Вот пример:
type uchenik = record n:string; f:string; k:integer; p:char; end;
my_file : file of uchenik;
Ругается: Типизированый файл не может содержать элементы такого типа.
Засада
06.01.2011
mikst
Да, исправили ошибку с простыми числами :)
13.12.2010
nord777
Pascal - это круто, сам начинал с Turbo Pascal.
Желаю всем новичкам удачи!!!
10.12.2010
nord777
Как мне кажится слишком громкий слогон сайта "обучениие современному программированию" слово современному можно зачеркнуть, будет правильнее
Предлагаю новый слоган:
PascalABC.NET Обучение современному программированию
10.12.2010
nord777
Ошибка в случайной программе "// Функция определения
// простоты числа".
1 - не относится к простым числам
10.12.2010
Степан
было бы хорошо добавить функцию печати кода.
09.12.2010
mikst
Например, как-то так:
{$reference 'System.Management.dll'}
uses System.Management;
begin var s := new ManagementObjectSearcher('SELECT * FROM Win32_DiskDrive'); foreach m: ManagementObject in s.Get() do writeln(m['Signature'].ToString()) end.
27.11.2010
Сафонов Анатолий
Добрый день.
PascalABC получил большую популярность в Беларуси. Учебники информатики "подогнали" под систему программирования PascalABC. Среда программирования PascalABC позволяет меньшими усилиями создавать неплохие программы и развивать алгоритмизацию. Меня интересуют, например, реализация некоторых системных функций, в частности, чтение серийного номера носителя информации. Как это реализуется на PascalABC? Заранее спасибо.
sad-bel@tut.by
Республика Беларусь
21.11.2010
mikst
А разве где-то было задумано иначе?
06.11.2010
TriniT
а так и было задумано, что в версии 1.5 синусы и косинусы по умолчанию считает в радианах??
04.11.2010
offside
Молодцы. Я и не знал о таком проекте. Случайно видеоурок смотрел по паскалю решил зайти. И не жалею теперь об этом.
31.10.2010
mikst
А какого характера видеоуроки Вас интересуют?
26.10.2010
baby
Писать программы видимо удобно! Однако у меня есть к вам пожелание, выпустить на свет полноценное учебное издание по работе в среде pascalabc.net, а также если можно организовать определённого характера видеоуроки, хотя бы и в режиме онлайна! Спасибо за внимание!
26.10.2010
mikst
Трудно сказать. Видимо, это особенность конкретного компьютера. А какая версия Windows?
25.10.2010
ната
почему в Справке не отображаются картинки .gif, .png...?
например в описании модуля Graph
Пробовала устанавливать разные версии
25.10.2010
mikst
Сами не знаем - вроде никогда ничто не ограничивало. Пишите по частям - если что - сольём
11.10.2010
Хм-м...
А у вас на объем сообщения в гостевой какое ограничение?
05.10.2010
Beltar
Вообще все это вызывает у меня ряд философских вопросов. Во-первых, я твердо убежден в том, что никакого специального языка для обучения быть не должно. Если язык труден для понимания в учебе, то, скорее всего, он и в серьезной работе будет вызывать множество проблем. C/C++ прекрасная иллюстрация к этому.
С другой стороны, я сам учился кодить на BP 7.1 с BC 3.1, и мне самому тогда было бы просто замечательно иметь подобный инструмент. Все-таки само по себе программирование начинается не с ООП, которое я сам для себя расшифровываю как "Объектно ориентированное проектирование", а со старого доброго структурного программирования алгоритмов. По сути любой программист большую часть времени занят именно структурным программированием внутренностей функций. Показать основы этого увлекательного занятия действительно проще на PascalABC, чем на Delphi, где даже для простейшего приложения надо создавать отдельный проект. А чтобы воспользоваться плюсами VCL надо опять-таки бросать на форму компоненты и объяснять, что бросьте на форму кнопку, которую взять оттуда-то, а потом 2 раза щелкнуть по н
05.10.2010
mikst
Цитата Algo
Разработчики - молодцы, проделали большой объём работы.
Только возникает серьёзный вопрос. В чём заключаются значительные особенности, отличия языка PascalABC ну, скажем от C#? Объявление переменных внутри блока, описание методов внутри записей, форма записи оператора new, модификатор internal, операторы +=, и т.п. - всё совпадает с C#. Остались косметические отличия, типа: begin ... end вместо { ... }, var i: integer вместо int i и т.д., плюс незначительная простота при написании самых простейших программ.
Получаем клон/аватар/аналог C# со всеми его плюсами и минусами, чуть более подходящий для начального обучения.
В чём же соль (идеология) проекта?
Итак, в чем соль. Говоря коротко: PascalABC.NET - аналог языка Delphi с простой и бесплатной средой разработки, ориентированной прежде всего на обучение. Мы очень педантично реализовали почти все конструкции Delphi Object Pascal, исключая лишь наиболее специфические для Delphi.
Вторая сторона PascalABC.NET - использование всех библиотек .NET и совместимость с .NET-языками.
Значительных особенностей, наверное, нет: это просто современный язык Object Pascal, очень близкий к Delphi, с возможностью свободного использования .NET-библиотек и качественной простой оболочкой. Если Вы программируете на Паскале, то PascalABC.NET - хороший выбор. Для обучения предоставляется несколько графических библиотек, пара школьных исполнителей и уникальный электронный задачник с возможностью самому разрабатывать автоматически проверяемые задания. Разве этого мало? Где Вы видели аналог такой среды, тем более сделанной с чистого листа?
Представление о PascalABC.NET как о клоне C# неверно и вытекает из внешнего сходства немногих конструкций: += (есть во Free Pascal), методы внутри записей (уже есть в современном Delphi), описание переменных внутри блока (очень востребовано при обучении, соблюдает принцип локальности и препятствует созданию длинного списка глобальных переменных), new в качестве вызова конструкторов воспринимается гораздо легче и присутствует в Delphi Prism, обобщенные классы (которые есть в .NET) были сделаны вначале в PascalABC.NET и лишь потом (в 2008 г.) появились в Delphi. Ну а то, что все типы - классы - это во всём .NET так - было бы странно запрещать.
Вообще, один из разработчиков языка C# проектировал в свое время Delphi, так что немудрено, что C# похож на Delphi. Но никак не наоборот.
На языке Pascal наработана масса методик начального обучения программированию, мы лишь предоставляем дополнительные средства, присущие множеству современных языков. То, что эти средства есть и в C#, говорит лишь о том, что C# - современный язык.
Если Паскаль лишь чуть более пригоден для начального обучения, чем C#, то учите на C#. Но уже в первой программе Вам потребуется рассказать, что такое
классы
функции
статические методы
пространства имен
подключение пространств имен
точечная нотация
тип void
тип string
тип string[]
За одно занятие мы такого делать не умеем. Потому и создали PascalABC.NET.
Теперь еще раз о соли. Соль проста: если используете Pascal для обучения, то выбирайте PascalABC.NET - он бесплатен, современен, непрерывно развивается, имеет простую русскую оболочку и позволяет использовать все .NET-библиотеки.
20.07.2010
ibond
PascalABC.NET со звуками работать умеет:
uses System.Media; begin var player := new SoundPlayer('c:\PABCWork.NET\test.wav'); player.Play; end.
15.07.2010
Shen
Я бы хотел, чтобы pascalABC.net поддерживал работу со звуками, а также модуль VCL был такой же, как и в PascalABC
07.07.2010
Algo
Разработчики - молодцы, проделали большой объём работы.
Только возникает серьёзный вопрос. В чём заключаются значительные особенности, отличия языка PascalABC ну, скажем от C#? Объявление переменных внутри блока, описание методов внутри записей, форма записи оператора new, модификатор internal, операторы +=, и т.п. - всё совпадает с C#. Остались косметические отличия, типа: begin ... end вместо { ... }, var i: integer вместо int i и т.д., плюс незначительная простота при написании самых простейших программ.
Получаем клон/аватар/аналог C# со всеми его плюсами и минусами, чуть более подходящий для начального обучения.
В чём же соль (идеология) проекта?
03.07.2010
mikst
Всё верно. Вы выводите данные в неправильном порядке.
Пишет что решение являеься не правильным хотя решение правильное. Нет проверки по условию.
05.06.2010
Flex24
Спасибо,сайт хороший. Очень помогает мне в учебе. Хотелось бы чтобы в разделе "Примеры программ" появились программы по работе с файлами.
23.05.2010
SSM
Примерно так:
uses System.IO;
procedure PrintFileTree(path,mask: string); begin var d := new DirectoryInfo(path); writeln('--',d.FullName); foreach fi: FileInfo in d.GetFiles(mask) do writeln(fi); foreach di: DirectoryInfo in d.GetDirectories do PrintFileTree(di.FullName,mask); end;
begin PrintFileTree('.','*.*'); end.
20.05.2010
Прохор
Подскажите, пожалуйста, как на PascalABC.Net сделать эффективный обход дерева каталогов.
19.05.2010
SSM
Спасибо за критику терминологии.
Пишите на форуме - в формате Гостевой книги невозможно обсуждать.
09.05.2010
Критика терминологии
Delphi Pascal - не существует такого языка программирования
Текущая релизация назывется "язык Delphi" (раньше это были Turbo Pascal, Borland Pascal, Object Pascal и Object Pascal 2.0)