Другие языки программирования и технологии
Помощь Паскаль
вводится трехзначное натуральное число. вывести число, полученное из исходного удалением всех четных цифр. если все цифры были четные - вывести 0. например, введено 456, вывести 5; введено 655; вывести 55. сделать БЕЗ циклов
Зависит от пройденной темы, вот еще способ с использование строки, так как не сказано какой тип числа, а просто строкой тоже можно
program t;
var
x, y : string;
begin
ReadLn(x);
if (x[1]='1') or (x[1]='3') or (x[1]='5') or (x[1]='7') or (x[1]='9') then y := y + x[1];
if (x[2]='1') or (x[2]='3') or (x[2]='5') or (x[2]='7') or (x[2]='9') then y := y + x[2];
if (x[3]='1') or (x[3]='3') or (x[3]='5') or (x[3]='7') or (x[3]='9') then y := y + x[3];
if y='' then WriteLn('0') else WriteLn(y);
end.
или если шаришь в битах
program t;
var
x, y : string;
begin
ReadLn(x);
if (byte(x[1]) and 1) = 1 then y := y + x[1];
if (byte(x[2]) and 1) = 1 then y := y + x[2];
if (byte(x[3]) and 1) = 1 then y := y + x[3];
if y='' then WriteLn('0') else WriteLn(y);
end.
program t;
var
x, y : string;
begin
ReadLn(x);
if (x[1]='1') or (x[1]='3') or (x[1]='5') or (x[1]='7') or (x[1]='9') then y := y + x[1];
if (x[2]='1') or (x[2]='3') or (x[2]='5') or (x[2]='7') or (x[2]='9') then y := y + x[2];
if (x[3]='1') or (x[3]='3') or (x[3]='5') or (x[3]='7') or (x[3]='9') then y := y + x[3];
if y='' then WriteLn('0') else WriteLn(y);
end.
или если шаришь в битах
program t;
var
x, y : string;
begin
ReadLn(x);
if (byte(x[1]) and 1) = 1 then y := y + x[1];
if (byte(x[2]) and 1) = 1 then y := y + x[2];
if (byte(x[3]) and 1) = 1 then y := y + x[3];
if y='' then WriteLn('0') else WriteLn(y);
end.
Без циклов? Ну лови без циклов:
function OnlyOdds(k:integer):integer;
var n:integer;
begin
OnlyOdds:=0;
if k=0 then
exit;
n:= k mod 10;
if odd(n) then
OnlyOdds:=OnlyOdds(k div 10)*10+n
else
OnlyOdds:=OnlyOdds(k div 10);
end;
function OnlyOdds(k:integer):integer;
var n:integer;
begin
OnlyOdds:=0;
if k=0 then
exit;
n:= k mod 10;
if odd(n) then
OnlyOdds:=OnlyOdds(k div 10)*10+n
else
OnlyOdds:=OnlyOdds(k div 10);
end;
С помощью div и mod выделяй каждую цифру. Если цифра нечетная то выводи ее в строку и включай счетчик. В конце если счетчик нулевой, то выводи 0
Var a,i,k:integer;
Begin
Writeln('Введите трехзначное число: ');
Readln(a);
k:=0;
i:=a div 100;
if i mod 2<>0 then
begin
Write(i);
k:=k+1;
end;
i:=a div 10 mod 10;
if i mod 2<>0 then
begin
Write(i);
k:=k+1;
end;
i:=a mod 10;
if i mod 2<>0 then
begin
Write(i);
k:=k+1;
end;
if k=0 then Write(0);
Readln;
End.
Var a,i,k:integer;
Begin
Writeln('Введите трехзначное число: ');
Readln(a);
k:=0;
i:=a div 100;
if i mod 2<>0 then
begin
Write(i);
k:=k+1;
end;
i:=a div 10 mod 10;
if i mod 2<>0 then
begin
Write(i);
k:=k+1;
end;
i:=a mod 10;
if i mod 2<>0 then
begin
Write(i);
k:=k+1;
end;
if k=0 then Write(0);
Readln;
End.
Максим Ващенко
Тогда число перевернется. Введем 345, получим 54. Некрасивенько.
примени div и mod
Похожие вопросы
- Народ, оч рассчитываю на вашу помощь .../паскаль/
- Помогите составить программу. тема "Процедуры и функции" при помощи Паскаль
- Нужна помощь Паскаль !!!
- Нужна помощь с паскалем!
- Помощь по информатике. 9 класс. Программирование .Язык Паскаль. Ветвление
- Паскаль ABC (нач. курс) прошу помощи, прога внутри и вопрос
- Аналог ассоциативного массива в Паскале.
- Я внутри написал, что я знаю про паскаль не то что решать и все такое а так теоретический в общем, смысл проги, я прав?
- ПАСКАЛЬ и ГРАФИКА
- Товарищи программисты на Delphi и Pascal помогите девушке!!!)) вопрос глупый..насчет паскаля..