Вводы и выводы бывают нескольких "видов". Есть простой, к примеру, и с переводом строки. Они различаются тем, как мы будем читать. 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 А второй 10 20 Что бы, кстати, при первом цифры не слипались, можно воспользоваться текстом. Изменим строчку write(a); на строчку write(a,' '); и тогда вывод будет таким 10 20 Файловый вывод подключается так же. Однако есть различие. Там надо использовать вместо reset - rewrite и все. Ну и естественно, не путаем две переменные ввода и вывода. Вот простые примеры
Подумайте чуть, ведь все просто. Есть массив, у него гдето есть середина, или точка симметрии. Она находится как (n div 2). Если массив четной длины, то он делится на 2 равные части, если нечетный - в середине остается один элемент, который ни с кем менять не надо. Сейчас смотрим элементы первой половины for i:=1 to n div 2 запоминаем их x:=a[i]; присваиваем им значения симметричных им элементов с конца a[i]:=a[n-i+1]; например при n=10 a[1]:=a[10-1+1]; А элементам в конце присваиваем значения запомненных первых элементов a[n-i+1]:=x; Все, поменяли.
Есть два куска программы.
a:=10;
b:=20;
write(a);
write(b);
И второй.
a:=10;
b:=20;
writeln(a);
writeln(b);
Они различаются лишь четырьмя буквами, но вывод первой будет
1020
А второй
10
20
Что бы, кстати, при первом цифры не слипались, можно воспользоваться текстом. Изменим строчку
write(a); на строчку write(a,' '); и тогда вывод будет таким
10 20
Файловый вывод подключается так же. Однако есть различие. Там надо использовать вместо reset - rewrite и все. Ну и естественно, не путаем две переменные ввода и вывода. Вот простые примеры
Сейчас смотрим элементы первой половины
for i:=1 to n div 2
запоминаем их x:=a[i];
присваиваем им значения симметричных им элементов с конца
a[i]:=a[n-i+1]; например при n=10 a[1]:=a[10-1+1];
А элементам в конце присваиваем значения запомненных первых элементов
a[n-i+1]:=x;
Все, поменяли.