Помощь - Поиск - Пользователи - Календарь
Полная версия: Циклы, строки, массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Тупой прогер
Такие задачи:
1. Приписать по 1 в начало и в конец записи числа N. Наример было 5379, стало 153791.
2. Определить, является ли заданное число степенью 3.
3. Выяснить, является ли последовательность цифр натурального числа при просмотре их справа налево возрастающей последовательностью. Наример для числа 76431 ответ положительный, а для 9782 - отрицательный.
Если кто-то решит хоть одну задачу из этих трех - буду признателен. smile.gif

В следующий раз тему с таким названием удалю
klem4
Все задачи решалсиь, пользуйся поиском
подсказка : как выделить цифру из числа

uses crt;
var
n : word;
begin
readln(n);
while(n>0) do begin
writeln(n mod 10);
n := n div 10;
end;
readln
end.
Tupoi_Proger
только что проюзал поиск - таких задач не нашел. ((
плиз, помогите. мне котнтрольную задали из 50 задач. все решил кроме этих 3. уже голову сломал.
по 1ой у меня вот что только получается:
Код

program Zadacha;
uses CRT;
var
s: real;
k,n,x,i : integer;
begin
clrscr;
write('Vvedite chislo ');
readln(n);
x:=n;k:=1;
while (x div 10) > 0 do
begin
x:=x div 10;
k:=k+1;
end;
s:=0;
for i:=1 to k do
s:=(s +(exp(i*ln(10))*(n div (10*i))));
s:=(s + 1 + 10*(k+2));
write(s:5:2);
readkey;
end.

в чем ошибка?
ЗЫ от головной боли пришла альтернативная идея - схалтурить:
Код
program Haltura;
uses CRT;
var k,n,x : longint;
begin
clrscr;
write('Vvedite chislo ');
readln(n);
write('1',n,'1');
readkey;
end.

но думаю препод не оценит.
klem4
1)

uses crt;
var
n,temp,count : LongInt;
begin
readln(n);
temp := n;
count := 0;
while(n>0) do begin
n := n div 10;
inc(count);
end;
temp := temp + round(exp(count*ln(10)));
temp := temp * 10 + 1;
writeln(temp);
readln
end.
volvo
Можно проще:
var
n, T: longint;

begin
ReadLn(n);
T := 1;
repeat
T := 10 * T;
until T > n;
T := (T + n) * 10 + 1;

writeln(T);
end.
Tupoi_Proger
Цитата(klem4 @ 21.12.2005 20:52) *


inc(count);




спасибо огромное! smile.gif
только у меня один вопрос: а что делает эта строчка? что такое inc?
klem4
volvo good.gif

inc(i) то же самое что i := i + 1;
inc(i,6) то же самое что i := i + 6;

dec(i) - обратная ф-я к inc (уменьшает значение)
Tupoi_Proger
спасибо за интересную функцию!
сам решил задачу со степенью)) вот код. может кому встретится подобная задача. думаю проще не решить. только если volvo опять не разорвет вклочья мой мозг. smile.gif
 
program Stepen;
uses CRT;
var n : integer;
begin
clrscr;
read(n);
while n div 3 <> 1 do
begin
if n mod 3 <> 0 then
begin
write('Net');
break;
end
else n:= n div 3;
end;
if n = 3 then write('Da');
readkey;
end.


ЗЫ дайте пожалуйста кто-нибудь подсказку по третьей. решу сам. мне нужна только отправная точка.
volvo
Ты сам сказал, что проще нельзя...
А вот так:
var
n, count: integer;

begin
readln(n); count := 0;
while n >= 3 do begin
count := count + (n mod 3);
n := n div 3;
end;

if (n = 1) and (count = 0) then writeln('yes')
else writeln('no');
end.

?
Tupoi_Proger
volvo!
во-первых, твоя прога не работает. она и 4ку и 5ку и 10ку считает за степень тройки, а вторых, а у меня без счетчика! blum.gif )))))))
да фиг с ней. я ее решил. лучше дай пожалуйста подсказку по 3ей. не знаю с чего начать.
volvo
Правда? Что ты говоришь... Во первых, учти, что я ВСЕ программы тестирую... И если я ее выложил, то будь уверен, она прошла как минимум 3 полных теста... А во вторых - теперь решай 3-ю задачу сам...

P.S. Вот лог работы программы:
Цитата
Running "f:\vlady documents\programs\pas\__als.exe /sum 20.5 63.2"
4
no
Running "f:\vlady documents\programs\pas\__als.exe /sum 20.5 63.2"
8
no
Running "f:\vlady documents\programs\pas\__als.exe /sum 20.5 63.2"
27
yes
Tupoi_Proger
сорри. не правильно набрал твой код. unsure.gif
а с третей... поламаю еще голову. mega_chok.gif
еще 2 дня до крайнего срока. в принципе время есть...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.