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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2009, 21:12   #1
4otenado
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 39
По умолчанию Pascal (тип String и массивы).

Помогите пож-та решить задачи.
1. В тексте удалить слова с нечётным количеством букв. Конец ввода F1. (на тип String).
2. В матрице F(7x7) упорядочить элементы главной диагонали в порядке возрастания. Определить сумму элементов, лежащих под главной диагональю. (массивы).
4otenado вне форума Ответить с цитированием
Старый 07.10.2009, 08:51   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В тексте
Текст откуда берется?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.10.2009, 09:15   #3
Consol
Пользователь
 
Регистрация: 19.08.2009
Сообщений: 89
По умолчанию

2)упонядочивание
Код:
for i:=1 to 6 do
 for j:=i+1 to 7 do
  if a[i,i]>a[j,j] then
    begin
      temp:=a[i,i];
      a[i,i]:=a[j,j];
      a[j,j]:=temp;
    end;
2) вычисление суммы элементов под главной диагональю
Код:
sum:=0;
for i:=2 to 7 do
 for j:=1 to i-1 do
  sum:=sum+a[i,j];

Последний раз редактировалось Stilet; 07.10.2009 в 09:34.
Consol вне форума Ответить с цитированием
Старый 07.10.2009, 09:31   #4
Consol
Пользователь
 
Регистрация: 19.08.2009
Сообщений: 89
По умолчанию

Цитата:
В тексте удалить слова с нечётным количеством букв. Конец ввода F1. (на тип String).
Код:
s:='sdl sdg ds;lkfgdslkjg sdfg dsfg dfjkgdsfhg sdkjg';
ss:='';
sss:='';
for i:=1 to  length(s) do
 if (s[i] in ['a',..,'z']) then
  ss:=ss+s[i]
  else
   begin
     if not(odd(length(ss)) then
      sss:=sss+ss+s[i]
        else
          if (length(ss)=0) then
          sss:=sss+s[i];
 
   end;
writeln(sss);
Consol вне форума Ответить с цитированием
Старый 07.10.2009, 17:31   #5
4otenado
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 39
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Текст откуда берется?
текста небыл.

Код:
program str;
var st1; st2; st3: string;
begin
st1:='sdl sdg ds;lkfgdslkjg sdfg dsfg dfjkgdsfhg sdkjg';
st2:='';
st3:='';
for i:=1 to  length(s) do
 if (st1[i] in ['a',..,'z']) then
  st3:=st2+st1[i]
  else
   begin
     if not(odd(length(ss)) then
      st3:=st3+st2+st1[i]
        else
          if (length(ss)=0) then
          sss:=st3+st1[i];
   end;
writeln(st3);
end.
скажите что тут неправильно, программа не работает=(.

Последний раз редактировалось Stilet; 09.10.2009 в 09:39.
4otenado вне форума Ответить с цитированием
Старый 09.10.2009, 09:48   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хм... не очень мне твой пример нравится.
Если он не работает могу предложить свой:
Код:
  var l,e,s:string;
  k,i:integer;
begin
 s:='sdl sdg ds;lkfgdslkjg sdfg dsfg dfjkgdsfhg sdkjg';
 k:=0;  e:='';l:='';
 for i:=1 to length(s) do begin
 {Читаем строку до пробела}
   if s[i]<>' ' then begin
     inc(k); e:=e+s[i];
    end else   begin
 {Если пробел встретился, анализируем сколько в строке символов
 и если четное кол-во то присваиваем считанную часть строки другой строке, а считанную часть освобождаем для следующей части}
     if k mod 2=0 then    l:=l+e+' ';
     e:=''; k:=0;
   end;
 end;
 writeln(s);writeln(l);
 readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.
Смысл ясен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.10.2009, 17:08   #7
4otenado
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 39
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Хм... не очень мне твой пример нравится.
Если он не работает могу предложить свой:
Код:
  var l,e,s:string;
  k,i:integer;
begin
 s:='sdl sdg ds;lkfgdslkjg sdfg dsfg dfjkgdsfhg sdkjg';
 k:=0;  e:='';l:='';
 for i:=1 to length(s) do begin
 {Читаем строку до пробела}
   if s[i]<>' ' then begin
     inc(k); e:=e+s[i];
    end else   begin
 {Если пробел встретился, анализируем сколько в строке символов
 и если четное кол-во то присваиваем считанную часть строки другой строке, а считанную часть освобождаем для следующей части}
     if k mod 2=0 then    l:=l+e+' ';
     e:=''; k:=0;
   end;
 end;
 writeln(s);writeln(l);
 readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.
Смысл ясен?
Спасибо, смысл ясен, но в условии задачи нужно из текста удалить слова с нечётным количеством букв, и ещё нужно прописать конец ввода F1[просто забыл как ето делается].
4otenado вне форума Ответить с цитированием
Старый 24.12.2009, 20:14   #8
4otenado
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 39
По умолчанию

пожалуйста помогите доделать 1ю, ну и вторую заодно, а то её я вообще не понял.
заранее спасибо.
4otenado вне форума Ответить с цитированием
Старый 25.12.2009, 18:11   #9
4otenado
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 39
По умолчанию

++++срочно надо++++
4otenado вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA. Как задать динамичиский тип string? Snark Помощь студентам 2 30.09.2009 10:01
Тип string и Edit. (*_*) Общие вопросы C/C++ 2 04.06.2009 14:34
тип данных string (C)stalin(Cpp) Общие вопросы C/C++ 1 01.06.2009 22:49
Перевести тип String в тип PChar (Delphi 7) ScorpioN_T Помощь студентам 2 28.10.2008 22:13
Как множестве добавить тип string? IgorKr Общие вопросы Delphi 2 26.12.2007 14:23