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

Несложная программа неправильно работает в turbo

10.09.2011, 14:38. Показов 955. Ответов 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
uses crt;
var   a, b: array [1..15] of char;
i, z, x, v, n, m, t: integer; c: char;
begin
 TextColor  (white); TextBackground (green);
 writeln ('          HELLO. Igra: "X.Y.Z"          ');
  TextColor  (red); TextBackground (white);
writeln ('    warning!!! raskladka dolzhna stoiat "ENG"');
TextColor  (black); TextBackground (white);
writeln ('   "a"-vlevo, "d"-vpravo, "q"-zakonchit');
writeln ('nazhmite "enter"');
 readln     ;          TextColor  (white); TextBackground (green);
 c:='w';   z:=1; n:=2;  v:=1;  t:=100;
for i:=1 to 14 do
begin
a[i]:=' ';
b[i]:=' ';
end;
a[15]:='.';
b[15]:='Y';
 
for i:=1 to 15 do
begin
writeln (a[i],b[i])
end;
 
 
 
while c<>'q' do
 begin
  ClrScr;
 for i:=1 to 15 do
   begin
   writeln (a[i],b[i])
   end;
 
 randomize; x:=random(3);
 if z=x then a[1]:='X';
  if n=x then b[1]:='Z';
 
 delay(50); if KeyPressed then c:=ReadKey else c:='w';
 if c='a' then  a[15]:='Y';   if c='a' then  b[15]:=' ';
 if c='d' then  b[15]:='Y';   if c='d' then  a[15]:=' ';
 
 
    if v=15 then v:=1;
    if a[v]='X' then  a[v+1]:='X';   if a[v]='X' then  a[v]:=' ';
    if b[v]='Z' then  b[v+1]:='Z';   if b[v]='Z' then  b[v]:=' ';
    v:=v+1;
 
    if a[v]='X' then if b[v]='Z' then begin randomize; m:=random(4); if m=1 then b[v]:=' ' else a[v]:=' ' end;
 
    if a[15]='Y' then  begin if a[14]='X'   then c:='q'  else b[14]:=' ' end;
    if b[15]='Y' then  begin if b[14]='Z'   then c:='q'  else a[14]:=' ' end;
 
 end;
if c='q' then writeln ('end game');
 
end.
в паскале ABC всё работает хорошо, затем что бы получить exe-файл я вставляю этот код в турбо паскаль и нажимаю компилировать.....создается exe файл, но он работает неправильно.....сначала подумал что это изза функции delay, но когда я её убрал и заменил кое чем то всё равно ни чего не изменилось....подскажите в чем проблема
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.09.2011, 14:38
Ответы с готовыми решениями:

Программа на PascalABC не работает в Turbo Pascal
Вообщем имеется программа, писали для турбо паскаля, но не получается запустить, на паскале абс...

Программа неправильно работает
Здравствуйте!!!Помогите кто может.Перебрала разные варианты...и все равно не выходит. Написала...

Прогрессия. Программа работает неправильно
Если ввести 1,2,3,7,9,4,6,8,5 Программа выведет 1,2,3,4,5,6,7,8,9, а должна был вывести отдельно...

множества. Программа работает неправильно
uses crt; type mn=set of char; var a,b,c:mn; x,y,z:char; procedure enter(var a,b,c:mn); ...

__________________
14
Модератор
63339 / 47049 / 32429
Регистрация: 18.05.2008
Сообщений: 114,044
10.09.2011, 14:54 2
Попробуй после первого begin написать clrscr;
а перед последним end. readln
0
0 / 0 / 0
Регистрация: 10.09.2011
Сообщений: 31
10.09.2011, 15:01  [ТС] 3
я в функции delay изменил колличество миллисекунд....увеличил в 50 раз примерно....и получается что в ABC я поставил 100, а в Turbo где exe файл я поставил 5000..и получилось почти одинаково.всё стало более менее правильно работать.почему так?

Очистка экрана есть, она в середине

вот новый код:
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   a, b: array [1..30] of char;
i, z, x, v, n, m, t: integer; c: char;
begin
writeln ('"a"-vlevo, "d"-vpravo');
writeln ('nazhmite "enter"');
 readln     ;          TextColor  (white); TextBackground (green);
 c:='w';   z:=1; n:=2;  v:=1;  t:=100;
for i:=1 to 29  do
begin
a[i]:=' ';
b[i]:=' ';
end;
a[30]:=' ';
b[30]:='Y';
 
for i:=1 to 30 do
begin
writeln (a[i],b[i])
end;
 
 
 
