Ошибки в папке Samples и Справке

Большое спасибо за ответ!

c:\PABCWork.NET\Samples!NewExecutors\файлы1

uses Исполнители;

begin
  var Файл1 := Файл.Новый;
  var Файл2 := Файл.Новый;
  Файл1.ОткрытьНаЧтение('текст.txt');
  Файл2.ОткрытьНаЗапись('текст2.txt');
  while not Файл1.КонецФайла do
  begin
    var строка := Файл1.ПрочитатьСтроку;
    Файл2.Записать(строка);
  end;
  Файл1.Закрыть;
  Файл2.Закрыть;
  
  Файл2.ВывестиСодержимое;
 
end.  

Файлы1.pas(16) : Неверное количество параметров процедуры .

реализация в модуле:

///- Метод Файл.ВывестиСодержимое
  /// Выводит содержимое файла
    procedure ВывестиСодержимое(имяфайла: строковое);
    begin
      if (State<>FileState.Closed) and (f.Name.ToLower=имяфайла.ToLower) then
        Println('Ошибка: Содержимое можно вывести только у закрытого файла')
      else 
      begin
        WritelnFormat('Содержимое файла {0}:',имяфайла);
        try
          ReadLines(имяфайла).Println(NewLine);
        except
          WritelnFormat('Файл {0}: отсутствует на диске',имяфайла);
        end;
      end;  

Работает верно только как Файл2[или Файл1].ВывестиСодержимое('текст2[или текст].txt');

c:\PABCWork.NET\Samples!Tutorial\04_Graphics\Gr5

// Графика. Pie
uses GraphABC;

const r = 200;

begin
  Window.Title := 'Круговая гистограмма';
  var x := Window.Center.X;
  var y := Window.Center.Y;
  Brush.Color := clRandom;
  Pie(x,y,r,0,30);  
  Brush.Color := clRandom;
  Pie(x,y,r,30,110);  
  Brush.Color := clRandom;
  Pie(x,y,r,110,160);  
  Brush.Color := clRandom;
  Pie(x,y,r,160,280);  
  Brush.Color := clRandom;
  Pie(x,y,r,280,360);  
end.  

Обычно гистограммами называют данные, расположенные в строках и столбцах


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

c:\PABCWork.NET\Samples!Tutorial\04_Graphics\Gr7

// Графика. Сохраниение изображения графического окна в файл и загрузка из файла 
uses GraphABC;

const 
  delay = 500;
  filename = 'GraphWindow.bmp';

begin
  Window.Title := 'Window.Save и Window.Load';
  SetWindowSize(320,240);
  
  for var x:=0 to Window.Width - 1 do
  for var y:=0 to Window.Height - 1 do
    SetPixel(x,y,RGB(x-2*y,y+x,y-2*x));
  
  Window.Save(filename);
  for var i := 1 to 5 do
  begin
    Window.Clear;
    Sleep(delay);
    Window.Load(filename);
    Sleep(delay);
  end;
end.  

Опечатка : Сохранение изображения графического окна в файл и загрузка из файла

c:\PABCWork.NET\Samples!Tutorial\04_Graphics\GrAnim2
строка 14 // Перерисовываем окно из внеэранного буфера
Опечатка: Внеэкранного

c:\PABCWork.NET\Samples!Tutorial\11_Enums\ Enum2 // ѕеречислимый тип uses System;

    type Months = (January,February,March,April,May,June,July,August,September,October,November,December);

    begin
      var t: &Type := typeof(Months);
      var names: array of string := Enum.GetNames(t);
      writeln('÷икл по именам перечислимого типа');
      foreach name: string in names do
        write(name,' ');
      writeln; writeln;
      
      var v: &Array := Enum.GetValues(t);
      var mm: array of Months := new Months[v.Length];
      writeln('÷икл по массиву всех значений перечислимого типа');
      for var i:=0 to v.Length-1 do
        mm[i] := Months(v.GetValue(i));
         
      for var i:=0 to mm.Length-1 do
        write(mm[i],' ');    
    end.  
  1. // ѕеречислимый тип - перечислимый тип
  2. ÷икл по именам - цикл по именам
  3. ÷икл по массиву - цикл по массиву
    Не у одного меня такое
    Ошибка кодировки в Samples

c:\PABCWork.NET\Samples!Tutorial\12_Files\Text1

