Меню для готовой программы, как совместить CRT и GraphABC - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Есть готовая программа, которая берет 20 рандомных точек, из этих двадцати выбирает три так, чтобы треугольник, образованный ими, имел внутри себя максимальное возможное количество точек. Я показа преподователю, но он говорит сделай меню, чтобы точки задавалисьн е рандомно, а пользователь выбирал, как задать, самому с клавиатуры, или из файла, и если из файла пусть пользователь выбирает название файла.С выводом тоже, чтобы спросили у пользователя, сохранять в файл или нет результат. Вот программа

Однако

Для создания меню я использую модуль crt, но он вместе с GraphABC странно работает.Я набросал примерную программу меню, но при добавлении туда модуля GraphABC ничего не работает, открывается графическое окно и все ломается. Подскажите шо делать и по возможности как ввести двумерный массив x y из файла и клавиатуры. Вот набросок
у меня специфические кливиши стрелок и ентера, поэтому у себя замените 38 40 13 на соответсвующие своим

Решение задачи: «Меню для готовой программы, как совместить CRT и GraphABC»

textual
Листинг программы
var m:array[1..n] of point;
    imn,jmn,kmn,kv,kn,mn,w:integer;
    s1,s2:string;
    f:text;//добавить
begin
writeln('Выберите способ задания точек');
writeln('1-Случайно');
writeln('2-С клавиатуры');
writeln('3-Из файла');
repeat
readln(w);
until w in [1..3];
case w of
1:begin
  randomize;
  for var i:=1 to n do
   begin
    m[i].x:=random(xc div 5)-(xc div 10);
    m[i].y:=random(yc div 5)-(yc div 10);
   end;
  end;
2:begin
  writeln('Введите координаты ',n,' точек х от -42 до 42, y от -24 до 24');
  for var i:=1 to n do
   begin
    readln(m[i].x);
    readln(m[i].y);
   end; 
  end; 
3:begin
  assign(f,'koord.txt');
  reset(f);
  for var i:=1 to n do
  read(f,m[i].x,m[i].y);
  close(f);
  end;
  
 end; 
clearwindow;

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

  1. Объявлены переменные:
    • m: массив из n точек
    • imn, jmn, kmn, kv, kn, mn: целочисленные переменные для обозначения координат
    • s1, s2: строковые переменные
    • f: текстовый файл для чтения координат из файла
  2. Выводится сообщение с предложением выбрать способ задания точек
  3. Пользователь вводит число от 1 до 3 для выбора способа задания точек
  4. В зависимости от выбранного способа задания точек выполняются соответствующие действия:
    • Если выбран случайный способ (w = 1), то для каждой точки в массиве m случайным образом генерируются координаты
    • Если выбран способ ввода с клавиатуры (w = 2), то для каждой точки в массиве m пользователю предлагается ввести координаты
    • Если выбран способ чтения из файла (w = 3), то координаты точек считываются из файла koord.txt в массив m
  5. Очищается графическое окно GraphABC
  6. Выполняется основной код программы, который не представлен в данном фрагменте
  7. Возможно, после выполнения основного кода программы, графическое окно GraphABC обновляется с новыми точками, но этот шаг не представлен в данном фрагменте
  8. Код завершается, и программа ожидает действия пользователя или продолжает выполнение в зависимости от условий программы

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


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

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

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