Помощь - Поиск - Пользователи - Календарь
Полная версия: Записи и строки(2)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
BAEVIK
Записи и строки
Дана строка. Если она представляет собой запись целого числа, то вывести 1; если вещественного (с дробной частью), то вывести 2; если строку нельзя преобразовать в число, то вывести 0.
volvo
При чем здесь записи? Все проще: сначала пытаешься преобразовать строку с помощью Val в целое число, анализируешь код ошибки, если не 0 - то это НЕ целое, значит, пытаешься преобразовать в вещественное. Если и это не проходит - то... Не судьба, значит, в строке не число...

Что вызывает затруднения? Или тебе надо написать очередной велосипед? Тогда учти, что строка может быть и такой: '123.123..34'
BAEVIK
Цитата(volvo @ 3.02.2009 0:01) *

При чем здесь записи? Все проще: сначала пытаешься преобразовать строку с помощью Val в целое число, анализируешь код ошибки, если не 0 - то это НЕ целое, значит, пытаешься преобразовать в вещественное. Если и это не проходит - то... Не судьба, значит, в строке не число...

Что вызывает затруднения? Или тебе надо написать очередной велосипед? Тогда учти, что строка может быть и такой: '123.123..34'

Напиши велосипед лучше !
volvo
Цитата
Напиши велосипед лучше !
Я? Спасибо, я уже давно не пишу велосипедов... Тебе надо, ты и пиши... Что не получится - скажешь.
BAEVIK
Цитата(volvo @ 4.02.2009 12:52) *

Я? Спасибо, я уже давно не пишу велосипедов... Тебе надо, ты и пиши... Что не получится - скажешь.

Еслибы знал как написать сделалбы !
Ozzя
Тебе же всё рассказали уже. Читай man по функции val
Lodar'
Ну вот что то типа этого:
Program Str;
var
st1:string;
err:integer;
int:longint;
rel:real;
begin
Writeln ('Vvedite stroky');
Readln (st1);
Val (st1,int,err);
if err <> 0 then
begin
Val (st1,rel,err);
if err <> 0 then Writeln ('0')
else Writeln ('2');
end
else Writeln ('1');
readln;
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.