Страница 1 из 1
Как вытащить из числа 1509 цифры 5 и 0?
Добавлено:
08.10.2008 00:11:20
fs444
Как средствами Pascal вытащить из числа 1509 цифры 5 и 0? Я разбираю 1509 на тысячи (1), сотни (5), десятки(0) и единицы (9), нахожу среди них 5 и 0, сдигаю на два разряда влево число единиц (9), но вот как мне соединить бывшие тысячами десятки (1) и сдвинутые влево единицы, я не знаю. Как мне это сделать?
Re: Как вытащить из числа 1509 цифры 5 и 0?
Добавлено:
08.10.2008 00:26:51
bw
Постановка задачи:
> Как средствами Pascal вытащить из числа 1509 цифры 5 и 0?
Решение задачи:
> WriteLn(5);
> WriteLn(0);
..bw
Re: Как вытащить из числа 1509 цифры 5 и 0?
Добавлено:
08.10.2008 14:19:06
Михаил Крамер
- Код: Выделить всё
var
i: Word;
begin;
i:= 1509;
Writeln(i div 1000);
Writeln((i mod 1000) div 100);
Writeln((i mod 100) div 10);
Writeln(i mod 10);
end.
А про сдвиги, и задвиги - не въехал. В чём задача то?
А! Дошло! Видимо, решение такое:
- Код: Выделить всё
var i, j: Word;
begin
i:= 1509;
j:= i div 1000 *10 + i mod 10;
writeln(j);
end.
;
Re: Как вытащить из числа 1509 цифры 5 и 0?
Добавлено:
08.10.2008 17:20:44
fs444
Я вам неправильно все объяснил. Вот текст задания:
Добавлено спустя 16 минут 2 секунды:Я сделал так:
- Код: Выделить всё
Program l6_n16_dano_4zn_chislo_n;
Var n,one_n,dec_n,hun_n,thu_n:Longint;
Begin
Writeln('Введите 4-зн. число');
Readln(n);
one_n:=n Mod 10;
dec_n:=(n Div 10) Mod 10;
hun_n:=(n Div 100) Mod 10;
thu_n:=n Div 1000;
If (thu_n<>0) And (thu_n<>5) Then Write(thu_n);
If (hun_n<>0) And (hun_n<>5) Then Write(hun_n);
If (dec_n<>0) And (dec_n<>5) Then Write(dec_n);
If (one_n<>0) And (one_n<>5) Then Write(one_n);
Readln;
End.
Re: Как вытащить из числа 1509 цифры 5 и 0?
Добавлено:
08.10.2008 18:24:04
Михаил Крамер
А причём тут сдвиги? Или вы хотите в результате получить тоже число, а не просто вывести на экран цифры?
Добавлено спустя 7 минут 26 секунд:Тогда так можно:
- Код: Выделить всё
Program l6_n16_dano_4zn_chislo_n;
Var n,one_n,dec_n,hun_n,thu_n, l, m:Longint;
Begin
Writeln('Введите 4-зн. число');
Readln(n);
one_n:=n Mod 10;
dec_n:=(n Div 10) Mod 10;
hun_n:=(n Div 100) Mod 10;
thu_n:=n Div 1000;
l:= 0;
m:= 1;
If (one_n<>0) And (one_n<>5) Then
begin
l:= l + one_n * m;
m:= m * 10;
end;
If (dec_n<>0) And (dec_n<>5) Then
begin
l:= l + dec_n * m;
m:= m * 10;
end;
If (hun_n<>0) And (hun_n<>5) Then
begin
l:= l + hun_n * m;
m:= m * 10;
end;
If (thu_n<>0) And (thu_n<>5) Then
begin
l:= l + thu_n * m;
m:= m * 10;
end;
writeln(l);
Readln;
End.
Вообще, по хорошему, организовать бы циклик - но лень думать.
Re: Как вытащить из числа 1509 цифры 5 и 0?
Добавлено:
08.10.2008 18:49:01
Padre_Mortius
а не проще будет работать с числом как с массивом символов?
Re: Как вытащить из числа 1509 цифры 5 и 0?
Добавлено:
08.10.2008 19:49:18
Михаил Крамер
Padre_moris, оно конечно проще - но не в духе учебных задач. Я думаю, что задача то как раз на работу с цифрами.
О, кстати, вот вам и более изящное решение:
- Код: Выделить всё
var n, l, m: integer;
begin
Readln(n);
l:= 0; m:= 1;
while n <> 0 do
begin
if (n mod 10 <> 0) and (n mod 10 <>5) then
begin
l:= l + n mod 10 * m;
m:= m * 10;
end;
n:= n div 10;
end;
Writeln(l);
end.
Re: Как вытащить из числа 1509 цифры 5 и 0?
Добавлено:
09.10.2008 02:04:16
bw
> l:= l + n mod 10 * m;
Лучше бы так написать:
l:= l + (n mod 10) * m;
..bw
Re: Как вытащить из числа 1509 цифры 5 и 0?
Добавлено:
09.10.2008 09:36:00
SergeySmlInf
Задача в том, чтобы не "вытащить", а получить новое число...
var a,b,c,ch:integer;
begin
write('a=');
read(a);
b:=0;
c:=1;
while a>0 do
begin
ch:=a mod 10;
a:=a div 10;
if (ch<>0) and (ch<>5) then
begin
b:=b+ch*c;
c:=c*10;
end;
end;
writeln(b);
end.
// десятиричная система - ПОЗИЦИОННАЯ!
end.
Re: Как вытащить из числа 1509 цифры 5 и 0?
Добавлено:
09.10.2008 13:27:22
Михаил Крамер
Сергей, а в чём отличие моей программы от Вашей?
Re: Как вытащить из числа 1509 цифры 5 и 0?
Добавлено:
09.10.2008 15:40:40
SergeySmlInf
А ни в чем.
Просто я на вашу не посмотрел...
У меня эту задачу 9-классники решали, вот я первую подвернувшуюся и закатал...
А просмотрел только самое начало...