Найти координаты двух вершин квадрата - Turbo Pascal
Формулировка задачи:
1. На плоскости заданы координаты двух противоположных вершин квадрата. Необходимо найти координаты двух остальных его вершин.
2. Дан файл f , компоненты которого являются целыми числами. Никакая из компонент не равна нулю. Числа в файле идут в следующем порядке: десять положительных, десять отрицательных и т.д. Переписать компоненты файла f в файл g в следующем порядке: пять положительных, пять отрицательных и т.д.
Буду очень благодарен, не как не могу разобраться..Вообще забыл Pascal.
Решение задачи: «Найти координаты двух вершин квадрата»
textual
Листинг программы
uses crt; const r=20; var f,g:file of integer; n,i,j,a,k,p:integer; begin clrscr; randomize; assign(f,'filef'); rewrite(f); assign(g,'fileg'); rewrite(g); repeat write('Сколько пар десятков чисел записать в файл? n='); readln(n); until n>1; for i:=1 to n do begin for j:=1 to 10 do begin a:=random(20)+1; write(f,a); end; for j:=1 to 10 do begin a:=-random(20)-1; write(f,a); end; end; seek(f,0); writeln('Файл F:'); while not eof(f) do begin read(f,a); write(a:4); end; writeln; writeln; seek(f,0); for i:=1 to n do begin k:=r*(i-1); seek(f,k); for j:=k to k+4 do begin seek(f,j); read(f,a); write(g,a); end; for j:=k+10 to k+14 do begin seek(f,j); read(f,a); write(g,a); end; for j:=k+5 to k+9 do begin seek(f,j); read(f,a); write(g,a); end; for j:=k+15 to k+19 do begin seek(f,j); read(f,a); write(g,a); end; end; close(f); seek(g,0); writeln('Файл G:'); while not eof(g) do begin read(g,a); write(a:4); end; close(g); readln end.
Объяснение кода листинга программы
- В начале кода используются две переменные типа file of integer - f и g. Они будут использоваться для записи и чтения чисел из файлов.
- Затем идет цикл repeat, который будет выполняться до тех пор, пока n (количество пар десятков чисел, которые нужно записать в файл) больше 1.
- Внутри цикла repeat происходит цикл for i:=1 до n do. Он выполняется n раз, где n - это значение переменной n. Внутри этого цикла происходит еще один цикл for j:=1 до 10 do. Он также выполняется 10 раз.
- Внутри первого цикла for i:=1 до n do происходит запись каждого из чисел от 1 до 10 в файл f. Это делается с помощью функции write и переменной a, которая генерируется случайным образом от 1 до 20.
- После окончания первого цикла for i:=1 до n do начинается второй цикл for j:=1 до 10 do. Он очень похож на первый, но вместо записи чисел от 1 до 10 в файл f, он записывает их в файл g.
- После окончания второго цикла for j:=1 до 10 do начинается третий цикл for j:=k+10 до k+19 do. Он также выполняется 10 раз и используется для записи чисел от k+10 до k+19 в файл g.
- После окончания третьего цикла for j:=k+10 до k+19 do начинается четвертый цикл for j:=k+5 до k+9 do. Он также выполняется 10 раз и используется для записи чисел от k+5 до k+9 в файл g.
- После окончания четвертого цикла for j:=k+5 до k+9 do начинается пятый цикл for j:=k+15 до k+19 do. Он также выполняется 10 раз и используется для записи чисел от k+15 до k+19 в файл g.
- После окончания пятого цикла for j:=k+15 до k+19 do происходит закрытие файла g с помощью функции close.
- Затем происходит чтение содержимого файла g в переменную a с помощью функции seek и функции read. Это будет повторяться до тех пор, пока не закончится содержимое файла.
- После окончания цикла while not eof(g) do происходит закрытие файла g с помощью функции close.
- Затем происходит чтение содержимого файла f в переменную a с помощью функции seek и функции read. Это будет повторяться до тех пор, пока не закончится содержимое файла.
- После окончания цикла while not eof(f) do происходит закрытие файла f с помощью функции close.
- Наконец, выводится сообщение 'Файл F:', а затем происходит чтение содержимого файла f в переменную a с помощью функции seek и функции read. Это будет повторяться до тех пор, пока не закончится содержимое файла.
- После окончания цикла while not eof(f) do происходит вывод сообщения 'Файл G:'.
- Затем происходит закрытие файла f с помощью функции close.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д