// Программа, выводящая текст из своего файла
var 
  f: Text;

begin
  assign(f,'Text1.pas');
  reset(f);
  while not eof(f) do
  begin
    var s: string;
    readln(f,s);
    writeln(s);
  end;
  close(f);
end.

В окне вывода комментарий
// Программа, выводящая текст из своего файла
Ошибка в кодировке. Использует CP1251.

c:\PABCWork.NET\Samples!Tutorial\13_Pointers\Pointer3

writeln('Значение в динамичесской памяти = ',p^);
Исправить на: динамической.

c:\PABCWork.NET\Samples!Tutorial\13_Pointers\ProcPointer2

writeln('Содержимое массива после умножения его элеметов на 2: ');

исправить на: элементов

@developer46 то что вы делаете - это прекрасно. Но мне кажется - это всё тут просто потеряется. Сделайте лучше пулл-реквест на гитхабе. Я могу объяснить всё в подробностях + у гитхаба - прекрасные туториалы.

Нет, не потеряется. Мы это всё отслеживаем. От пулл реквеста конечно не откажемся

@admin На странице pascalabcnet.github.io в разделе информации для учителей заметил опечатку: var x вместо var i.

3. Цикл foreach по индексам

foreach var x in a.Indices do
  a[i] += 2;

Еще чуть ниже по тексту:

Здесь следует обратить внимание, что этот алгоритм может быть легко модифицирован в алгоритм нахождения суммы элементов по условию: например, всех чётных элементов:

begin
  var a := ArrRandomInteger(10);
  a.Println; 
  var sum := 0;
  foreach var x in a do
    if x.IsEven then
      sum += x;
  Print(sum);    
end.

Мне кажется, в данном контексте корректнее было бы использовать формулировку “всех чётных значений элементов”.

Опечатку исправил.

Слово “значение” добавлять бы не стал - это излишнее усложнение фразы. Погуглил - очень часто говорят “Чётные элементы массива”

“Чётные элементы массива” можно понять как эл-ты массива с четными номерами (индексами). Там, кстати, ниже идет именно такой пример, но иначе сформулированный.

Возможно это только ограниченная часть интернета, которую видел я, но когда говорят “элементы массива”, не добавляя слово “индексы” или “значения” - всегда имеют в виду значения. Ну, не считая случая с контекстом из предыдущего предложения в том же абзаце.

Я вот школьникам собираюсь так излагать:

В задачах, связанных с индексами массивов очень важно определить, о чем идет речь – о номере элемента или о его индексе в массиве. Лишь для статического массива с нижней границей, равной 1, этой проблемы не существует. Но если массив динамический, а в задаче предлагается определить, какой из элементов массива имеет максимальное значение, что имеется в виду? Какой элемент по порядку или с каким индексом?

Я понимаю, что описанное несколько не в поднятую тему, но это еще один аспект нечеткой постановки вопроса, когда речь идет о школьных задачах, зачастую ориентированных на статические массивы. Формулировка по типу “Найти сумму нечетных элементов последовательности” ближе к пониманию нечетных по значению, поскольку в последовательностях намного реже спрашивают о номерах элементов. “Найти сумму нечетных элементов массива”, как и “Найти сумму нечетных элементов” - эта фраза несет неоднозначность и я бы не стал ее рекомендовать в таком виде в заданиях.

2 лайка

Полностью согласен. Только в приведенной вами цитате (видимо, из книги) я бы уточнил первое предложение (там, кстати, еще запятая пропущена):

В задачах, связанных с индексами массивов[,] очень важно определить, о чем идет речь – о порядковом номере элемента или о его индексе в массиве.

1 лайк

Это будущая книга, текст сырой, невычитанный. Спасибо за поправки.

У меня такой проблемы при изложении нет. Я говорю “элемент и его индекс” - и становится понятно, что элемент - это уж точно не его индекс.

Это как Иванов и его номер в очереди. Странно говорить “Значение фамилии Иванова” - обычно всё же говорят “Иванов”

1 лайк

Ну зачем утрировать? Я не говорил о чьих-то проблемах при изложении вообще, а всего лишь обратил ваше внимание на некоторую, на мой взгляд, неоднозначность конкретной формулировки в конкретном контексте. Впрочем, дело ваше, я дальше настаивать не собираюсь.