<em>// PascalABC.NET 3.3, сборка 1555 от 21.10.2017</em> <em>// Внимание! Если программа не работает, обновите версию!</em>
begin var (p,q,s):=(1,2,0); var k:=0; Write('(1,5) '); for var i:=3 to 1000 do begin var (flag,j,r):=(True,2,Round(Sqrt(i))); while flag and (j<=r) do if i mod j = 0 then flag:=false else j+=1; if flag then begin (p,q,s):=(q,s,i); if q-p=4 then Write('(',p,',',q,') ') else if s-p=4 then Write('(',p,',',s,') ') end end end.
Вводы и выводы бывают нескольких "видов". Есть простой, к примеру, и с переводом строки. Они различаются тем, как мы будем читать. 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 и все. Ну и естественно, не путаем две переменные ввода и вывода. Вот простые примеры