Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Алгоритмы с комбинацией циклов и условных оператор

Автор: GORBUNKI 13.04.2004 15:52

Помогите решить 1 задачу:
1.Дано натуральное число. Приписать к нему такое же.
Заранее Спасибо

Автор: APAL 13.04.2004 17:54

Что значит "приписать"?

Автор: fms 14.04.2004 7:10

так что ли?! :D
s:=s*10+s;

Автор: GORBUNKI 14.04.2004 14:51

Цитата
так что ли?! 
s:=s*10+s;

Нет стопудово не так.Объесняю дано число Например 3214 и надо получить на экране 321432141

Автор: Darkwolf 14.04.2004 15:38

Может чёнибутьи на пёшу если время будет.
Один вопрос откуда последняя еденица

Автор: SKVOZNJAK 14.04.2004 15:46

Если только на экране, то при помощи модуля CRT вписывай любые числа в любое место экрана :D А потом попробуй убедить препода, что это не издевательство ;)
Другой способ: ращепи числа на символы(в разделе это было), загони в строковую переменную(или массив) и выводи на экран.

Автор: sandman 14.04.2004 17:41

Это делается через str. Вводим число, переводим его в string, а дальше все вроде понятно smile.gif

Автор: Altair 14.04.2004 18:27

Цитата
Это делается через str. Вводим число, переводим его в string, а дальше все вроде понятно 

Для тех, кто не понял:
Код

Program _123_123123;
var
a:integer;
s,s1:string;

begin
Write('введите число: '); Readln(a);
str(a,s);
str(a,s1);
s:=s+s1;
Writeln('Число и приписанное к нему точно такое:');
Writeln(s)
end.

А вот так не сдаст он эту работу, если в задание сказанно, что использовать надо циклы и условные операторы!
(хотя можно - переписать процедуру STR)

Автор: fms 15.04.2004 3:19

Цитата(GORBUNKI @ 14.04.04 11:51)
Нет стопудово не так.Объесняю дано число Например 3214 и надо получить на экране 321432141

и совсем не стопудово..

я просто показала на примере с однозначным числом.. а если у тебя число больше десяти то ты потом домножаешь не на 10 а на 100 и прибавляешь уже к нему.. smile.gif

конечно слишком большие потом числа получатся.. но все равно метод.. smile.gif

Автор: Altair 15.04.2004 10:23

Да, согласен с fms.
И я думаю, что вам придется использовать как- раз метод домножения на 10 в некоторой степени!

Автор: Atos 17.04.2004 9:55

Тогда можно переделать так:

Код

var a, tmp1, tmp2:longint;

begin
Writeln('введите число: '); Readln(a);
tmp1:=a;
tmp2:=a;
repeat
tpm1:=tmp1 div 10;
tmp2:=tmp2*10;
until (tmp1=0);
Writeln('Число и приписанное к нему точно такое:');
Writeln(tmp2+a);
readln;
end.