Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 06.11.2010, 20:43   #1 (permalink)
ducky
Новичок
 
Регистрация: 06.11.2010
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Преобразование текста в число

дано задание. Определить, является ли заданный текст правильной записью целого числа (возможно, со знаком).

правильно я написала, или можно как-то проще?


program V_6_14;
var c:array [1..9] of char;
a,i:integer;
begin
write ('vvedite text');
if (c[1]='+') or (c[1]='-') or (c[1]='1') or (c[1]='2') or (c[1]='3') or (с[1]='4') or (c[1]='5') or (c[1]='6') or (c[1]='7') or (c[1]='8') or (c[1]='9')
then a:=2;

if length(c)>1 then
for i:=2 to length(c) do
if (c[i]<>'1') or (c[i]>'2') or (c[i]<'2') or (c[i]>'3') or (c[i]<'3') or (c[i]>'4') or (c[i]<'4') or (c[i]>'5') or (c[i]<'5') or (c[i]>'6') or (c[i]<'6') or (c[i]>'7') or (c[i]<'7') or (c[i]>'8') or (c[i]<'8') or (c[i]>'9') or (c[i]<'9')
then a:=a-1;


if a=2 then writeln ('text - pravilnaja zapis celogo chisla')
else writeln ('zadanij text ne est pravilnoj zapisju celogo chisla') ;
readln ;
end.
ducky вне форума   Ответить с цитированием

Старый 06.11.2010, 20:43
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Данные темы являются схожими с вашей темой

Как понизить октановое число?
Turbo Pascal 8, дано натуральное число n
Магическое число 241543903

Старый 06.11.2010, 21:59   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от ducky Посмотреть сообщение
дано задание. Определить, является ли заданный текст правильной записью целого числа (возможно, со знаком).

правильно я написала, или можно как-то проще?
Да уж прямо скажем - можно и попроще. И существенно. Например, так:
Код:
VAR
 S:String;
 V:LongInt;
 Code:WORD;
BEGIN
 WriteLn('Enter the string');
 ReadLn(S);
 VAL(S,V,Code);
 If Code=0 then
  WriteLn('Correct')
 else
  WriteLn('Not correct');
 ReadLn;
END.
Здесь вводится строка (что, кстати, в Вашей программе попросту пропущено), а затем используется стандартный оператор преобразования строковой переменной в числовую. Если код операции =0, то операция корректна и преобразование прошло успешно, если код >0, то нет. И все дела.

А еще одно модераторское замечание. Пожалуйста, создавая тему, руководствуйтесь установленной Правилами (п.2.1) регламентацией наименований.
Название темы изменено.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 15:13.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.