Ошибки PascalABC.NET

Здравствуйте! Дело в том, что при написании программ я сталкиваюсь с такой проблемой: при нажатии комбинации Ctrl+Shift+F нижний комментарий пропадает. Пример ниже:

{проверка работы}
begin
  var a := ReadInteger();
  Writeln(a - 1);
end.
{если набрать комбинацию ctrl+shift+f, то данный комментарий исчезнет}
2 лайка

A post was merged into an existing topic: Замечания и предложения

Program pr2_1;

var

y,a,x,e: real;

begin

writeln(‘Vvedite a,x,e’);

readln(a,x,e);

if (x>-1) and (A<15) then

y:=A/(x+1)

else

if (x<-2) or (A>3) then

y:=A*exp

else

y:=125,4

writeln(y);

end.

Program1.pas(13,7): Встречено ‘,’, а ожидалось ‘;’

помогите

Правильный код:

begin var a, x, e: double;

writeln(‘Введите a,x,e’); readln(a, x, e);

var y: double; if (x > -1) and (a < 15) then y := a / (x + 1) else if (x < -2) or (a > 3) then y := a * e else y := 125.4;

writeln(y); end.

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

1 лайк

В WDE не работает Assert. Это так и должно быть?

не знаю Ошибка это или нет (прошу пояснить) … замечено что при попытке сделать аналог оператора с# using

uses
  system.IO;

procedure Save2File(fn: string);
begin
    var fs: Stream := new System.IO.FileStream(fn, FileMode.Create, FileAccess.Write, FileShare.Read);
    try 
      fs.WriteByte(0);
    finally 
      if fs <> nil then
        fs.Dispose; //IDisposable
    end;
end;

begin
  Save2File('test');
end.

при просмотре с помощью ILSpy видим следующий код:

	public static void Save2File(string fn)
		{
			Stream stream = new FileStream(fn, FileMode.Create, FileAccess.Write, FileShare.Read);
			try
			{
				stream.WriteByte(0);
				bool flag = true;
				throw new Exception();
			}
			catch (Exception)
			{
				if (stream != null)
				{
					stream.Dispose();
				}
				bool flag;
				if (!flag)
				{
					throw;
				}
			}
		}

хотя вроде должно было получиться:

	public static void Save2File(string fn)
		{
			Stream stream = new FileStream(fn, FileMode.Create, FileAccess.Write, FileShare.Read);
			try
			{
				stream.WriteByte(0);
			}
			finally
			{
				if (stream != null)
				{
					stream.Dispose();
				}
			}
		}

или в идеале :slight_smile:

	public static void Save2File(string fn)
		{
			using (Stream stream = new FileStream(fn, FileMode.Create, FileAccess.Write, FileShare.Read))
			{
				stream.WriteByte(0);
			}
		}

Ну, а в чем ошибка-то?

для чего нужен “лишний код?”

bool flag = true; throw new Exception();

и

bool flag; if (!flag) { throw; }

ну этот код реализует finally

сборка 1052 баг: при переименовании модуля с формой:

если Unit открыт в редакторе, то внутри модуля меняется имя модуля и НЕ меняется имя модуля в {$region FormDesigner}

если Unit НЕ открыт в редакторе, то внутри модуля НЕ меняется имя модуля и меняется имя модуля в {$region FormDesigner}

и ещё при изменении имени формы файлы со старым именем НЕ удаляются

Что я делаю не так? Программа пропускает вторую строковую переменную постоянно http://1drv.ms/1GEtSoT

Для каждой строки пользуйтесь readln

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

Приведите код здесь не в виде картинки, а в виде текста.

Напишите readln(a); readln(b); readln©;

И проверьте

сборка 1052:

uses System.Collections;
type
  Base = class  
    procedure VirtProc; virtual; begin end;
  end;
  Base2 = class(Base)
    procedure VirtProc; override; begin writeln('Derived'); end;
  end; 

  AbsBase = abstract class  
    procedure VirtProc; virtual; begin end;
  end;
  AbsBase2 = class(AbsBase)
    procedure VirtProc; override; begin writeln('Derived'); end; //Ошибка компиляции:Нет метода для переопределения
  end; 

begin
end.

да я сразу так и попробовал. ошибка та же была. после перезагрузки пк всё заработало)

Всем привет! Столкнулся с проблемой, открывая примеры на сайте http://pascalabc.net/primeri-programm/programmi-i-algoritmi-dlya-nachinaiuschich В разделе “Матрицы”, открываю любую программу и пишет ошибку:

Program1.pas(1) : Модуль ‘MatrixLib’ не найден.

помогите пожалуйста

подскажите как решить проблему: компилирую программу, запускаю. она запускается. запускаю второй раз тот же код выдает ошибку "Не возможно получить доступ к файлу ***.exe" помогает только удаление файл

Может антивирус блокирует exe-шник?