0 / 0 / 0
Регистрация: 17.02.2016
Сообщений: 9
1

Внутренняя ошибка компилятора

06.04.2016, 18:14. Показов 2423. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вся проблема, похоже, кроется в процедуре Kill (файл Randoms.pas), т.к. до неё проблем не наблюдалось. Я пробовал её переименовывать, но не помогло.
Проект:
Evolution.pas
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses Arrange, Randoms;
const
///Число существ в одном поколении
n=1000;
///Мера случайности популяции
PopulationRandomness=2147483646.0; //обязательно оставляйте .0, иначе ничего не будет работать!
///Коэффицент существ, умирающих во время смены поколений
PopulationMortalityMult=0.5;
var 
///Массив, в который сохраняется текущее поколение
k : array of double;
Begin
SetLength(k,n+1);
writeln('Первые ',n,' существ: ');
for var i:=1 to n do 
begin
k[i]:=random(-PopulationRandomness.Trunc,PopulationRandomness.Trunc)/PopulationRandomness; //для генерирования вещественных чисел
end;
Sort(k,n);
Kill(n*PopulationMortalityMult,k);
foreach l : double in k do if l<>0 then write(l,' ');
end.
Arrange.pas:
Pascal
1
2
3
4
5
6
7
8
9
10
11
unit Arrange;
///Сортирует массив из n элементов в порядке невозростания
procedure Sort(k : array of double; n : uint64);
begin
for var i:=1 to n-1 do
begin
for var j:=1 to n-i do
  if k[j]<k[j+1] then swap(k[j],k[j+1]);
end;
end;
end.
Randoms.pas:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
unit Randoms;
///Выводит истину, если случайный шанс сработал
function RandomProb(chance : real; prec : real) : boolean;
begin
if random(1,prec.Trunc)/prec<chance then Result:=True else Result:=False;
end;
///Выводит истину, если случайный шанс в процентах сработал
function RandomPercentage(chance : real; prec : real) : boolean;
begin
if random(1,prec.Trunc)/prec<0.01*chance then Result:=True else Result:=False;
end;
///Убивает amm членов популяции
procedure Kill(amm : real; k: array of double);
begin
var z : uint64;
var j:=amm.Trunc;
for var i:=1 to j do
begin
if z=j then break;
if RandomProb(i/500,1048576) then 
    begin
    k[i]:=0;
    z+=1;
    end;
    end;
end;
end.
Внутренняя ошибка компилятора в модуле [pabcnetc.exe] :'System.Exception: System.ArgumentNullException: Значение не может быть неопределенным.
Имя параметра: key
в System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
в System.Collections.Generic.Dictionary`2.ContainsKey(TKey key)
в PascalABCCompiler.NETGenerator.ILConverter.ConvertFromTree(IProgramNode p, String TargetFileName, String SourceFileName, CompilerOptions options, String[] ResourceFiles)
в PascalABCCompiler.Compiler.Compile()'
//Здесь вы можете добавить свой комментарий


06.04.2016 20:08:47
PascalABCCompiler.Core v3.1.0.1211 (31.03.2016), debug version
Runtime version: 4.0.30319.42000
OS version: Microsoft Windows NT 6.1.7601 Service Pack 1
Processor count: 8
WorkingSet: 95216 kb
StatesList:
BeginCompileFile Evolution.pas
BeginParsingFile Evolution.pas
EndParsingFile Evolution.pas
ReadDLL System.dll
ReadPCUFile PABCSystem.pcu
ReadDLL mscorlib.dll
ReadDLL System.Core.dll
ReadDLL System.Numerics.dll
ReadPCUFile __RedirectIOMode.pcu
ReadDLL System.Windows.Forms.dll
ReadPCUFile Randoms.pcu
ReadPCUFile Arrange.pcu
CompileInterface Evolution.pas
EndCompileFile Evolution.pas
SemanticTreeConversion Optimizer
CodeGeneration Evolution.exe
CompilationFinished Evolution.pas
Ready

Error[0]: Внутренняя ошибка компилятора в модуле [pabcnetc.exe] :'System.Exception: System.ArgumentNullException: Значение не может быть неопределенным.
Имя параметра: key
в System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
в System.Collections.Generic.Dictionary`2.ContainsKey(TKey key)
в PascalABCCompiler.NETGenerator.ILConverter.ConvertFromTree(IProgramNode p, String TargetFileName, String SourceFileName, CompilerOptions options, String[] ResourceFiles)
в PascalABCCompiler.Compiler.Compile()'
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2016, 18:14
Ответы с готовыми решениями:

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

