Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2007, 12:38   #1
zaraza21
Новичок
Джуниор
 
Регистрация: 03.11.2007
Сообщений: 2
По умолчанию Паскаль, строки, помогите

помогите решить задачу: поменять местами 1 и 2 предложение в тексте, задучу надо зделать сроковым массивом

строковым типом я зделал, а массивом немогу(

Var x:array [1..100] of char;
y:set of Char;
p,temp:string[255];
A:array [1..100] of integer;
e,i,j,c,k,q,temp2:Integer;

Begin
repeat
writeLn('1-stroka 2-massiv');
readln(q);
writeln;

case q of
1:begin
Writeln('vvedite predlogenie:');
Readln(p);
c:=Length(p);
j:=1;
for i:=1 to c do
begin
if (p[i]='.') then
begin
If (j >= 3) then break;
a[j]:=i;
j:=j+1;
end
end;

temp:=copy(p,1,a[1]);
delete(p,1,a[1]+1);
c:=length(p);
insert(' '+temp,p,a[2]-a[1]);

WriteLn(' ',p);
ReadLn;
End;
zaraza21 вне форума Ответить с цитированием
Старый 23.11.2007, 13:04   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот на скорую руку:

Код:
uses crt;
var a,b,s:string;
    x,z:array[1..255] of char;
 k,i:integer;
begin    clrscr;

{Меняем строками}
 s:='12313 123 23 123. gdsfjhhjhhg dsfgh gjhd f. ';
 k:=pos('.',s);
 a:=copy(s,1,k);
 delete(s,1,k);
 b:=s;
 s:=b+a;
 writeln(s);
{Меняем массивами}
 s:='12313 123 23 123. gdsfjhhjhhg dsfgh gjhd f. ';
 k:=pos('.',s);
 move(s,z,k);
 delete(s,1,k);
 move(s[1],x,length(s));
 writeln(x,z);
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.11.2007, 13:24   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот короткое решение с использованием массива строк. Это если поменять только 1 и 2 предложения.
Код:
program per_predl;
uses crt;
var s:array[1..3] of string;
    i:integer;
    x:string;
begin
  clrscr;
  s[1]:='Шел снег.'; s[2]:='Была зима.';s[3]:='Дети катались на санках.';
  for i:=1 to 3 do
     begin
      write(s[i],' ');
     end;
  readln;
  x:=s[1];s[1]:=s[2];s[2]:=x;
  for i:=1 to 3 do
     begin
      write(s[i],' ');
     end;
  readln;
  end.
puporev вне форума Ответить с цитированием
Старый 23.11.2007, 13:58   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

э-э-э стоп. А строка что уже разбита на элементы?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.11.2007, 14:01   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Программа откомпилирова и работает. А строки на элементы разбивать не нужно, т.к. каждая строка и есть элемент массива. Мы просто меняем местами элементы с индексами 1 и 2.
puporev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Задачи. (Графика, БД, строки) Aferist Помощь студентам 16 19.02.2010 17:48
Паскаль, 2 задачи на строки, 1 на процедуру Qfast Помощь студентам 15 25.12.2008 21:58
3 задачки на Паскаль. Массив,строки. помогите решить до завтра! meds Паскаль, Turbo Pascal, PascalABC.NET 2 29.05.2008 08:29
Помогите решить задачу на строки (паскаль) mpegable Помощь студентам 1 27.05.2008 09:08
Паскаль. задача на символьные массивы и строки zaraza21 Помощь студентам 1 03.11.2007 19:33