mpeg писал(а):Интерфейс я так понимаю это сложная абстракция внешность которой есть лишь одно из её свойств.
Внешность тут ни при чём. Интерфейс - это способ взаимодействия. Погугли, а ещё лучше википедируй это слово и всё поймёшь.
Добавлено спустя 13 минут 58 секунд:Распечатал экземпляр себе на принтере. Так как собираюсь печатать для учащихся, сел за книгу с карандашиком. Внимательно прочитал и пометил первые десять глав. Пишу тут, чтобы по спорным вопросам была дискуссия, а так же, чтобы указать на имеющиеся спорные моменты тем, кто уже читает.
У меня распечатана самая свежая версия (спасибо автору). Комментирую я её, но открыл имеющуюся на сайте в данный момент и смотрю, чтобы в ней имелись те же самые моменты.
И страницы я указываю из версии с сайта:
http://oleg-derevenets.narod.ru/Pesni_o_Paskale_2012-04-19.pdfИтак, первые 10 глав.
Глава 2 страница 25Такой файл называют исходным текстом или, на жаргоне программистов, – «исходником», «сырцом».
По данному Вами обещанию в первой главе
По ходу изложения я буду переводить попадающиеся там и сям английские слова, и пояснять их.
стоит объяснить "сырца", что он от source - т.е. "исходник" по-английски. Ну и плюс это, конечно, игра слов "сырец" и русское слово и тоже относится к теме Но, согласитесь, в отличие от двоичного кода, здесь чувствуется возможность что-то понять.
Шестнадцатиричного. Или стоит объяснить про двоичный. Вот на следующей странице:
Человек и компьютер «говорят» на разных языках. Процессор компьютера «понимает» лишь язык двоичных кодов, в котором трудно разобраться человеку.
Нет в главе ничего про двоичные коды. Есть только скриншот с шестнадцатиричными.
Добавлено спустя 17 минут 47 секунд:Глава 3 страницы 29-30Маркер, мигающий после угловой скобки, предлагает вам ввести какую либо из команд операционной системы. Таких команд насчитывается несколько десятков, их полное описание можно найти в справке по MS-Windows.
Команда help выводит список команд с кратким описанием. Команда help <имя команды> или <имя команды> /? выводит подробное описание команды <имя команды>...Напечатайте с позиции маркера слово DIR...
....При желании повторите команду DIR еще пару раз. А теперь введите команду CLS (очистка экрана)....
Раз мы в консоли, то стоит пояснить насчёт что такое директория (Directory) = папка (Folder) = DIR которое видно на скриншоте <DIR>
CLS=CLear Screen - это опять в первую главу к Вашему обещанию пояснять такие вещи.
Добавлено спустя 4 минуты 33 секунды:Глава 5 страница 41Итак, слова BEGIN и END указывают компилятору начало и конец программы. Их применяют и в иных случаях, но всегда парно, как скобки в математике.
Это не так. case, try, record и т.п. закрываются end без begin- страница 43 и 45
Длина строки ограничена – не более 255 знаков (включая пробелы).
Строковая константа – это последовательность символов, заключенная в апострофы. Константа может содержать не более 255 символов.
Нет. На всякий случай (мало ли что ), только что вывел на экран writeln('111111111111111111111.....'); - 400 символов. Скомпилировалось без проблем, запустилось и распечаталось все 400.
Если имеется ввиду возможность в IDE указать столько символов в одну строчку, то это нужно явно указать, иначе вводите в заблуждение.
- страница 45
А слабо? В)
Тут вопрос спорный стоит или не стоит давать это задание до 7 главы, где про точку с запятой идёт столь подробное рассуждение.
Добавлено спустя 36 минут 4 секунды:Глава 7 страница 53Вот строгое определение алгоритма, запишите: «Алгоритм – это точное предписание исполнителю совершить определенную последовательность действий для достижения поставленной цели за конечное число шагов».
Думаю данную фразу стоить построить немного в другом ключе. Как минимум убрать выделенное.
Анализу вопроса "что есть алгоритм?" посвящена целая глава в классическом труде Кнута "Искусство программирования". Одной фразы для строгого определения как минимум не достаточно, а как максимум открываю книгу и привожу цитату из соответствующей главы:
Алгоритм - это не просто набор конечного числа правил, задающих последовательность выполнения операций для решения задачи определённого типа.
sad, but true
Сделаем скидку на то, что содержание матана в книгах Кнута превышает все критические несовместимые с жизнью школьников дозы, поэтому Ваше определение вполне подходит и описывает сущность алгоритма, но фразу "Вот строгое определение алгоритма" точно стоит убрать
Добавлено спустя 28 минут 23 секунды:Глава 8 страницы 56-57...длинный прочерк я обозначил словом Line – «линия».
Опять спорный вопрос. Стоит ли называть так? Ведь Line - процедура рисование линии. Я вижу, что позже Вы предложили определять это как CLine, но всё же....- страница 58
Идентификатор начинают с буквы, а подчеркивание тоже считается буквой.
Мне кажется стоит написать так: Идентификатор НЕ начинают с цифры Изобретая имена, мы будем придерживаться некоторой системы с тем, чтобы меньше путаться в своих придумках. Так, имена констант условимся начинать с латинской буквы «C» (например, CLine).
Мне кажется стоит хоть пару слов о вариантах. Например, иногда константы, чтобы сразу отличать от переменных пишутся БОЛЬШИМИ БУКВАМИ- страница 59
....«укладывать» в переменную данные и многократно извлекать....
....единожды положенное в переменную можно извлекать многократно, – этот «карман» никогда не опустеет!
Тут происходит установка несколько неправильного представления. Мне кажется, чтобы избежать проблем в дальнейшем понимании сути, стоит объяснить это немного в другом ключе: мы из "кармана" ничего не извлекаем. Мы просто смотрим что у нас в кармане и оперируем информацией о том, что увидели в этом кармане. Каждое такое объявление содержит два элемента – имя переменной и её тип, разделяемые двоеточием.
Слишком строго, причём эту строгую установку Вы уже в следующей главе разбиваете, указывая, что на самом деле можно указать не имя переменной, а имена переменных, разделённых запятыми.
В главе мы работаем с одной, поэтому не надо говорить про несколько переменных, но фразу просто нужно сделать менее строгой тут, и дать строгое в следующей главе, а тут сделать эту фразу как рекомендацию или объяснение, но не определение...Или это строка текста, пригодная лишь для вывода на экран?...
Опечатка? Или неочевидный пример? Со строками можно делать многое, причём часть этого "многого" делается уже в следующей главе - страница 59
Да так и назовем – Name, что значит «имя».
"значит" для программирования слишком многозначительно Лучше "переводится с английского как" - опять же отсылка к обещанию в первой главе - страница 61
.... константы не могут изменяться в ходе выполнения программы.
Не очевидно. Из главы это не следует и конкретно это нигде не сказано. Будут проблемы у читающего. Тем более, что без конкретного этого уточнения будут сбивать с толку некоторые фразы с 57 страницы, например:
...после изменения константы необходима повторная компиляция программы....
Вы знаете что такое константа, а вот человек первый раз сталкивается, тем более дальше идут переменные и мы спокойно присваиваем им значения.
Добавлено спустя 14 минут 34 секунды:Глава 9 страница 64...перекладывать из одного «кармана» в другой
Противоречие. "Перекладывание" - это перемещение, и в следующем предложении речь о копировании. И вообще сначала стоит указать не копирование из переменной в переменную, а присваивание переменной значения.
Т.е. до объяснения A := B; стоит объяснить A := 'Привет!'; и указать на отличие от констант.- страница 67
Типизированные константы
До или после стоит и про инициализацию переменных таким образом.
- Код: Выделить всё
var
s:string='Привет!';
Добавлено спустя 4 минуты 39 секунд:Глава 10 страница 69-70,71- Код: Выделить всё
IF условие THEN Оператор_1 ELSE Оператор_2
- Код: Выделить всё
if S = ’pascal’ then Writeln(’Проходите!’) else Writeln (’Стойте!’)
- Код: Выделить всё
if ’pascal’ = S
then Writeln(’Проходите!’)
else Writeln (’Стойте!’)
- Код: Выделить всё
IF условие THEN Оператор
В каждом примере в конце поставить ; чтобы сразу привыкал читатель к тому, то это один оператор.
Добавлено спустя 8 минут 15 секунд:Через пару дней будут следующие 10 глав
И ещё важное замечание по всем начальным главам. Предполагаю, что встречу сопротивление, но всё равно скажу.
У меня был опыт работы с детьми по паре других книжек. Оттуда я вынес, что как минимум на начальных этапах писать в учебнике так:
- Код: Выделить всё
const Name='Вася';
var a:string;
Большая ошибка. Потом приходится напоминать и по 100 раз повторять и исправлять вот такие ошибки:
- Код: Выделить всё
const Name='Вася';
const Name2='Петя';
var a,s:string;
var i:integer;
Как минимум в начальных главах, при знакомстве с этим, а ещё лучше во всём
учебнике писать так:
- Код: Выделить всё
const
Name='Вася';
var
a:string;
Так понятно, что указана
секция констант и
секция переменных.
С учебниками, где написано так, как я показал, подобных ошибок у учащихся не возникало ни разу.
ЗЫ
Прошу прощения за критику