Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2011, 12:02   #1
Andrey770
Пользователь
 
Регистрация: 11.03.2011
Сообщений: 83
По умолчанию If Then

Добрый день!
Подскажите кто-нибудь, как сделать так чтоб можно было вводить только цифры,а при вводе буквы выдавало сообщение типа "введите цифру"
Andrey770 вне форума Ответить с цитированием
Старый 15.05.2011, 12:05   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Куда вводить? В строку что ли? Если вы введете букву в числовую (integer, real и т.д.) переменную, то выдаст ошибку.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 15.05.2011, 12:20   #3
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Код:
var
     s : string;
     x, err : integer;
    //
begin
        //
       Readln(s);
       Val(S,X,err);
       if err<> 0 then Writeln('Введите число');
       //
end.
Ну, идея такая.
_-Re@l-_ вне форума Ответить с цитированием
Старый 15.05.2011, 18:07   #4
Andrey770
Пользователь
 
Регистрация: 11.03.2011
Сообщений: 83
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Куда вводить? В строку что ли? Если вы введете букву в числовую (integer, real и т.д.) переменную, то выдаст ошибку.
Я это понимаю,оно нее выдаст ошибку, а закроет программу!
Мне же надо, чтоб была проверка
Код:
 write('Po4atok integruvann9I a= ');readln(a);
   write('Kinecb integruvann9I  b= ');readln(b);
   write('Vveditb shag n= '); readln(n);


    dx:=(b-a)/n;
    
    y:=0; x:=1;
    while x<b do begin {x<Xn}
    y:=y+f(x);
    x:=x+dx; {x= x0,x1,x2..xn-1}
    end;
    y:=y*dx;
     clrscr;
    writeln('integral of formul left  rectangles: ',y: 10:3);
    
     y:=0; x:=a+dx; {x= X1}
     while x<=b do begin {x<= Xn}
     y:=y+f(x);
     x:=x+dx; {x=x1,x2,x3..xn}
     end;
     y:=y*dx;
     writeln('integral of formul right rectangles: ', y:10:3);
как сделать что бы после
Код:
write('Po4atok integruvann9I a= ');readln(a);
   write('Kinecb integruvann9I  b= ');readln(b);
   write('Vveditb shag n= '); readln(n);
была проверка?
Andrey770 вне форума Ответить с цитированием
Старый 15.05.2011, 18:36   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
нее выдаст ошибку, а закроет программу!
выдаст и закроет

Во 2 посте же написано как: вводить строку, а не число и использовать функцию val, которая переводит ее в число.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 15.05.2011, 19:57   #6
Andrey770
Пользователь
 
Регистрация: 11.03.2011
Сообщений: 83
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
выдаст и закроет

Во 2 посте же написано как: вводить строку, а не число и использовать функцию val, которая переводит ее в число.
Обьясните пожалуйста, как эту функцию использовать в моей программе.
Andrey770 вне форума Ответить с цитированием
Старый 15.05.2011, 20:15   #7
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Скажите, это вам преподаватель дал такое задание, чтобы делать такую дурацкую и ненужную проверку?
Вам же _-Re@l-_ объяснил как она делается, если val вернул err=0, то ошибки при конвертации не было, иначе - была.


Кстати не знаю, можно ли в паскале использовать try except... От компилятора зависит наверное.
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 15.05.2011, 21:39   #8
Andrey770
Пользователь
 
Регистрация: 11.03.2011
Сообщений: 83
По умолчанию

Цитата:
Сообщение от MyLastHit Посмотреть сообщение
Скажите, это вам преподаватель дал такое задание, чтобы делать такую дурацкую и ненужную проверку?
Вам же _-Re@l-_ объяснил как она делается, если val вернул err=0, то ошибки при конвертации не было, иначе - была.


Кстати не знаю, можно ли в паскале использовать try except... От компилятора зависит наверное.
Нет, я пишу курсовую роботу, и просто хочу, что бы все красиво было.
Так уже все сделал, только этот баг остался)
Val просто ещё не учили, тоисть я не видел примера нигде.
Andrey770 вне форума Ответить с цитированием
Старый 16.05.2011, 01:07   #9
sunny_alice
Пользователь
 
Регистрация: 16.04.2011
Сообщений: 46
По умолчанию

попробуй так

Код:
{I-}
if ioresult<> then begin
  writeln('Vvedite slovo!'); {I+}
write('Vveditb shag n=');
readln(n);
sunny_alice вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц