Задача: вводится число, вывести его в цифры в обратном порядке. Пример: вводят 2468, выводят: 8642. Требуется придумать самый оригинальный алгоритм и написать самую короткую программу.
|
|
|
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.
|
|
|
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
--------->
|
|
|
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.
|
|
|
Quote (umbra111mortis) umbra111mortis Самая адекватная прога из всех имеющихся. Замечания: 1) Есть излишний код 2) Не учтён ввод, к примеру: "0012345", программа выдаёт "54321"
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|