Program1.pas(39) : Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Program1.pas(39) : Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла. () : Внутренняя ошибка компилятора в модуле [pabcnetc.exe] :'System.Exception: System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта. в PascalABCCompiler.TreeConverter.syntax_tree_visitor.find_operator(String name, expression_node left, expression_node right, location loc, Boolean no_search_in_extension_methods) в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(bin_expr _bin_expr) в PascalABCCompiler.TreeConverter.returner.visit(expression expr) в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(bin_expr _bin_expr) в PascalABCCompiler.TreeConverter.returner.visit(expression expr) в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(bin_expr _bin_expr) в PascalABCCompiler.TreeConverter.returner.visit(expression expr) в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(assign _assign) в PascalABCCompiler.TreeConverter.syntax_tree_visitor.convert_strong(statement st) в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(statement_list _statement_list) в PascalABCCompiler.TreeConverter.syntax_tree_visitor.convert_strong(statement st) в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(while_node _while_node) в PascalABCCompiler.TreeConverter.syntax_tree_visitor.convert_strong(statement st) в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(statement_list _statement_list) в PascalABCCompiler.TreeConverter.syntax_tree_visitor.convert_strong(statement st) в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit_program_code(statement_list program_code) в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(block _block) в PascalABCCompiler.TreeConverter.syntax_tree_visitor.visit(program_module _program_module) в PascalABCCompiler.TreeConverter.SyntaxTreeToSemanticTreeConverter.CompileInterface(compilation_unit SyntaxUnit, unit_node_list UsedUnits, List`1 ErrorsList, List`1 WarningsList, SyntaxError parser_error, Hashtable bad_nodes, using_namespace_list namespaces, Dictionary`2 docs, Boolean debug, Boolean debugging) в PascalABCCompiler.Compiler.CompileUnit(unit_node_list Units, unit_or_namespace SyntaxUsesUnit) в PascalABCCompiler.Compiler.Compile()'.
В чем проблема?

Решение задачи: «Program1.pas(39) : Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла»

textual
Листинг программы
Program Recur;
Var y0, y1, y, a, b: real;                      
    m,i: Integer;                   
Begin
WriteLn('Пользуясь рекуррентной формулой y(i)=cos(y(i-1))+sin*sin*(y(i-2))');
WriteLn('где i=2,3,4,...,m для заданного значения n вычислить y(m),');
WriteLn('если известны y(0), y(1).');
Write('Задайте значения y(0), y(1) -> ');
ReadLn(y0,y1);
Write('Задайте значение m (m>2)-> ');
ReadLn(m);
a:=y0;
b:=y1;
{Решение с использованием управляющей структуры While-Do}
y:=cos(b)+sqr(sin(a));
i:=3;
While i<=m Do 
 Begin
  a:=b;
  b:=y;
  y:=cos(b)+sqr(sin(a));
  i:=i+1;
 End;
WriteLn('While:  значение элемента последовательности y(',m,')=',y:0:2);
{Решение с использованием управляющей структуры Repeat-Until}
a:=y0;
b:=y1;
y:=cos(b)+sqr(sin(a));
i:=3;
Repeat
a:=b;
b:=y;
y:=cos(b)+sqr(sin(a));
i:=i+1;
Until i>m;
WriteLn('Repeat: значение элемента последовательности y(',m,')=',y:0:2);
{Решение с использованием управляющей структуры For-To-Do}
a:=y0;
b:=y1;
y:=cos(b)+sqr(sin(a));
For var  j:=3 To m Do
 Begin
  a:=b;
  b:=y;
  y:=cos(b)+sqr(sin(a));
 End;
WriteLn('For:    значение элемента последовательности y(',m,')=',y:0:2);
End.

Объяснение кода листинга программы

  1. Программа использует рекуррентную формулу для вычисления значений элементов последовательности y(i).
  2. Ввод значений начальных элементов y(0) и y(1).
  3. Ввод значения m, определяющего количество элементов последовательности.
  4. Вычисление начального значения y на основе y(0) и y(1).
  5. Использование цикла While-Do для вычисления последующих элементов последовательности.
  6. Использование цикла Repeat-Until для вычисления последующих элементов последовательности.
  7. Использование цикла For-To-Do для вычисления последующих элементов последовательности.
  8. Вывод значений последних вычисленных элементов последовательности для каждого из использованных циклов.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы