Школьники и типы
Когда учить школьников типам данных? Тем, что указываются явно?
В ряде языков явного описания типов нет вообще. В Python например:
a = 1 b = 2.0 c = True
Помимо автоматического выведения типов в Python - динамическая типизация: переменной можно присвоить значение любого типа, и ее тип поменяется.
Языки со статической типизацией, где тип определяется при описании переменной, существенно более эффективны. Однако автовыведение типа также очень удобно для начинающих:
var a := 1; var b := 2.0; var c := True;
и первые занятия основам алгоритмизации так и проходят: переменные описываются только так: без явных типов.
И вот наступает момент сказать правду :) У переменных можно указывать типы явно! В какой момент это сделать.
На наш взгляд - наиболее уместный момент для этого - рассмотрение логического типа boolean:
var a: integer; var b: real; var c: boolean;
И здесь сразу необходимо говорить, что тип у переменной - это навсегда - как группа крови. И переменным одного типа обычно нельзя присвоить значения другого типа. Всё это - нельзя:
a := b; a := c; b := c; c := a; c := b;
И только в одном случае можно:
b := a
Почему так строго? Чтобы исключить в дальнейшем ошибки во время выполнения - те, которые так часто проявляются в Python-программах.
Зачем нужно описание переменных с явным типом в PascalABC.NET? В первую очередь для лучшего понимания кода программы. Во вторую очередь - есть ряд ситуаций, когда без явного описания типа не обойтись:
var (a,b) := ReadInteger2; var min: integer; if a<b then min := a else min := b;
var x: integer; repeat x := ReadInteger; until x = 0;
Заключение. Явные типы для начинающих необязательно вводить сразу. Можно даже достаточно долго обходиться без них. Но наступает момент когда это необходимо. На наш взгляд, этот момент - введение типа данных boolean.