Вопрос № 105249: Как из числа, состоящего из 4 цифр, забитого в строковую переменную сделать 4 числовых переменный с присвоенными им значения этих цифр ( 1 переменной - 1 чисол, 2-2 и т.д.) ?...
Вопрос № 105.249
Как из числа, состоящего из 4 цифр, забитого в строковую переменную сделать 4 числовых переменный с присвоенными им значения этих цифр ( 1 переменной - 1 чисол, 2-2 и т.д.) ?
Отправлен: 12.10.2007, 22:13
Вопрос задал: Goddamned (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Gh0stik
Здравствуйте, Goddamned!
Поскольку Вы в условии указали что число хранится как строка, то Вам достаточно разбить данную строку на символы и каждый перевести в число при помощи функции val().
Вот код примера: var x:string;
a,b,c,d,code:integer;
begin
x:='3245'; {ввод можно организовать и через клавиатуру}
val(x[1],a,code); {если code=0, если в процессе преобразование не произошло ошибки}
val(x[2],b,code);
val(x[3],c,code);
val(x[4],d,code);
writeln(a:3,b:3,c:3,d:3);
end.
Good Luck!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессор) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 12.10.2007, 22:34
Отвечает: Verena
Здравствуйте, Goddamned!
Самый простой способ - использовать ASCII-коды символов-цифр. 0 имеет код 48, следовательно, чтобы получить цифру из символа достаточно взять его код функцией ord и вычесть из него 48. Выглядеть это бдет так: Const n=4;
Var str: string [n];
a: array [1..n] of word;
i: integer;
begin
Readln (str);
for i:=1 to n do a[i]:= ord (str[i])-48; {преобразование}
for i:=1 to n do
Write (a[i], ' ');
end. --------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Студент)
Ответ отправлен: 12.10.2007, 22:38
Отвечает: Артём1983
Здравствуйте, Goddamned!
Вот мой вариант решения. Вместо строки
for i:=1to 4do
можно записать
for i:=1to length(s)do
Приложение:
--------- Программирование - дело Путное!
Ответ отправил: Артём1983 (статус: 4-ый класс)
Ответ отправлен: 13.10.2007, 20:41
Отвечает: Витек
Здравствуйте, Goddamned!
var a,n,i:integer;
begin
writeln('Введите число: ');
readln(a);
for i:=1 to 4 do
begin
n:=a mod 10;
a:=a div 10;
writeln('Число № ',5-i,' = ',n);
end;
readln;
end.
Вывод организован в обратном порядке, но все в ваших руках, можно записать числа в массив и выводить в любом порядке.
--------- ohne fleis, keine preis
Ответ отправил: Витек (статус: 4-ый класс)
Ответ отправлен: 15.10.2007, 09:38