Внутренняя ошибка компилятора в модуле
Хелп ребята, при компиляции любого модуля выдает: 13.09.2012 16:11:51 PascalABCCompiler.Core...

Создание модуля (Внутренняя ошибка компилятора)
вот код UNIT read; interface var STR:STRING; mass:array of char; procedure...

Внутренняя ошибка компилятора в модуле [pabcnetc.exe]
Внутренняя ошибка компилятора в модуле :'System.Exception: System.IndexOutOfRangeException: Индекс...

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
33022 / 21323 / 8185
Регистрация: 22.10.2011
Сообщений: 36,624
Записей в блоге: 9
06.04.2016, 18:22 2
{var}.Trunc заменил на Trunc({var}), нормально все завелось, отработало даже.

А на WDE компилируется и работает вообще без изменений.
0
0 / 0 / 0
Регистрация: 17.02.2016
Сообщений: 9
06.04.2016, 18:28  [ТС] 3
volvo, Странно, у меня ни в какую. Даже если везде поменять {var}.Trunc на Trunc({var}). А в проекте работает?
0
06.04.2016, 18:28
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.04.2016, 18:28
Помогаю со студенческими работами здесь

Ошибка компилятора
Здравствуйте. Компилятор говорит, что есть ошибка. В чем она? Как её обойти?

Внутренняя ошибка в файле компилятора
Здравствуйте, есть код: int main() { vector &lt;int&gt; d = { 3,8,9 }; vector &lt;int&gt; o = {4,7,5};...

Ошибка компилятора fatal error C1091: ограничение компилятора: длина строки превышает 65535 байт
Компилируя программу вот такой командой: cl /O2 /Oi /GL /EHsc /MD /Gy main.cpp И компилятор...

ASP: Response.Redirect - не работает, ошибка `500 - Внутренняя ошибка сервера'
Всем привет! Есть в ASP-сраничке такой код: Response.Redirect 'page1.asp?ReturnTo=page2.asp' ...

добавление записи происходит, но потом выдается ошибка 500 - внутренняя ошибка сервера
Есть АСП-скрипт, выполняющий добавление записи в бд. В конце скрипта стоит команда...

IIS- asp ошибка: HTTP 500.100 - Внутренняя ошибка сервера - ошибка ASP Internet Information Services
Привет! Конфигурация win2000pro sp2, стандартный IIS, IE 5. При попытке обратиться к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Интеграция Arduino и ChatGPT: Практическое руководство
InfoMaster 16.01.2025
В современную эпоху технологических инноваций интеграция искусственного интеллекта с микроконтроллерами открывает принципиально новые возможности для создания умных устройств и автоматизированных. . .
Как создать робота, управляемого ChatGPT
InfoMaster 16.01.2025
Концепция проекта В современную эпоху искусственный интеллект и робототехника становятся все более доступными для энтузиастов и разработчиков. Создание роботизированной руки, управляемой ChatGPT,. . .
Как создать ChatGPT бота в Telegram на Python
InfoMaster 16.01.2025
В современном мире технологии искусственного интеллекта становятся все более доступными для разработчиков, открывая новые возможности для создания умных и интерактивных приложений. Одним из самых. . .
Машинное обучение с помощью Python
InfoMaster 16.01.2025
Машинное обучение стало неотъемлемой частью современных технологий, позволяя компьютерам учиться на основе данных и принимать решения без явного программирования. В сочетании с языком. . .
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru