Новые сообщения · Правила  
Страница 1 из 11
Форум ПРОГРАММИСТОВ » УЧЕБНЫЕ МАТЕРИАЛЫ » Лабораторки » Задача о числе перевертыше
Задача о числе перевертыше
Задача: вводится число, вывести его в цифры в обратном порядке. Пример: вводят 2468, выводят: 8642. Требуется придумать самый оригинальный алгоритм и написать самую короткую программу.
1 | Автор: admin | 2012-10-16, 18:50   |  Репутация: [ + 21 ]
program perevertuw;
var number:array [1..10] of integer;
n:longint;
i,m:integer;
q:byte;
begin
repeat
begin
writeln('Введите число( от 1 до 2147483647 ), которое будет изменено ');
readln(n);
if (n=0) then exit;
i:=0;
while (n>0) do
begin i:=i+1;
number [i]:=n mod 10;
n:= n div 10;
end;
writeln('Получаем: ');
for m:=1 to i do
write(number[m]);
readln;
end;
writeln('Желаете ли вы еще работать с числами, если - ДА, нажмите 1, если - НЕТ, то 2');
write('q = ');
read(q);
until (q=2);
end.
2 | Автор: jester | 2012-10-17, 23:53   |  Репутация: [ + 3 ]
program FIGOVINA;
{ўҐабЁп 1.0.0
18.10.2012 19:56
Їа®Ја ¬  Є®в®а п ўҐаҐўҐа згҐв зЁб« }
uses crt;
label x,z,q;
var a,
d,b,n,g,c,i,s,ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9,ch10 : real;
begin
z:
ClrScr;
writeln('ўўҐ¤ЁвҐ 楫®Ґ зЁб«® Є®«ЁзҐбвў® §­ Є®ў Є®в®а®Ј® ­  ЎҐ«миҐ 10');
writeln('ЇаЁ ў®¤Ґ ¤а®Ў  - Їа®Ја ¬  Ўг¤Ёв а Ў®в вм б ҐЈ® 楫®© з бвмо');
readln(a);

n :=0; {ўЁзЁб«Ґ­ЁҐ Є®«ЁзҐбвў  §­ Є®ў зЁб« }
c :=a;
x:
n :=n+1;
b :=c/10;
c :=b;
if (c >= 1) then goto x;

a :=int(a);
i :=(a/10); {ўЁзЁб«Ґ­ЁҐ §­ зҐ­Ёп Є ¦¤®Ј® §­ Є }
ch1 :=frac(i)*10;
g :=int(i);
i :=g/10;

ch2 :=frac(i)*10;
g :=int(i);
i :=g/10;

ch3 :=frac(i)*10;
g :=int(i);
i :=g/10;

ch4 :=frac(i)*10;
g :=int(i);
i :=g/10;

ch5 :=frac(i)*10;
g :=int(i);
i :=g/10;

ch6 :=frac(i)*10;
g :=int(i);
i :=g/10;

ch7 :=frac(i)*10;
g :=int(i);
i :=g/10;

ch8 :=frac(i)*10;
g :=int(i);
i :=g/10;

ch9 :=frac(i)*10;
g :=int(i);
i :=g/10;

ch10 :=frac(i)*10;

writeln('зЁб«® Ё¬ҐҐв ',n:2:0,' §­ Є®ў'); {ўЁў®¤ १г«мв в®ў}

if (n = 10) then writeln('зЁб«® = ',ch1:1:0,ch2:1:0,ch3:1:0,ch4:1:0,ch5:1:0,ch6:1:0,ch1:1:0,ch8:1:0,ch9:1:0,ch10:1:0);
if (n = 9) then writeln('зЁб«® = ',ch1:1:0,ch2:1:0,ch3:1:0,ch4:1:0,ch5:1:0,ch6:1:0,ch1:1:0,ch8:1:0,ch9:1:0);
if (n = 8) then writeln('зЁб«® = ',ch1:1:0,ch2:1:0,ch3:1:0,ch4:1:0,ch5:1:0,ch6:1:0,ch1:1:0,ch8:1:0);
if (n = 7) then writeln('зЁб«® = ',ch1:1:0,ch2:1:0,ch3:1:0,ch4:1:0,ch5:1:0,ch6:1:0,ch1:1:0);
if (n = 6) then writeln('зЁб«® = ',ch1:1:0,ch2:1:0,ch3:1:0,ch4:1:0,ch5:1:0,ch6:1:0);
if (n = 5) then writeln('зЁб«® = ',ch1:1:0,ch2:1:0,ch3:1:0,ch4:1:0,ch5:1:0);
if (n = 4) then writeln('зЁб«® = ',ch1:1:0,ch2:1:0,ch3:1:0,ch4:1:0);
if (n = 3) then writeln('зЁб«® = ',ch1:1:0,ch2:1:0,ch3:1:0);
if (n = 2) then writeln('з®б«® = ',ch1:1:0,ch2:1:0);
if (n = 1) then writeln('зЁб«® = ',ch1:1:0);

if (n = 1) then writeln ('зЁб«® пў«пҐвбп ЇҐаҐўҐавЁи®¬ '); {ЇҐаҐўҐавЁиЁ}

writeln('Ґб«Ё е®вЁвҐ ўҐа­гж  ў ­ з «® Їа®Ја ¬Ё - ­ ¦¬ЁвҐ 1 ');
writeln('Ґб«Ё ­Ґв - «оЎ®Ґ ¤агЈ®Ґ зЁб«® ');
readln(s);
if s = 1 then goto z else goto q;
readln;
q:
end.

/ () \
/    \
/ /\ я_/\_ /\ \
ю/ _\\  / я\  //_ \ю
ю| Ы\ \ / /Э \ / /Ы |ю
ю| Ы \ \ \ Э / / / Ы |ю
ю|_______/ \____/ \_______|ю
\\----------------------------//
\ яVERHOWNY ЙООООО»яяMENKO /
\ЯЯЯЯЯЯЯЯ ИКОєОКј ЯЯЯЯЯЯЯЯЯ/
>=======================<
* 0 ++ 0 *
*\ 0 + + 0 /*
* \ 0 ++++ 0 / *
*  " 00000000 "  *
\  Ы "  " Ы  /
<  )я  (  )
\ / " "  " " \ /
<    )
\    /
<  ТТ\ /ТТ  )
  юІІ\/ІІю  
  \ юІІІІІІю /  
   \ ЫЫ ЫЫ /   
    ДДДДДДДД    
\ \ яЫяЫЫ Ы  / /
\ \ЫяЫя Ы Ы/ /
\ - - - /
\ /
эС0^^^^0Сэ
 

Добавлено (20.10.12, 12:46)
---------------------------------------------
program perevertish;
{версия 1.0.0
18.10.2012 19:56
проеграма которая перевертует числа }
uses crt;
label x,z,q;
var a,
d,b,n,g,c,i,s,ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9,ch10,perev,per,w : real;
begin
z:
ClrScr;
writeln('ввидите целое число количество знаков которого не больше 10');
writeln('при вводе дробного числа - програма будет работать с иво целой частью');
readln(a);

n :=0; {вичисление количества знаков числа}
c :=a;
x:
n :=n+1;
b :=c/10;
c :=b;
if (c >= 1) then goto x;

a :=int(a);
i :=(a/10); {вичисление значения каждого знака }
ch1 :=10*frac(i);
ch1 :=round(ch1);
g :=int(i);
i :=g/10;

ch2 :=10*frac(i);
ch2 :=round(ch2);
g :=int(i);
i :=g/10;

ch3 :=10*frac(i);
ch3 :=round(ch3);
g :=int(i);
i :=g/10;

ch4 :=frac(i)*10;
ch4 :=round(ch4);
g :=int(i);
i :=g/10;

ch5 :=frac(i)*10;
ch5 :=round(ch5);
g :=int(i);
i :=g/10;

ch6 :=frac(i)*10;
ch6 :=round(ch6);
g :=int(i);
i :=g/10;

ch7 :=frac(i)*10;
ch7 :=round(ch7);
g :=int(i);
i :=g/10;

ch8 :=frac(i)*10;
ch8 :=round(ch8);
g :=int(i);
i :=g/10;

ch9 :=frac(i)*10;
ch9 :=round(ch9);
g :=int(i);
i :=g/10;

ch10 :=frac(i)*10;
ch10 :=round(ch10);

writeln('число имеет ',n:2:0,' знаков'); {ўЁў®¤ १г«мв в®ў}

if (n = 10) then {перевертиши и визначение чисел}
begin
PEREV :=ch1*1000000000+ch2*100000000+ch3*10000000+ch4*1000000+ch5*100000;
per :=perev+ch6*10000+ch7*1000+ch8*100+ch9*10+ch10;
writeln('перевернутое число = ',per:1:0)
end;
if (n = 9) then
begin
PEREV :=ch1*100000000+ch2*10000000+ch3*1000000+ch4*100000+ch5*10000;
per :=perev+ch6*1000+ch7*100+ch8*10+ch9;
writeln('перевернутое число = ',per:1:0)
end;
if (n = 8) then
begin
PEREV :=ch1*10000000+ch2*1000000+ch3*100000+ch4*10000+ch5*1000;
per :=perev+ch6*100+ch7*10+ch8;
writeln('перевернутое число = ',per:1:0)
end;
if (n = 7) then
begin
PEREV :=ch1*1000000+ch2*100000+ch3*10000+ch4*1000+ch5*100;
per :=perev+ch6*10+ch7*1;
writeln('перевернутое число = ',per:1:0)
end;
if (n = 6) then
begin
PEREV :=ch1*100000+ch2*10000+ch3*1000+ch4*100+ch5*10;
per :=perev+ch6;
writeln('перевернутое число = ',per:1:0)
end;
if (n = 5) then
begin
per :=ch1*10000+ch2*1000+ch3*100+ch4*10+ch5*1;
writeln( 'перевернутое число= ',per:1:0)
end;
if (n = 4) then
begin
per :=ch1*1000+ch2*100+ch3*10+ch4*1;
writeln('перевернутое число = ',per:1:0)
end;
if (n = 3) then
begin
per :=ch1*100+ch2*10+ch3;
writeln('перевернутое число = ',per:1:0)
end;
if (n = 2) then
begin
per :=ch1*10+ch2;
writeln('перевернутое число = ',per:1:0)
end;
if (n = 1) then
begin
writeln ('перевернутое число = ',ch1:1:0);
writeln ('оно является перевертишом');
end;

if (per = a) then writeln('оно является перевертишом');

writeln('если хотите вернутца в начоло програми - нажмите 1 ');
writeln('если нет - любое другое число');
readln(s);
if s = 1 then goto z else goto q;
readln;
q:
end.

/ () \
/ \
/ /\ я_ /\ _ /\ \
ю/ _\\ / я\ //_ \ю
ю| Ы \ \ / /Э \ / / Ы |ю
ю| Ы \ \ \ Э / / / Ы |ю
ю|_______/ \ _ __ _ / \_______|ю
\\---------- ------- -----------//
\ яVERHOWNY ЙООООО»яяMENKO /
\ЯЯЯЯЯЯЯЯ ИКОєОКј ЯЯЯЯЯЯЯЯЯ/
>=========== ============<
* 0 + + 0 *
*\ 0 + + 0 /*
* \ 0 ++++ 0 / *
* " 00000000 " *
\ Ы " " Ы /
< )я ( )
\ / " " " " \ /
< ¬ ¬ )
\ ¬ ¬ /
< ¬ ТТ\ /ТТ ¬ )
юІІ \/ ІІю
\ юІІІ ІІІю /
¬ \ ЫЫ ЫЫ / ¬
¬ ДДДДДДДД ¬
\ \ ¬яЫяЫЫ Ы ¬ / /
\ \ ЫяЫя Ы Ы / /
\ - - - /
\ /
эС0^^^^0Сэ
¬ ¬

3 | Автор: babun9999 | 2012-10-20, 12:46   --------->
Quote (babun9999)
program FIGOVINA;
Хм, реально фиговина. Наворотил ... У нас номинация есть - самый короткий код
4 | Автор: admin | 2012-10-21, 21:11   |  Репутация: [ + 21 ]
program perevertih;
{Вывод числа задом наперед.
¶Версия 1.2
19.10.2012г.
umbr@ mortis}

var a,b,x:real;

begin
write('Введите число а ');
readln(a);
x:=a;
b:=0;
while x<>0 do
begin
b:=(b+(trunc(x)-trunc(x/10)*10))*10;
x:=trunc(x/10);
end;
writeln('Число перевертыш - ',b/10);
if a=b/10 then writeln('Число читаеться одинаково с обих сторон')
else writeln('Число читаеться по разному с разных сторон')
end.

Добавлено (07.11.12, 02:42)
---------------------------------------------
Еще один вариант решение етой задачи

program perevertih;
{Вывод числа задом наперед.
¶Версия 2.1
29.10.2012г.
umbr@ mortis}

var z:real;
d,x,s:longint;
i:integer;

begin
write('Введите целое число - ');
readln(d);
x:=0;
s:=d;
if d<0 then d:=-d;
while d>0 do begin
d:= d div 10;
inc(x);
end;
d:=s;
z:=0;
for i:= 1 to x do begin
z:=z*10+s mod 10;
s:= s div 10;
end;
writeln('Число перевертыш - ',z);
end.

5 | Автор: umbra111mortis | 2012-11-07, 02:42   |  Репутация: [ + 0 ]
Quote (umbra111mortis)
umbra111mortis

Самая адекватная прога из всех имеющихся.
Замечания:
1) Есть излишний код
2) Не учтён ввод, к примеру: "0012345", программа выдаёт "54321"


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
6 | Автор: Berestovskiy | 2012-11-12, 18:19   |  Репутация: [ + 211 ]
Форум ПРОГРАММИСТОВ » УЧЕБНЫЕ МАТЕРИАЛЫ » Лабораторки » Задача о числе перевертыше
Страница 1 из 11
Поиск: