Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Хитрости в Paskal

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Хитрости в Paskal
Имя
Сообщение << Старые топики   Новые топики >>
Хитрости в Paskal - 2005-12-18 13:52:31   
a4techii

Сообщений: 31
Оценки: 0
Присоединился: 2004-08-29 18:48:48
Как можно реализовать вродебы простые вещи в паскаль:
1) Сделать проверку что вводимое значение переменной число ->

var a:integer;
begin
writeln(''введите значение а'');
readln(a);
a:=a+a;
writeln(''Новое значение а='',a,'' '');
readln;
end.

Если ввести любой символ вместо цифры программа выкидывает ошибку :(
Post #: 1
Хитрости в Paskal - 2005-12-18 17:11:57   
a4techii

Сообщений: 31
Оценки: 0
Присоединился: 2004-08-29 18:48:48
Cделал сам [sm=5.gif] если кому нужно вот код :
var
a: integer;
label 1;
begin
1: write('Enter the number, please: ');
{$I-}
readln(a);
{$I+}
if (ioresult <> 0) then begin
writeln('Error: You misunderstood! I asked you to enter a number!');
goto 1;
readln;
end
else
begin
write('You have entered an integer number ');
writeln(a);
end;
readln
end.
[Спасиб to reply [sm=2.gif] ]
Post #: 2
Хитрости в Paskal - 2005-12-18 17:43:16   
AdReNaL1Ne

Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
А когда Лекс успел ещё одного бота написать?[sm=9.gif]
Post #: 3
Хитрости в Paskal - 2005-12-18 17:56:40   
a4techii

Сообщений: 31
Оценки: 0
Присоединился: 2004-08-29 18:48:48
1)AdReNaL1Ne ты сам как бот [sm=3.gif]
2)а вот можно ли сделать так :

на первой странице выводим

gotoxy(12,10); write('Программа предназначена для решения мат. уравнения вида');
gotoxy(25,14); write('—> (W+C)/(D-X^3) <— ');
gotoxy(25,16); write('Чтоб продолжать нажми ENTER !!! ');{или к примеру клавишу A}


как сделать так что программа посылает нас на следующий уровень только в том случае если мы действительно нажмём ENTER или туже клавишу А. Она будет игнорировать нажатия других клавишь и на экране отображать их небудет.
Post #: 4
Хитрости в Paskal - 2005-12-18 18:06:14   
AdReNaL1Ne

Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
Фига! Бот ещё отвечает)))
Post #: 5
Хитрости в Paskal - 2006-03-11 02:57:30   
Tages

Сообщений: 30
Оценки: 0
Присоединился: 2006-03-09 01:02:16
quote:

—————-<BR>Цитата: Дата:18.12.2005 17:56:40, Автор:a4techii ::
1)AdReNaL1Ne ты сам как бот [sm=3.gif]<BR>2)а вот можно ли сделать так :<BR><BR>на первой странице выводим<BR>…<BR>gotoxy(12,10); write('Программа предназначена для решения мат. уравнения вида');<BR> gotoxy(25,14); write('—&amp;amp;gt; (W+C)/(D-X^3) &amp;amp;lt;— ');<BR> gotoxy(25,16); write('Чтоб продолжать нажми ENTER !!! ');{или к примеру клавишу A}<BR>…<BR><BR>как сделать так что программа посылает нас на следующий уровень только в том случае если мы действительно нажмём ENTER или туже клавишу А. Она будет игнорировать нажатия других клавишь и на экране отображать их небудет.
—————-



BP давно не занимался, но попробуй так:
If( readkey(a)= ‘A’)or( readkey(a)= #13) then
begin
<действие>
<действие>
.
.
<действие>
else
<действие>
#13->вроде Enter, #27->Esc
вроде при графическом режиме, если не дать команду вывода на экран, то ни чего и не появится… Возможно я и ошибаюсь.
P.S. Года 2 за Паскалем не сидел

Post #: 6
Хитрости в Paskal - 2006-03-11 17:37:31   
H@ns

Сообщений: 52
Оценки: 0
Присоединился: 2005-12-09 00:54:03
readkey - функция модуля Crt
break оператор выхода из цикла

var
c:char;
begin

while true do
begin
c:=readkey;
if (c='A')or(c=#13)
then break;
end;

end.

цикл будет крутиться до тех пор пока не будут нажаты соотв. клавиши.
Post #: 7
Хитрости в Paskal - 2006-03-11 21:19:34   
Tages

Сообщений: 30
Оценки: 0
Присоединился: 2006-03-09 01:02:16
Я же говорил что за ВР давно не сидел[sm=sm128.gif]. Вот вам яркий пример: вместо x:=readkey написал if readkey(x)[sm=16.gif]. Что тут говорить, сплошной ClrScr [sm=1.gif].
Post #: 8
Хитрости в Paskal - 2006-03-12 04:23:13   
BugRIPPER

Сообщений: 465
Оценки: 0
Присоединился: 2005-02-18 00:16:04
program blablabla;
Uses crt;
var ch:char;
Begin {****glodal***}
….
repeat
if keypressed
then
begin
ch:=readkey
if ch='a' then
….
end;
until ch=#27;{ето "esc"}
End.{****global****}

пока ескейп не надавишь цикл будет отлавливать любое нажатие на клавиатуре и сравнивать со знавчением в if.
Post #: 9
Хитрости в Paskal - 2006-03-18 16:46:32   
[For1K]

Сообщений: 6
Оценки: 0
Присоединился: 2005-05-16 08:47:11
Помогите решить эту задачу только с помощью оператора FOR

Вычислить сумму s значений функции f в точках Х(i), которые беруться с заданного интервала [a, b]. Доина отрезка расчитывается по формуле (b-a)\(n-1)
Здесь i=1,2,3,4…n - Номер точки, n - задаваемое кол-во точек. а - начало,
b - конец интервала изменения x.


Const
n=25;
a=4;
b=20;
Var
x, h, fun, sum: real;
Begin
sum:=0;
x:=a;
h:=(b-a)\(n-1);
fun:=sqrt(x-4);
while (x<=b) do begin
sum:=sum+fun;
x:=x+h;
fun:=sqrt(x-4);
End:
WriteLN ('Сумма значений ф-ии =', sum);
End.

Двумя способами решил, а вот с помощью ФОР не могу.
Post #: 10
Хитрости в Paskal - 2006-03-19 01:37:13   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
если мне память не изменяет, должно быть что-то в стиле:

for x from a to b step h; do begin
Post #: 11
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Хитрости в Paskal







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.