Вводы и выводы бывают нескольких "видов". Есть простой, к примеру, и с переводом строки. Они различаются тем, как мы будем читать. read(тут должна быть переменная, которую вы считываете). Тут считывается что-то, и затем можно дальше продолжать работать. А readln(тут должна быть переменная, которую вы считываете) уже после считывания переходит на следующую строку. Можно так же подключить файл. Это происходит посредством команд. assign(название текстовой переменной, затем через запятую тут должно быть название файла или путь к нему в кавычках). Затем надо сделать reset(название переменной, с которй связан был ввод); Это простые примеры. Теперь вывод. Тут в принципе, то же самое. write(переменная или текст в кавычках) просто выводит после места, где мы на вводе\выводе остановились, пишет то, что нужно. А есть writeln(). он делает то же самое, затем переходит на следующую строку. Обьясним в примерах. Различие write и writelnЕсть два куска программы.a:=10;b:=20;write(a);write(b);И второй.a:=10;b:=20;writeln(a);writeln(b);Они различаются лишь четырьмя буквами, но вывод первой будет1020А второй 1020Что бы, кстати, при первом способе цифры не слипались, можно воспользоваться текстом. Изменим строчкуwrite(a); на строчку write(a,' '); и тогда вывод будет таким10 20Файловый вывод подключается так же. Однако есть различие. Там надо использовать вместо reset - rewrite и все. Ну и естественно, не путаем две переменные ввода и вывода. Вот простые примеры