Кому порешать задачи - пишите сюда

Пух

كنت بلهاء
Модератор
особо не проверял, примерно так
Код:
uses crt;
var s,s1,s2:string;
ch:char;
n,d,i:integer;
begin
clrscr;
writeln('Input string:');
readln(s);
n:=length(s);
s2:=''; i:=1;
while i<n do
  begin
    s1:='';
    d:=0;
       while  ((s[i]<>' ') and (s[i]<>'.')) do
         begin
           s1:=s1 + s[i];
           inc(d);  inc(i);
        end;

    ch:=s1[1];
    s1[1]:=s[i-1];
    s1[d]:=ch;

    s2:=s2 + s1 + ' ';
    inc(i);
 end;

  s2:=s2+'.';
  writeln(s2);
  readln;
end.
текст вводится как в задании...
ввод: 123 456 789.
вывод: 321 654 987.
 

Пух

كنت بلهاء
Модератор
и да, не юзай goto, а то будет несчастье.
Делать проверку после выполнения всех действий - глупо.
Хочешь проверить правильность вводимых данных - проверь последний символ строки. Если он не равен точке, то или выход или ввод новых данных (цикл repeat until)
 

nuHrBuH

один
и да, не юзай goto, а то будет несчастье.
Делать проверку после выполнения всех действий - глупо.
Хочешь проверить правильность вводимых данных - проверь последний символ строки. Если он не равен точке, то или выход или ввод новых данных (цикл repeat until)
А почему Goto нельзя использовать? Что это вообще за процедура?
 

KoLoB

KoLoB.cz
А почему Goto нельзя использовать? Что это вообще за процедура?
Goto - оператор безусловного перехода.

1. Несмотря на то, что с помощью goto можно реализовать даже цикл (а на самом деле именно по этому) использовать его не стоит - код получается нечитаемым. Через месяц вы сами с трудом разберётесь в своей программе. Это будет выглядеть, как будто кто-то перемешал все страницы в книге Кафки. Попробуйте такое прочитать.
2. goto очень любят использовать новички, а профессионалы его почти не используют. Если вы хотите, чтоб вас считали хорошим программистом - пользуйтесь continue и break.
 

Storm_10

Member
и да, не юзай goto, а то будет несчастье.
Делать проверку после выполнения всех действий - глупо.
Хочешь проверить правильность вводимых данных - проверь последний символ строки. Если он не равен точке, то или выход или ввод новых данных (цикл repeat until)
а почему начальное значения 'i' берёте за 1 ?
 

Storm_10

Member
есть у ковота литература по Турбо Паскаль в электронном виде, с примерами для начального уровня?
 

Storm_10

Member
особо не проверял, примерно так
Код:
uses crt;
var s,s1,s2:string;
ch:char;
n,d,i:integer;
begin
clrscr;
writeln('Input string:');
readln(s);
n:=length(s);
s2:=''; i:=1;
while i<n do
  begin
    s1:='';
    d:=0;
       while  ((s[i]<>' ') and (s[i]<>'.')) do
         begin
           s1:=s1 + s[i];
           inc(d);  inc(i);
        end;

    ch:=s1[1];
    s1[1]:=s[i-1];
    s1[d]:=ch;

    s2:=s2 + s1 + ' ';
    inc(i);
 end;

  s2:=s2+'.';
  writeln(s2);
  readln;
end.
текст вводится как в задании...
ввод: 123 456 789.
вывод: 321 654 987 begin_of_the_skype_highlighting              321 654 987      end_of_the_skype_highlighting.
программа делает чють не то что в условии, нужно чтобы 1 символ слова ставился в конец слова
 

Пух

كنت بلهاء
Модератор
а почему начальное значения 'i' берёте за 1 ?
нумерация массивов идет с 1 (в си - с нуля).
на счет задачи - я менял 1ю и последнюю букву местами.
переделать легко. Запомнить первую букву, удалить её и в конец слова дописать запомненную букву.


ch:=s1[1];
s1[1]:=s[i-1];
s1[d]:=ch;
поменять на
ch:=s1[1];
s1[d+1]:=ch;
delete(s1,1,1);
вроде так
 

nuHrBuH

один
Goto - оператор безусловного перехода.

1. Несмотря на то, что с помощью goto можно реализовать даже цикл (а на самом деле именно по этому) использовать его не стоит - код получается нечитаемым. Через месяц вы сами с трудом разберётесь в своей программе. Это будет выглядеть, как будто кто-то перемешал все страницы в книге Кафки. Попробуйте такое прочитать.
2. goto очень любят использовать новички, а профессионалы его почти не используют. Если вы хотите, чтоб вас считали хорошим программистом - пользуйтесь continue и break.
Ну Break я знаю что означает, а Continue? Для чего она?
 

fakirr

Member
Язык:паскаль!
контрольная работа по програмированию, 2 курс 1 семестр!
кто может сделать пишите в ЛС!!!
 
Зверху