Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Задача про циклические сдвиги


Автор: bavaria 22.11.2009, 17:39
вообщем нужно составить програму(СРОЧНО!!!) где вводиться число с количеством букв в слове, потом первое слово, второе. и нужно найти сколько цикличных перемещений было сделано(ето когда последняя буква переходит на место первой а остальные сдвигаються на одну вправо).Мои наработки(исправте почему неправильно идет):

var s1,s2:string;c:char; n,k:integer;i:longint;
begin
readln(n);
readln(s1);
readln(s2);
k:=0;
for i:=1 to n do begin
c:=s1[n];
s1[n-i]:=s1[n-i+1];
s1[1]:=c;
k:=k+1;
end;
writeln(k);
end.

Автор: mr.Anderson 22.11.2009, 18:09

 ! 
mr.Anderson
Модератор: название темы должно содержать язык написания!


Автор: Frees 22.11.2009, 18:49
скока денег?

Автор: bavaria 22.11.2009, 18:57
а что кагбе за бесплатно такую ерунду помочь тяжело???

Автор: Frees 22.11.2009, 19:11
да нет не тяжко. только у тебя нет конкретного вопроса... а хочешь что бы сделали все за тебя(это как правило делается за деньги).

Автор: bavaria 22.11.2009, 19:40
просто обьясните почему оно постоянно меняет каждую букву на ту что была последней в первом слове с самого начало. и ответ нужен через час

Автор: ТоляМБА 22.11.2009, 20:04
Цитата(bavaria @  22.11.2009,  19:39 Найти цитируемый пост)
где вводиться число с количеством букв в слове
В каком слове? И вообще это можно вычислить функцией!

Цитата(bavaria @  22.11.2009,  19:39 Найти цитируемый пост)
потом первое слово, второе. и нужно найти сколько цикличных перемещений было сделано(ето когда последняя буква переходит на место первой а остальные сдвигаються на одну вправо)
Ну абсолютно ничего не понятно! Ввёл я, допустим, первое слово "данные", второе слово "результат". Что мне с ними делать и что должно получиться в итоге?!

Автор: bavaria 22.11.2009, 20:51
 нет
вводим число н(количество букв в слове)
потом слово1(н-р: карантин)
потом слово2(тинкаран)
и нужно посчитать сколько раз последняя буква в первом слове переходил на место первой(остальные буквы просто смещаються вправо)

Автор: bavaria 22.11.2009, 21:10
плиз
помогите срочно
сори за оффтоп но ОЧЕНЬ нужно прям сейчас

Автор: ТоляМБА 22.11.2009, 21:49
Код
program one;
const
     n=8;
var
   s1,s2:string;
   i,k:integer;
   c:char;
begin
     s1:='karantin';
     s2:='tinkaran';
     writeln('_',s1,'_');
     k:=0;
     while s1<>s2 do
     begin
          c:=s1[n];
          for i:=1 to n do
          begin
               s1[n-i+1]:=s1[n-i];
          end;
          inc(k);
          s1[1]:=c;
          writeln(s1);
     end;
     writeln(k,'_',s1);
readln;
end.


Добавлено через 8 минут и 1 секунду
На readln(s1) и s2 сам поменяешь? Ещё в цикл while надо добавить условие:
if k > n then break
а то может бесконечный цикл получиться если из первого сдвигами не получится второе. Просто тебе же срочно надо было, так что напильником уж сам  smile 

Автор: bavaria 22.11.2009, 22:10
спасибо но если бы на пару мин раньше написал=(

Автор: ТоляМБА 22.11.2009, 22:20
Цитата(bavaria @  22.11.2009,  22:51 Найти цитируемый пост)
вводим число н(количество букв в слове)потом слово1(н-р: карантин)потом слово2(тинкаран)и нужно посчитать сколько раз последняя буква в первом слове переходил на место первой(остальные буквы просто смещаються вправо)
Это надо было написать в первом посте.


В следующий раз описывай задачу более конкретно: что дано и что надо получить в результате.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)