Определение типа переменной - строковый или целочисленный - Pascal
Формулировка задачи:
Добрый вечер! Необходима помощь в проверке числа что это число, и проверки строки что это строка. Помогите плз. нужен только вот этот кусочек кода. Заранее благодарен.
repeat writeln('введите число'); read(n) until n in {а как задать такое множество(учитывать и отрицательные) я не знаю:( помогите}
Решение задачи: «Определение типа переменной - строковый или целочисленный»
textual
Листинг программы
var st:string; s,x1:integer; begin writeln('Введите количество кошек[1..1000]: '); readln(s); st:=''; if (s>=100) and (s<=999) then begin x1:=s div 100; s:= s mod 100; case s of 1:st:=st+'сто '; 2:st:=st+'двесте '; 3:st:=st+'сриста '; 4:st:=st+'четыриста '; 5:st:=st+'пятсот '; 6:st:=st+'шестсот '; 7:st:=st+'семсот '; 8:st:=st+'восемсот '; 9:st:=st+'девятсот '; end; end; if (s>=10) and (s<=99) then begin x1:= s div 10; s:=s mod 10; case x1 of 2:st:=st+'дватсять '; 3:st:=st+'тридцать '; 4:st:=st+'сорок '; 5:st:=st+'пятидесят '; 6:st:=st+'шестьдисят '; 7:st:=st+'семдисят '; 8:st:=st+'восмидесят '; 9:st:=st+'девяносто '; 1:case s of 1:st:=st+'одинадцать '; 2:st:=st+'двенадцать '; 3:st:=st+'тринадцать '; 4:st:=st+'четырнадцать '; 5:st:=st+'пятнадцать '; 6:st:=st+'шестнадцать '; 7:st:=st+'семнадцать '; 8:st:=st+'восемнадцать '; 9:st:=st+'девятнадцать '; end; end; end; if(s>=1) and (s<=s) and (X1<>1) then case s of 1:st:=st+'одина '; 2:st:=st+'две '; 3:st:=st+'три '; 4:st:=st+'четыре '; 5:st:=st+'пять '; 6:st:=st+'шесть '; 7:st:=st+'семь '; 8:st:=st+'восемь '; 9:st:=st+'девять '; end; //***************** writeln(st); end; readln; end.
Объяснение кода листинга программы
- Переменная
st
инициализируется пустой строкой. - Пользователю предлагается ввести количество кошек от 1 до 999.
- Если введенное значение находится в диапазоне от 100 до 999, то переменная
s
присваивается значениеs
деленное на 100, аst
присваивается остаток от деления, и выполняется соответствующий case-код. - Если введенное значение находится в диапазоне от 1 до 99, то переменная
s
присваивается значениеs
деленное на 10, аx1
присваивается остаток от деления, и снова выполняется соответствующий case-код. - Если введенное значение находится в диапазоне от 1 до
s
, то выполняется еще один case-код, который преобразует число в строку с определенным количеством слов. - В конце выводится значение переменной
st
. - Программа завершается вызовом функции
readln()
.