Графическое меню в паскале - Pascal ABC

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

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

Здравствуйте, помогите создать графическое меню в паскале, выбор пункта стрелочками, можно и мышкой.

Решение задачи: «Графическое меню в паскале»

textual
Листинг программы
uses crt;
{массив названий пунктов меню}
const vybor:array[1..7] of string=('1-Треугольник',
                                   '2-Прямоугольник',
                                   '3-Круг',
                                   '4-Куб',
                                   '5-Квадрат',
                                   '6-Ромб',
                                   '7-Выход');
procedure Menyu(var k:byte;kol:byte);
var kod: char;
    i:byte;
begin
clrscr;
k:=1;
gotoxy(1,1);
repeat
  for i:=1 to kol do
   begin
     if i=k then
      begin
         textbackground(2);
         textcolor(1);
      end
     else
      begin
         textbackground(7);
         textcolor(0)
      end;
     gotoxy(1,i);
     write(vybor[i]);
   end;
  writeln;
  textbackground(15);
  writeln('Выход из меню клавиша Spase');
  repeat
  kod:=readkey;
  until kod in [#32, #72, #80];
  case kod of
  #72: begin  {стрелка вверх}
       k:=k-1;
       if k=0 then k:=kol;{если верхний край, вниз}
       end;
  #80: begin  {стрелка вниз}
       k:=k+1;
       if k>kol then k:=1;{если нижний край, вверх}
       end;
  end;
 until kod=#32; {Enter -выход}
end;
Procedure Treugolnik;
var a,b,c,s,res:real;
 begin
    clrscr;
    write('Введите строну А: ');//qqq
    readln(a);
    write('Введите строну B: ');
    readln(b);
    write('Введите строну С: ');
    readln(c);
    s:= (a + b + c) / 2;
    res:= sqrt(s * (s - a) * (s - b) * (s - c)); //конечная Формула по которой мы узнали площадь треугольника.
    writeln('Площадь треугольника: ', res);
    readln;
 end;
 
 Procedure Preamougolnik;
 var a,b,res:real;
 begin
    clrscr;
    write('Введите строну А: ');
    readln(a);
    write('Введите строну B: ');
    readln(b);
    res:= a * b; //Формула получения площади прямоугольника
    writeln('Площадь прямоугольника: ', res);
    readln;
 end;
 Procedure Krug;
 var d,res:real;
 begin
    write('Введите диаметр круга: '); //Вводим диаметр круга
    readln(d);
    res:= pi * sqr(d) / 4; //ПИ , я ввел в начале программы в const , т.к. оно не изменяется.
    writeln('Площадь круга: ', res);
    readln;
 end;
 Procedure Kub;
 var a,res:real;
 begin
    clrscr;
    write('Введите ребро куба: ');
    readln(a);
    res:=a*a*a;
    writeln('Площадь куба: ', res);
    readln;
 end;
 Procedure Kvadrat;
 var a,res:real;
 begin
   clrscr;
   write('Введите сторону квадрата: ');
   readln(a);
   res:=a*a;
   writeln('Площадь квадрата: ', res);
   readln;
 end;
 Procedure Romb;
 var a,b:real;
 begin
  clrscr;
  write('Введите длину диагонали A: ');
  readln(a);
  write('Введите длину диагонали B: ');
  readln(b);
  writeln('Площадь ромба равна: ', a * b / 2:0:4);// цифры ограничивают вывод десятичных чисел
  readln;
 end;
var k:byte;
begin
 repeat
   Menyu(k,7);{выводим меню}
   case k of{выбираем стрелками действие}
   1:Treugolnik;
   2:Preamougolnik;
   3:Krug;
   4:Kub;
   5:Kvadrat;
   6:Romb;
   7:exit;
   end;
 until k=7;
end.

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

В данном коде представлен графический интерфейс для выбора геометрической фигуры и выполнения соответствующих вычислений.

  1. Переменная vybor содержит массив из 7 строк, представляющих названия пунктов меню. Каждый пункт соответствует определенной геометрической фигуре.
  2. Переменная k используется в функции Menyu для отслеживания текущего выбранного пункта меню.
  3. В функции Menyu происходит чтение координат с клавиатуры и обработка этих координат в соответствии с выбранным пунктом меню.
  4. В функции Treugolnik происходит ввод значений сторон треугольника, вычисление площади и вывод результата.
  5. В функции Preamougolnik происходит ввод значений сторон прямоугольника, вычисление площади и вывод результата.
  6. В функции Krug происходит ввод диаметра круга, вычисление площади и вывод результата.
  7. В функции Kub происходит ввод ребра куба, вычисление площади и вывод результата.
  8. В функции Kvadrat происходит ввод стороны квадрата, вычисление площади и вывод результата.
  9. В функции Romb происходит ввод длин диагоналей ромба, вычисление площади и вывод результата. При выборе пункта меню 7 происходит выход из программы.

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

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