Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
-19 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 72
1

Не работает выход из программы

27.05.2016, 15:47. Показов 436. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте подскажите плз. Есть код но выход не происходит сразу при нажатии Esc. Происходит через 'Для возврата в основное меню нажмите ENTER '. Как сделать правильно?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
program lab1;
uses Crt;
type mnozh = Array[1..20] of Char; 
 
procedure Sortirovka(var A: mnozh; const elemA: Integer);
var countA,countB,k: Integer;
var sim: char;
begin
for countA:=1 to elemA-1 do 
begin
k:=countA;
for countB:=countA+1 to elemA do
if A[countB]<A[k] then k:=countB;
sim:=A[countA];
A[countA]:=A[k];
A[k]:=sim;
end;
end;
 
procedure Vvod(var A:mnozh; var elemA:integer);
var countA,countB:integer;
var usl:Boolean;
begin
elemA:= 0;
while not EoLn do
begin
elemA:=elemA+1;
Read(A[elemA]);
end;
Sortirovka(A,elemA);
usl:=False;
countA:=1;
while countA<elemA do 
begin
if A[countA]=A[countA+1] then begin
usl:=True;
elemA:=elemA-1;
for countB:=countA+1 to elemA do
A[countB]:=A[countB+1];
end
else
countA:=countA+1;
end;
WriteLn;
if usl then Writeln('Повторно введенные элементы УДАЛЕНЫ из множества');
readln;
end;
 
procedure Klavishi;
begin
ClrScr;
WriteLn('Меню работы с множествами:');
WriteLn;
WriteLn('1 - Введите элементы множества A');
WriteLn;
WriteLn('Esc - выход из программы');
WriteLn;
end;
 
var elemA,elemB,K:integer;
var A,B,C,D,E:mnozh;
var kl: Char;
begin
Klavishi;
elemA:=0;
elemB:=0;
repeat
kl:=ReadKey; 
 
case kl of
'1': begin
     ClrScr;
     WriteLn('Введите элементы множества A:');
     Vvod(A, elemA);
     WriteLn;
     WriteLn('Ввод данных окончен');
     WriteLn;
     end;
     end;
     writeln('Для возврата в основное меню нажмите ENTER ');
     Readln(); 
     Klavishi;
     until kl=#27;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2016, 15:47
Ответы с готовыми решениями:

Выход из программы по ESC не работает
]var floors, floorNow, FloorNeed:byte; key, doors, motors, light:boolean; c:char;...

Выход из программы не работает
Доброго времени суток! По моему представлению при вводе значения &quot;2&quot; программа должна выйти из...

не работает выход из программы
функцию Application.Exit(); почему то подчеркивает! приложение на WPF. Суть в том чтобы после...

Не работает выход из программы
#include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;stdio.h&gt; #include...

2
147 / 128 / 155
Регистрация: 22.03.2016
Сообщений: 502
27.05.2016, 20:12 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
program lab1;
 
uses Crt;
type
  mnozh = Array[1..20] of Char;
 
procedure Sortirovka(var A: mnozh; const elemA: Integer);
var
  countA, countB, k: Integer;
var
  sim: char;
begin
  for countA := 1 to elemA - 1 do 
  begin
    k := countA;
    for countB := countA + 1 to elemA do
      if A[countB] < A[k] then k := countB;
    sim := A[countA];
    A[countA] := A[k];
    A[k] := sim;
  end;
end;
 
procedure Vvod(var A: mnozh; var elemA: integer);
var
  countA, countB: integer;
var
  usl: Boolean;
begin
  elemA := 0;
  while not EoLn do
  begin
    elemA := elemA + 1;
    Read(A[elemA]);
  end;
  Sortirovka(A, elemA);
  usl := False;
  countA := 1;
  while countA < elemA do 
  begin
    if A[countA] = A[countA + 1] then begin
      usl := True;
      elemA := elemA - 1;
      for countB := countA + 1 to elemA do
        A[countB] := A[countB + 1];
    end
    else
      countA := countA + 1;
  end;
  WriteLn;
  if usl then Writeln('Повторно введенные элементы УДАЛЕНЫ из множества');
  readln;
end;
 
procedure Klavishi;
begin
  ClrScr;
  WriteLn('Меню работы с множествами:');
  WriteLn;
  WriteLn('1 - Введите элементы множества A');
  WriteLn;
  WriteLn('Esc - выход из программы');
  WriteLn;
end;
 
var
  elemA, elemB, K: integer;
 
var
  A, B, C, D, E: mnozh;
 
var
  kl: Char;
 
begin
  Klavishi;
  elemA := 0;
  elemB := 0;
  repeat
    case kl of
      '1':
        begin
          ClrScr;
          WriteLn('Введите элементы множества A:');
          Vvod(A, elemA);
          WriteLn;
          WriteLn('Ввод данных окончен');
          WriteLn;
          writeln('Для возврата в основное меню нажмите ENTER ');
        end;
    end;
    kl := ReadKey;
    Klavishi;
  until kl = #27;
end.
1
-19 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 72
28.05.2016, 15:37  [ТС] 3
Спасибо большое, все работает
0
28.05.2016, 15:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2016, 15:37
Помогаю со студенческими работами здесь

Принудительный выход из программы не работает
Есть такой метод для выхода из программы. private void Exit() { if...

При включении компа у меня не работает монитор, но нормально работает ТВ-выход
Уже несколько дней рву волосы на голове.... Такая проблемка: при включении компа у меня не...

Выход из программы
Не работает выход из программы, что ему не нравится? void Exit( FILE * tf ) { system(&quot;cls&quot;);...

Выход из программы.
Как правильно написать диалоговое сообщение выхода из программы с кнопки? procedure...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru