Вам тоже большое спасибо за книгу. Как всем известно, сейчас карантин. И я как учёный - педагог, анализирую Вашу и другие книги, и сравниваю со своим учебником - черновиком, чтобы не было плагиат. Спасибо. На связи.
О большой книге. прошу посмотреть стр. 48. Вначале получаются две случайные целые число 373 и 321 как стороны прямоугольника. Тогда периметр её =2*(373+321)=1388, а внизу указано 239466 что является результатом 2*(373*321). Верно? Далее в стр. 231. s.LaseIndex, но по моему s.LastIndex. Верно?
Точно так же о периметрах в стр 49, в начале и в середине. Верно?
Верно. Там в программе была описка. Если программу саму загрузите, она все правильно выдаст.
Я рад, что в книге находятся какие-либо замечания, поскольку это означает ее внимательное прочтение. Конечно, со время выхода книги в языке появилось много изменений, поэтому в моих дальнейших планах через некоторое время сделать второе издание. Скорее всего, оно будет приурочено ко времени перевода ЕГЭ на компьютерную основу.
Да, здесь действительно y должно стоять, это описка. Вот только номер страницы 93, а не 95. Возможно, у Вас версия книги скачана очень давно, мы ее перевыкладывали в связи с исправлением замеченных ошибок и опечаток.
А вот насчет добавления +1 Вы ошибаетесь, потому что отсчет идет с нуля в цикле, а не с единицы. Запустите программу и убедитесь, что значения y формируются верно.
Спасибо.
Прочитал первую книгу из серии “выбор школьника”! Это отличная книга, которая оказалась невероятно полезной для такого “чайника” как я. Очень хорошая подача материала. Присутствует здоровый сарказм автора, что делает чтение книги интересным. Предыдущие книги слишком академичны и больше похожи на справочники, а тут иногда появляется литература Очень мне понравилась первая часть. Приступаю ко второй.
Книга: Осипов_PascalABC.NET выбор школьника ч2_2020_09.pdf стр.17
if k<min then
min:=k
else if k>max then {в книге ошибка}
max:=k
при малых значениях N приводит к неверным результатам. Может так:
if k<min then
min:=k;
if k>max then
max:=k
Он делает ровно то что вы ему приказали. Проблема только в логике программиста.
else
правильно, это оптимизация, но чтоб она работала - надо исправить инициализацию: Изначальные значения min
и max
должны быть первым сгенерированным числом.
Это изменение, кроме всего прочего, избавит код от 2 магических чисел: -100 и +100.
Спасибо, в исходниках поправил. В PDF исправление будут видно позднее (после перевыкладывания).
Осипов_PascalABC.NET Введение в современное программирование_2019.pdf стр. 75 Напечатано:
if not P then B;
If A then else B;
Надо :
if not P then B;
If P then else B;
Да, спасибо, это я еще раньше поправил - известная описка, - но перевыкладывать по каждой ошибке слишком трудоемко, если учесть, что в PDF нужно конвертировать из Word, а там криво конвертируется оглавление и каждый раз надо рубрикацию и иерархию руками делать.
Осипов_PascalABC.NET выбор школьника ч1_2020_09.pdf
Стр.15 книги
В последнем абзаце:
После школы на работу в нормальное место не возьмут, даже если если выпускник будет знать двадцать языков.
стр.20 книги
пример кода:
// и так тоже пишут комментарии,
// когда они не помещаются в строке
Может лучше оформить многострочным комментарием (и/или посвятить комментариям больше места):
begin
оператор 1;
оператор 2; // а вот так пишут комментарии
…
оператор n;
{ и так тоже пишут комментарии,
когда они не помещаются в строке }
end.
стр.23 книги
Может рассмотреть и такой вариант:
begin
writeln(' * ');
writeln(' *** ');
writeln(' * ');
writeln(' *** ');
writeln(' ***** ');
writeln(' ******* ');
writeln(' * ');
writeln(' *** ');
writeln(' ***** ');
writeln(' ******* ');
writeln(' ********* ');
writeln(' *********** ');
writeln(' * ');
writeln(' * ');
end.
Здесь читаемость кода зашкаливает… И детям нравится. И ошибку трудно допустить. И копирование вставка закрепляется.
стр.37 книги
Напечатано:
Имеется также кортежное присваивание . Список в скобках – это
есть и кортеж, но это материал второй части книги.
Должно быть:
Имеется также кортежное присваивание . Список в скобках – это
и есть кортеж, но это материал второй части книги.
стр.40 книги
стр. 52 книги
Напечатано:
var S :=Sqrt(p * (p - a) * (p - b) * (p - c));
(и результат: )
Введите координаты первой вершины: -5 -3
Введите координаты второй вершины: 0 -6.1
Введите координаты третьей вершины: 11 5
Периметр треугольника равен 39.3988, площадь 821.7082
Радиуc описанной окружности 0.5004
Радиуc вписанной окружности 41.7124
Должно быть:
var S :=Sqrt(p1 * (p1 - a) * (p1 - b) * (p1 - c));
Введите координаты первой вершины: -5 -3
Введите координаты второй вершины: 0 -6.1
Введите координаты третьей вершины: 11 5
Периметр треугольника равен 39.3988, площадь 44.8000
Радиуc описанной окружности 9.1774
Радиуc вписанной окружности 2.2742
Похоже, Вы повторили все замечания, которые однажды были сделаны и уже учтены в Word-варианте. А здесь они были утеряны во время сбоя.
Только начал читать книгу и наткнулся на вот такое:
Современный PascalABC.NET нацелен на создание небольших и средних программ-ных проектов, выигрывая у своего «старшего брата» – языка C# – по лаконичности записи программ и компактности инфраструктуры, создаваемой в процессе ком-пиляции. Так, при написании простой консольной программы на C# в Visual Studio 2017 создаётся 11 папок и 10 файлов, а в PascalABC.NET– 1 файл.
Но ведь это же принципиально разные вещи! Среда разработки VS — это одно. Для упомянутых небольших и средних программ она не нужна, достаточно любого нормального текстового редактора и консольного компилятора csc, который ставится вместе с .NET и mono. А сам язык C# — это совершенно другое:
using System;
namespace HelloWorld {
class Hello {
static void Main(string[] args) {
Console.WriteLine("Hello World!");
}
}
}
По идее достаточно это всё сохранить в файл hello.cs и скомпилировать csc. Код конечно чуток длиннее, чем на pABC, но незначительно.
Дальше странности не кончаются:
Вызывает удивление, что при наличии такой мощной современной системы программирования на базе языка Pascal, в учебных заведениях продолжают преподаваться устаревшие FreePascal …
Каким образом FreePascal устаревший? Стабильная версия 3.2.2 вышла в мае этого года, у pABC последняя версия вышла в апреле.