while c<>'q' do
 begin
  ClrScr;
 for i:=1 to 30 do
   begin
   writeln (a[i],b[i])
   end;
 
 randomize; x:=random(3);
 if z=x then a[1]:='X';
  if n=x then b[1]:='Z';
 
 delay(5000); if KeyPressed then c:=ReadKey else c:='w';
 if c='a' then  a[30]:='Y';   if c='a' then  b[30]:=' ';
 if c='d' then  b[30]:='Y';   if c='d' then  a[30]:=' ';
 
 
    if v=30 then v:=1;
    if a[v]='X' then  a[v+1]:='X';   if a[v]='X' then  a[v]:=' ';
    if b[v]='Z' then  b[v+1]:='Z';   if b[v]='Z' then  b[v]:=' ';
    v:=v+1;
 
    if a[v]='X' then if b[v]='Z' then begin randomize; m:=random(2); if m=1 then b[v]:=' ' else a[v]:=' ' end;
 
    if a[30]='Y' then  begin if a[29]='X'   then c:='q'  else b[29]:=' ' end;
    if b[30]='Y' then  begin if b[29]='Z'   then c:='q'  else a[29]:=' ' end;
 
 end;
if c='q' then writeln ('end game');
  readln
end.
 Комментарий модератора 
Теги кода исправлены модератором. Для оформления кода Pascal следует выделить этот код и на панели редактирования сообщения нажать кнопку: "PASCAL".
0
Модератор
63339 / 47049 / 32429
Регистрация: 18.05.2008
Сообщений: 114,044
10.09.2011, 15:05 4
Цитата Сообщение от pro100hacker Посмотреть сообщение
почему так?
У тебя кривые модули .tpl, поэтому delay(1000) не равно 1 секунде. Скачай Турбо Паскаль с нормальными модулями, например здесь.
Скачать Паскаль
0
0 / 0 / 0
Регистрация: 10.09.2011
Сообщений: 31
10.09.2011, 15:30  [ТС] 5
скачал вот это "TP_ru-board.RAR " нажимаю компилировать а он не создает exe файл
0
Модератор
63339 / 47049 / 32429
Регистрация: 18.05.2008
Сообщений: 114,044
10.09.2011, 15:37 6
pro100hacker,Качаешь всякую хрень, нужно обычный ТП 7.0, например
https://www.cyberforum.ru/atta... 1264398243

Добавлено через 58 секунд
В теме же если раскрыть все скрытые поля там много еще ссылок.
1
0 / 0 / 0
Регистрация: 10.09.2011
Сообщений: 31
10.09.2011, 15:46  [ТС] 7
спасибо всё получилось)))...в принципе вопросов нет..но если можете скажите как вам то что я написал..может че то можно упростить или изменить....на базе этого хочу написать какую нить игруху простинькую....но сложнее чем эта....
0
Модератор
63339 / 47049 / 32429
Регистрация: 18.05.2008
Сообщений: 114,044
10.09.2011, 15:55 8
Ну, в принципе то что Вы написали это практически ноль, там нечего разбирать и анализировать..
0
0 / 0 / 0
Регистрация: 10.09.2011
Сообщений: 31
10.09.2011, 16:01  [ТС] 9
ну а в принципе того что я хочу добиться я этим путем иду?
0
Модератор
63339 / 47049 / 32429
Регистрация: 18.05.2008
Сообщений: 114,044
10.09.2011, 16:14 10
Цитата Сообщение от pro100hacker Посмотреть сообщение
того что я хочу добиться
А чего ты хочешь добиться?
0
0 / 0 / 0
Регистрация: 10.09.2011
Сообщений: 31
10.09.2011, 16:18  [ТС] 11
ну вот что б типо двигаются символы и их надо обходить а если врежешься то проиграл
0
Модератор
63339 / 47049 / 32429
Регистрация: 18.05.2008
Сообщений: 114,044
10.09.2011, 16:20 12
В принципе все верно начал, нужно освоить модуль crt и алгоритмы управления символами.
0
0 / 0 / 0
Регистрация: 10.09.2011
Сообщений: 31
10.09.2011, 16:30  [ТС] 13
одна проблема есть...в delay от времени которое внутри зависит скрость падения....я ппробывал вместо числа поставить переменную которую вводишь в начале программы сам, ч то б менять сложность....новот почему то хоть и вводишь разные числа-скорость падения одинакова....хотя если не переменную использовать а прям внутрь delay написать число сначала одно а потом другое то скорость меняется...не могу понять почему это
0
Модератор
63339 / 47049 / 32429
Регистрация: 18.05.2008
Сообщений: 114,044
10.09.2011, 16:41 14
Да ну...
Если объявить переменную
Pascal
1
var d:integer;
и менять ее в программе, то будет меняться
Pascal
1
2
3
4
d:=50;
if aaaa then d:=100
else d:=10;
delay(d);
0
0 / 0 / 0
Регистрация: 10.09.2011
Сообщений: 31
10.09.2011, 16:53  [ТС] 15
хорошо, спасибо за помощь
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.09.2011, 16:53

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Программа по строкам неправильно работает
Программу написал, но есть проблема:вместе с нужными символами выводится &quot;:&quot;. Подскажите, как можно...

Неправильно работает программа со списками
Пишу программу для работы магазина аудио-CD с использованием списков. Делал по примеру аналогичной...

Не могу понять, почему программа работает неправильно( Знаю, что где-то ошибки, но не могу найти
{Ввести последовательность натуральных чисел Aj j=1...n (n&lt;=1000). Упорядочить последовательность...

Программа не работает в Turbo но работает в ABC
запуская в ABC всё работает отлично но когда запускаю программу с точно таким же кодом в Турбо...


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

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

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