Как Петя Бейсиков Тоню Соображалкину программировать учил
- Автор: Бруно Мартузан
- Жанр: Околокомпьютерная литература / Детская образовательная литература / Basic, Visual Basic, VB Script, VBA и т.п.
- Дата выхода: 1987
Читать книгу "Как Петя Бейсиков Тоню Соображалкину программировать учил"
ВВОД ХАРАКТЕРИСТИК УЧЕНИКОВ
— Я тоже так думаю. Посложнее было бы, если бы ты захотела вводить сведения, состоящие из неопределенного количества строк, например характеристику ученика. Тогда можно было бы поступить так. Сначала узнать у пользователя, сколько строк он собирается вводить. А потом написать цикл по строкам. Например, такой:
1500 PRINT «КОЛИЧЕСТВО СТРОК В ХАРАКТЕРИСТИКЕ» INPUT 2
1510 PRINT #F, N2
1520 FOR 1 = 1 TO N2
1530 PRINT «ВВЕДИТЕ»;l;«СТРОКУ» INPUT R¤
1540 PRINT #F,R¤
1550 NEXT I
1560 RETURN
Так можно было бы дополнить подпрограмму, начинающуюся в строке 1000. Возможен и другой вариант. Ты требуешь, чтобы в конце характеристики пользователь ввел что-нибудь такое, чего в характеристике заведомо не будет, например комбинацию символов «//» или «###» и тому подобное. В этом случае дополнение к подпрограмме могло бы иметь вид:
1500 PRINT «ВВОДИТЕ ХАРАКТЕРИСТИКУ»
1510 PRINT «КОНЕЦ ВВОДА //»
1520 INPUT R¤
1530 PRINT #F,R¤
1540 IF R¤<>«//» THEN 1520
1550 RETURN
Вот так и программируют ввод заранее неизвестного количества строк. Ты заметила, что в первом варианте количество строк я записал на диск?
— Заметила, заметила. Заметила и то, что ты косые черты записал на диск.
— Это для того, чтобы при считывании с диска понять, где кончается характеристика одного ученика и начинается фамилия другого ученика. Ведь на диск записываем только значения переменных, а смысл этих переменных там никак не отражается. Давай, изобразим содержание файла схематически: Сведения о первом ученике Сведения о втором ученике Фамиллия Имя Отчество Дата рождения Первая строка характеристики Вторая строка характеристики .. //
Как видишь, в конце характеристики я написал «//», а в конце файла, если помнишь, ставился символ «#». Выбор символов — дело вкуса, лишь бы не было путаницы.
— При считывании?
Файл состоит из единиц записи
— Так точно! Что ты на диске записала, то и надо будет считывать. Работая с файлом, нужно хорошо знать его структуру. Из чего он состоит, из каких единиц записи. Например, файл со сведениями об учениках FUCH6A состоит из фамилии первого ученика, его имени… и так далее. Все четыре строки символов, ничего не означающие для машины, но для нас имеющие смысл фамилии, имени, отчества и даты рождения, эти четыре строки, вместе взятые, и образуют единицу записи файла. Фактически работа ведется именно с этими единицами записи. Подпрограмма в строках 1000–1130 такую единицу записывает на диск, подпрограмма в строках 2000–2050 ее считывает. Если захочешь составить программу для печати, например, списка учеников, все равно нужно будет запрограммировать считывание целых единиц записи, хотя дату рождения и не собираешься в программе использовать. То, что ты будешь в программе использовать только фамилии и имена, ничего не означает. Изволь считывать всю единицу записи целиком.