Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Непонятки

Автор: scorpzx 26.04.2005 1:09

Здравствуйте Есть следующий код:


uses crt;
const x=30;
var zah,wibor:integer;

procedure showtext;
begin
gotoxy(35,10);
write('test1');
gotoxy(35,11);
write('test2');
gotoxy(35,12);
write('test3');
gotoxy(35,13);
write('test4');
gotoxy(35,14);
write('test5');
gotoxy(35,15);
write('test6');
end;

procedure wib;
var posiz:integer;
stop:boolean;
s:integer;
procedure showkursor;
begin
gotoxy(x,s); write(' ');
gotoxy(x,posiz); write('===>');
s:=posiz;
end;
begin
posiz:=16;
repeat
if keypressed then begin
case readkey of
#72:if posiz>10 then begin posiz:=posiz-1; showkursor; end;
#80:if posiz<15 then begin posiz:=posiz+1; showkursor; end;
#27:stop:=true;
end;
end;
until stop=True;
end;

begin
clrscr;
showtext;
wib;
end.



Он компилируется бес проблем на ТМТ паскале.. но при попытки откомпилировать его же на turbo pascale 7.0 он ведёт себя странно, сразу же после запуска вылетает. Я так думаю что чтото с переменными :/ Ткните пожалуйста носом что я сделал не правильно.

Автор: volvo 26.04.2005 1:22

У меня вот так работает в TP70:

begin
stop := false; { а вот это лишним не бывает }
posiz:=16;
repeat
if keypressed then begin
case readkey of
#72:if posiz>10 then begin posiz:=posiz-1; showkursor; end;
#80:if posiz<15 then begin posiz:=posiz+1; showkursor; end;
#27:stop:=true;
end;
end;
until stop; { = true - лишнее }
end;

Автор: !!!HELLO!!&# 29.04.2005 5:13

Привет!!!
Я надевно начял изучать Паскаль, и покамесь дошол только до второго урока
(надеюсь понимаете о каких уроках идет речь).
Первый понял без проблем а вот во втором есть что -то что я не понял.
И есль кто сможет то обьясните поподробней?!
1)LongInt(читал-читал но так и не понял smile.gif)???????????
2)Что там за таблица с какими-то цифрами и как применять их на практике?????
3)ShortInt
4)Byte??
5)Word???
я ничего из этого не понял и прошу объяснить поподробней!!
СПАСИБО!!!

Автор: SKVOZNJAK 29.04.2005 7:23

1,3,4,5 - это разные типы переменных. Переменная, это ячейка в которую можно записать число, но не любое а то, какое влезет smile.gif Так в переменную типа Byte можно записать число в диапазоне от 0 до 256. Для начала разбери и поэкспериментируй с программой по складыванию двух чисел (пример попроще smile.gif )

Код

var Q, W: Byte;
begin
Q:=3;
W:=2;
Q:=Q+W;
WRITELN(Q);
end.

Сначала переменным Q и W присваиваются значения, затем к Q прибавляется W, результат выводится на экран. Всё не так уж сложно

Автор: Guest 29.04.2005 15:15

А га вроде что-то понимаю smile.gif
Спасибо!!!

Автор: -Андрей- 5.05.2005 22:08

Привет Всем!!!
Подскажите как в Паскале написать такую "программу" чтоб когда я нажму(допустим) на A то вместо нее чтоб выскакивал какой нить текст или то что я укажу.
Надеюсь вопрос понятен!!!
Заранее Спасибо!!!
(желательно привести пример!)

Автор: volvo 5.05.2005 22:17

Цитата(-Андрей- @ 5.05.05 18:08)
"программу" чтоб когда я нажму(допустим) на A то вместо нее чтоб выскакивал какой нить текст или то что я укажу.
(желательно привести пример!)

:no: Вот приведи-ка ты пример, что ты хочешь, чтобы происходило по нажатию "A". И заодно объясни, должна ли программа просто ждать, пока ты это "А" нажмешь, или выполнять какие-то действия, а при нажатии клавиши сделать то, о чем ты программу попросил?

P.S. Кстати, а почему "программа" в кавычках? blink.gif

Автор: Guest 5.05.2005 22:35

Мне нужна программа чтоб когда я нажму на "А" то мне на следующей строчке
выполо ---HELLO Вы нажали та "а" теперь нажмите на "В"---
Понимашь???
И еще как сделать в перенос строки
напрмер:
Андрей
Максим
Коля
???

Автор: klem4 5.05.2005 22:41

uses crt;
var ch:char;
begin
repeat
ch:=readkey;
case ch of
'a':writeln('Test1');
'b':writeln('Test2');
end;
until ch=chr(27); {<Escape>}
end.


так чтоли ?

Автор: volvo 5.05.2005 22:44

Цитата(Guest @ 5.05.05 18:35)
И еще как сделать в перенос строки

Использовать WriteLn вместо Write ...

Автор: Guest 5.05.2005 23:18

klem4 - я переписал код а компилятор выдол ошибку связаную с UNTIL,
хотя пириписал правильно!!!

Автор: klem4 5.05.2005 23:26

программа корректно завершает работу только при нажатии <Esc>
при нажатии 'A' и 'B' выводит надпись, как ты и хотел.

Автор: Guest 5.05.2005 23:32

klem4-ПОСИБО ПОСИБО ПОСИБО!!!!!!!:)smile.gifsmile.gifsmile.gif
ЗАРАБОТАЛО!!!