Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Стандартные средства

Автор: Poison 2.04.2004 18:52

К задаче небольшое дополнение - программу написать без использования встроенных средств языка. Все вроде есть, вот только не знаю что с Assign, Read & Write делать. Можно их как-то заменить?
Помогите, plz

Автор: Altair 2.04.2004 19:21

Ну дамаю, что замена Assign на аналогичную - это ищвращение,
ведь придется использовать прерывания.
А вот замена read и write -вещь реальная.
Только уточните, для чего вам эти процедуры (read - для ввода переменных в программу, или записи в файл, соответственно для чего write), тогда посмотрим, как их лучше заменить (К КАКОЙ задаче дополнение - не понятно !)

Автор: Poison 2.04.2004 21:02

Спасибо за оперативность smile.gif и давай на ты

Цитата
Только уточните, для чего вам эти процедуры (read - для ввода переменных в программу, или записи в файл, соответственно для чего write)


Программа - словарь, соответственно меню выводится Writeln и запрос - введите слово, описание; Read - считать поле записи. Надеюсь, понятно, потомо что у меня проще объяснить не получается.

Автор: zx1024 3.04.2004 3:36

Заменить на что?
Что не является "встроенным средством языка"?

Автор: Altair 3.04.2004 12:17

Итак процедура READ - считать поле записи ( пользователь вводит строку)

Код

Uses CRT;

{...}
procedure READ(var s:string);
var
kodklav:integer;
i:byte;   { счетчик, byte -что-бы экономить память }
begin
repeat
inc(i); {увеличиваем i}
kodklav:=readkey;  {здесь readkey - НЕ ВСТРОЕННОЕ СРЕДСТВО ЯЗЫКА,
                               т.к доступно только после USES CRT; }
s[i]:=CHR(kodklav); {начинаем с 1 эл-та строки}
until kodklav=13; { прекращаем, когда нажата ENTER }
s[0]:=CHR(i); { если вдруг это не будет работать, замени на такую  конструкцию:
for kodklav:=1 to i do s:=s+s[kodklav]  }
end;


Дальше я подумаю, как остальные сделать, а ты пока эту процедуру проверяй,
если будут ошибки -сразу пиши, я эту процедуру в окне ответа писал, но думаю, чот ошибок быть не должно.

А команда s[0]:=CHR(i) -нужна для указания длинны строки

Автор: Atos 3.04.2004 13:23

Насколько, я понял, нужны исходники Assign и т. п.? Вот часть файла system.pas (нашёл в файлах Virtual Pascal)


Прикрепленные файлы
Прикрепленный файл  sys.txt ( 12.85 килобайт ) Кол-во скачиваний: 374

Автор: Altair 3.04.2004 17:14

Atos, спасибо, исходник просто замечательный!
Poison, теперь осталось только вывод на экран сделать,
тогда в той процедуре, что выше я написал, можно добавить будет эхо на экран.

Автор: Poison 7.04.2004 12:41

Спасибо огромное!!
Только сегодня все закончила.
Assign просто СУПЕР, а в read, если кому интересно, CHR от kodklav лишний, но не помешает в следующей строке, и String'и у меня не из Integer'ов состоят.
Хотя главное - идея. Я б не скоро сама додумалась, если бы вообще додумалась.
Спасибо еще раз.

Автор: Altair 7.04.2004 13:02

Всегда рады помочь!
>>>Только сегодня все закончила
Ух, а я и не понял сначала!