В панели навигации по коду отсутствуют возвращаемые типы для функций.
При запуске программы без связи с оболочкой (Shift+F9) пишет: ProgrammRunner.exe - .NET Framework Initialization Error Unable to find a version of the runtime to run this application. Что делать?
ОС Windows XP (SP3) NET Framework 4
Попробуйте перекомпилировать файл ProgrammRunner.pas и скопировать его в Program Files \PascalABC.NET
ProgrammRunner.pas (608 Байт)
Спасибо
reset(storage.savefile);
read(storage.savefile, storage.playername);
Компилятор выдаёт ошибку “Нельзя считывать данные этого типа”, курсор останавливается на второй строке перед “savefile”. savefile - бестиповой файл, playername - строка (оба статические). Вчера нормально компилировалось, сегодня сделал несколько изменений в совсем другом модуле - и вот результат. [скриншот][1] UPD: обновил паскаль, проблема всё ещё появляется UPD2: от правки к правке проблема то исчезает, то появляется! [1]: http://storage1.static.itmages.ru/i/15/0503/h_1430644575_1261411_476b672d50.png
playername длинная строка? хотелось бы увидеть хотя бы описание класса storage
В форме ограничение на неё не более 255 символов, по умолчанию строка из 15 символов. Класс storage описан в этом модуле (Dropbox) (сильно ногами не пинайте, учился и учусь сам)
Ошибка в дебагере: Не показывает значения полей объектов, передаваемых как var параметры.
Со стандартными типами всё правильно.
А вот с пользовательскими уже возникает проблема.
Создаю модуль для длинной арифметики. В цикле идёт перебор делителей для числа. При достижении делителя числа из диапазона 17…41 (всегда по-разному, дальше 41 не заходил) вылезает ошибка, которая при делении вне цикла не вылезает.
Доходит до какой-то границы и вылезает ошибка Причём в функции деления стоит обнуление (nil на все локальные динамические массивы для этой функции) в разделе finally, но срабатывает оно только пару раз в начале цикла.
Делал так:
Результат тот же: ошибка.
Думал на утечки памяти, поэтому после деления высвобождал память использованных временных массивов.
Сделал так:
Исключение не обрабатывается, вылезает та же ошибка в окошке.
А вот ещё: В другом цикле подошли значения X и Y, которые нужно вычесть друг из друга. При вычитании выдаёт ошибку неверной индексации. Если те же параметры написать вне цикла, отдельно, то ошибок никаких нет.
[Все операторы писались специально для длинной арифметики, и очень строго проверялись на наличие ошибок]
Есть идеи?
Код выложите полный
Там полторы тысячи строк.
UPD: отправил в лс
Добрый день. При выполнении простенького задания столкнулся с проблемой. Вот код
var
i,k: integer;
x1, x2, n: real;
mass_x: array of real;
begin
write('x1= ');read(x1);writeln();
write('x2= ');read(x2);writeln();
write('Шаг= ');read(n);writeln();
k := 0;
if x2>x1 then
k:=round((x2-x1)/n)
else k:=round((x1-x2)/n);
SetLength(mass_x, k + 1);
for i := 0 to k do
begin
mass_x[i] := x1;
write('mass_x[',i,']= ', mass_x[i]);writeln;
if x2>x1 then
x1 := x1 + n
else x1 := x1 - n;
end;
end.
Если х1 задать -1 а х2=1, а шаг сделать 0.1 то там где должен быть 0 почему то получается вот эта штука: -1.38777878078145E-16. Тот же эффект и при x1=1, x2=-1
Однако если в переменной n указать целое число, то ноль нормально записывается как и должен. Помогите в решении вопроса =)
У вас не только вместо 0 число -1.38777878078145E-16(Число близко к нулю). И вместо 0.1 число 0.099999999999999999. О вещественных числах,их представлении,погрешности и точности можно почитать здесь: https://sites.google.com/site/ltwood/projects/numpro/float
Я нашёл и исправил ошибку в алгоритме деления, теперь всё работает.
исправлено
исправлено
Во время компилирования данного кода происходит внутренняя ошибка компиляции. Почему?
begin
var a := new System.Collections.Generic.Dictionary<string, integer>;
a.Add('a', 1);
a.Add('b', 2);
a.Add('c', 3);
foreach var x in a.Keys do
writeln(x, a[x]);
end.
все, поняла в чем ошибка) Давно Паскаль не обновляла. Обновила и все заработало)))
Можно писать так
Я, кстати, сегодня на последнем Паскале несколько раз пробовал foreach по Dictionary, ни разу не получилось без указания типа для переменной (KeyValuePair)