Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Paulsan
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 14
#1

использование функции IsNumber

19.10.2010, 09:09. Просмотров 1086. Ответов 9
Метки нет (Все метки)

в задаче необходимо сделать проверку на введеные данные (строка-число) с использованием функции IsNumber.
вот задача:

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
program n1;
uses crt;
var x,y,xt,yt,r,i,rast:real; //x,y - координаты центра окружности
                       //xt,yt - координаты точки
                       //r - радиус
begin
repeat
clrscr;
writeln('=> ввести координаты центра и радиус окружности: ');
readln(x,y,r);                                                                  //ввод координат центра окружности и радиус
writeln('=> окружность с центром (',x,';',y,') и радиусом (',r,')');
repeat
if r<=0 then begin
            write('радиус не может быть отрицательным');
            writeln('повторите ввод радиуса');
            readln(r);
            end;
until r>0;
Writeln('=> ввести координаты точки: ');
readln(xt,yt);                                                                  //ввод координат точки
writeln('=> координаты точки ','(',xt,';',yt,')');
rast:=sqrt(sqr(x-xt)+sqr(y-yt));
if r>rast then                                                                  //если радиус больше расстояния от центра окружности до
  writeln('=> точка внутри окружности')                                        //точки, то точка лежит внутри этой окружности
                              else
  if r=rast then                                                               //если радиус равен расстоянию от центра окружности до
                      writeln('=> точка лежит на окружности')                  //точки, то точка лежит на окружности
                               else
                      writeln('=> точка не принадлжеит окружности');           //в иных случаях точка не принадлежит окружности
writeln('=> прекратить? 1 - да, 2 нет');                                        //повторение или отмена повторения задачи
readln(i);
if i=1 then writeln('------программа завершена------');
until i=1;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2010, 09:09
Ответы с готовыми решениями:

Использование функции Exclude
Вывести два столбика рандомных чисел от 1 до 8 без повторяющихся чисел. Чтобы...

Использование рекурсивной функции
Составить программу для вычисления значения с= n!/(m!(n-m)!) используя...

Процедуры, Функции. Организация и Использование
Помогите плиз решить 2 задачки для зачета... 1) Органицазия процедур....

Использование функции в циклических процессах.
Найти предел последовательности Аn, которая вычисляется по формуле An=...

Составление программ с использование функции
Описать рекурсивную функцию MinRec(A,N) вещества типа,которая находит...

9
Puporev
Модератор
54361 / 41950 / 28980
Регистрация: 18.05.2008
Сообщений: 98,815
19.10.2010, 09:18 #2
Чтобы в Паскале проверить что ввели, число или не число, его объявить нужно как строку, а потом переводить в число, например
Pascal
1
2
3
4
5
6
7
8
9
var a:string;
      n:real;
      c:integer;
.....................
repeat
readln(a);
val(a,n,c);
if c<>0 then writeln('Это не число! Повторите ввод.');
until c=0;
Добавлено через 2 минуты
А функцию можно написать так
Pascal
1
2
3
4
5
6
7
function IsNumber(a:string):boolean;
var n:real;
     c:integer;
begin
val(a,n,c);
IsNumber:=c=0;
end;
0
Paulsan
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 14
19.10.2010, 09:19  [ТС] #3
Спасибо, буду пытаться
0
Paulsan
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 14
19.10.2010, 09:40  [ТС] #4
Не получается применить , не могли бы Вы показать механизм на конкретном примере!
0
Puporev
Модератор
54361 / 41950 / 28980
Регистрация: 18.05.2008
Сообщений: 98,815
19.10.2010, 11:00 #5
Вот пример. Функцию чуть переделал для удобства.
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
uses crt;
function IsNumber(a:string;var n:real):boolean;
var c:integer;
begin
val(a,n,c);
IsNumber:=c=0;
end;
var x,y:real;
    s:string;
begin
clrscr;
writeln('Введите координаты точки X,Y:');
repeat
write('x=');
readln(s);
if not IsNumber(s,x) then writeln('Это не число, повторите ввод.');
until IsNumber(s,x);
repeat
write('y=');
readln(s);
if not IsNumber(s,y) then writeln('Это не число, повторите ввод.');
until IsNumber(s,y);
writeln('x=',x:0:2,'  y=',y:0:2);
readln
end.
0
Paulsan
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 14
20.10.2010, 14:27  [ТС] #6
Спасибо большое!!!
0
Spaum145
2 / 2 / 1
Регистрация: 23.08.2009
Сообщений: 21
10.01.2012, 11:24 #7
А как будет выглядеть код функции Isnumber(); для аргумента Char?
0
Puporev
Модератор
54361 / 41950 / 28980
Регистрация: 18.05.2008
Сообщений: 98,815
10.01.2012, 11:38 #8
Цитата Сообщение от Spaum145 Посмотреть сообщение
для аргумента Char?
А зачем? Что бы Вы не ввели, это все равно будет char.
Если для проверки конкретного символа то то так.
Pascal
1
2
3
4
function IsSymbol(s,c:char):boolean;
begin
IsSymbol:=s=c;
end;
в программе
Pascal
1
2
3
write('Введите символ *');
readln(s);
if not IsSymbol(s,'*') then write('Вы ввели не тот симмол');
только для чего это?
Вообще вопрос нужно задавать после того как подумали и писать конкретно что нужно, а не что в на язык зашло.
0
Spaum145
2 / 2 / 1
Регистрация: 23.08.2009
Сообщений: 21
10.01.2012, 11:55 #9
Код в С++. в какой библиотеке есть isnumber();? гугл выдал <ctype.h>, но когда добавляю, то всеравно не признает этот метод
0
Puporev
Модератор
54361 / 41950 / 28980
Регистрация: 18.05.2008
Сообщений: 98,815
10.01.2012, 11:58 #10
Spaum145, Это Паскаль и в нем нет этой функции, поэтому пишем пользовательскую функцию.

Добавлено через 47 секунд
Создавайте свою тему в разделе С++ и не пудрите здесь мозги в чужой теме.
0
10.01.2012, 11:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2012, 11:58

Использование функции вычисления факториала
Помогите, заранее Спасибо! Вычислить Fi = \sqrt{(bi\,mod\, 6\, +\, 3)! } ,...

Использование функции в циклических процессах
С клавиатуры ввести числа A, B, C. Найти медианы треугольника со сторонами A, ...

Использование массива как параметра функции
Для получения результата составить функцию, исходными данными которой являются...


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

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

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