Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
TTETYX
1 / 1 / 0
Регистрация: 24.07.2017
Сообщений: 13
1

Не работает код

10.08.2017, 19:24. Просмотров 878. Ответов 3
Метки нет (Все метки)

Все запускается.Но не выводит число 4 и передвигается только вверх вниз
вот код
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
uses crt;
var
life:array [1..20,1..20] of integer;
CursorX,CursorY:integer;
CursorChar:char;
x,y:integer;
key:char;
procedure CursorDraw;
begin
textcolor(red);
gotoxy(CursorX,CursorY);
writeln(CursorChar);
end;
procedure CursorClear;
begin
textcolor(black);
gotoxy(CursorX,CursorY);
writeln(CursorChar);
end;
procedure CursorMove;
begin
if keypressed then
begin
key:=readkey;
CursorClear;
case key of
#75:
begin
CursorX:=CursorX-1;
end;
#77:
begin
CursorX:=CursorX+1;
end;
#72:
begin
dec(CursorY);
end;
#80:
begin
inc(CursorY);
end;
end;
end;
end;
begin
clrscr;
CursorX:=3;
CursorY:=3;
CursorChar:='4';
while key<>#27 do
CursorMove;
CursorDraw;
end.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2017, 19:24
Ответы с готовыми решениями:

Солнечная система - код не работает
Вот програмка солнечной системы но паскаль ругается на модуль Dos и на Port....

Неправильно работает код вычислений
Код Program z3; var x, u, e,uk:real; k:integer; function...

Исправить код и объяснить почему не работает
Почему норм не компилируется? если i сделать real, то норм? Program Add;...

Сформировать массив по правилу: код не работает
Дан двумерный массив A (n,n), разделяется диагоналями на 4 треугольника, что не...

Код работает неправильно (сложение дробей)
Есть задача:Даны две рациональные дроби: a/b и c/d. Сложите их и результат...

3
ФедосеевПавел
Модератор
3652 / 2026 / 836
Регистрация: 01.02.2015
Сообщений: 6,743
10.08.2017, 19:50 2
Смотрите. Причина ошибки - неформатированный код. Если воспользоваться автоформаттером JCF (Jedi Code Format), то программа будет выглядеть
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
program test;
 
uses
  crt;
 
var
  life: array [1..20, 1..20] of integer;
  CursorX, CursorY: integer;
  CursorChar: char;
  x, y: integer;
  key:  char;
 
  procedure CursorDraw;
  begin
    textcolor(red);
    gotoxy(CursorX, CursorY);
    writeln(CursorChar);
  end;
 
  procedure CursorClear;
  begin
    textcolor(black);
    gotoxy(CursorX, CursorY);
    writeln(CursorChar);
  end;
 
  procedure CursorMove;
  begin
    if keypressed then
    begin
      key := readkey;
      CursorClear;
      case key of
        #75:
        begin
          CursorX := CursorX - 1;
        end;
        #77:
        begin
          CursorX := CursorX + 1;
        end;
        #72:
        begin
          Dec(CursorY);
        end;
        #80:
        begin
          Inc(CursorY);
        end;
      end;
    end;
  end;
 
begin
  clrscr;
  CursorX := 3;
  CursorY := 3;
  CursorChar := '4';
  while key <> #27 do
    CursorMove;
  CursorDraw;
end.
Видно, что ошибка в цикле получения о обработки команд.
1
Puporev
Модератор
54582 / 42088 / 29061
Регистрация: 18.05.2008
Сообщений: 99,260
10.08.2017, 20:11 3
Лучший ответ Сообщение было отмечено TTETYX как решение

Решение

Основная ошибка
Pascal
1
2
3
4
5
while key<>#27 do
 begin
  CursorMove;
  CursorDraw;
 end;
Добавлено через 14 минут
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
uses crt;
const  CursorChar='4';
var CursorX,CursorY:integer;
    key:char;
procedure CursorDraw;
begin
textcolor(red);
gotoxy(CursorX,CursorY);
write(CursorChar);
gotoXY(80,25);{убираем курсор в угол}
end;
procedure CursorClear;
begin
gotoxy(CursorX,CursorY);
write(' ');
gotoXY(80,25);{убираем курсор в угол}
end;
procedure CursorMove;
begin
key:=readkey;
if key=#0 then key:=readkey;{коды стрелок имеют первый индекс=0}
CursorClear;
case key of
#75: if CursorX>1 then dec(CursorX); {проверяем чтобы не выходило за экран}
#77: if CursorX<79 then inc(CursorX);
#72: if CursorY>1 then dec(CursorY);
#80: if CursorY<25 then inc(CursorY);
end;
end;
begin
clrscr;
CursorX:=3;
CursorY:=3;
CursorDraw;
while key<>#27 do
 begin
  CursorMove;
  CursorDraw;
 end;
end.
0
TTETYX
1 / 1 / 0
Регистрация: 24.07.2017
Сообщений: 13
10.08.2017, 20:25  [ТС] 4
Puporev, Спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.08.2017, 20:25

Один и тот же код работает по-разному
Составила программу, программа работает, выдаёт верное решение: var...

Код, написанный на ABC, не работает в Turbo
Ребят скажите в чем может быть проблема. Писал долго и упорно калькулятор на...

Не работает код программы, написанный в другой версии Паскаля
Подскажите пожалуйста, почему код не работает в турбо паскале? program...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru