Найти координаты двух вершин квадрата - 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.

Объяснение кода листинга программы

  1. В начале кода используются две переменные типа file of integer - f и g. Они будут использоваться для записи и чтения чисел из файлов.
  2. Затем идет цикл repeat, который будет выполняться до тех пор, пока n (количество пар десятков чисел, которые нужно записать в файл) больше 1.
  3. Внутри цикла repeat происходит цикл for i:=1 до n do. Он выполняется n раз, где n - это значение переменной n. Внутри этого цикла происходит еще один цикл for j:=1 до 10 do. Он также выполняется 10 раз.
  4. Внутри первого цикла for i:=1 до n do происходит запись каждого из чисел от 1 до 10 в файл f. Это делается с помощью функции write и переменной a, которая генерируется случайным образом от 1 до 20.
  5. После окончания первого цикла for i:=1 до n do начинается второй цикл for j:=1 до 10 do. Он очень похож на первый, но вместо записи чисел от 1 до 10 в файл f, он записывает их в файл g.
  6. После окончания второго цикла for j:=1 до 10 do начинается третий цикл for j:=k+10 до k+19 do. Он также выполняется 10 раз и используется для записи чисел от k+10 до k+19 в файл g.
  7. После окончания третьего цикла for j:=k+10 до k+19 do начинается четвертый цикл for j:=k+5 до k+9 do. Он также выполняется 10 раз и используется для записи чисел от k+5 до k+9 в файл g.
  8. После окончания четвертого цикла for j:=k+5 до k+9 do начинается пятый цикл for j:=k+15 до k+19 do. Он также выполняется 10 раз и используется для записи чисел от k+15 до k+19 в файл g.
  9. После окончания пятого цикла for j:=k+15 до k+19 do происходит закрытие файла g с помощью функции close.
  10. Затем происходит чтение содержимого файла g в переменную a с помощью функции seek и функции read. Это будет повторяться до тех пор, пока не закончится содержимое файла.
  11. После окончания цикла while not eof(g) do происходит закрытие файла g с помощью функции close.
  12. Затем происходит чтение содержимого файла f в переменную a с помощью функции seek и функции read. Это будет повторяться до тех пор, пока не закончится содержимое файла.
  13. После окончания цикла while not eof(f) do происходит закрытие файла f с помощью функции close.
  14. Наконец, выводится сообщение 'Файл F:', а затем происходит чтение содержимого файла f в переменную a с помощью функции seek и функции read. Это будет повторяться до тех пор, пока не закончится содержимое файла.
  15. После окончания цикла while not eof(f) do происходит вывод сообщения 'Файл G:'.
  16. Затем происходит закрытие файла f с помощью функции close.
  17. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы