Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [PASCAL] Строки 
:(
    Опции темы
Lutichka
Дата 10.5.2007, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 10.5.2007

Репутация: нет
Всего: нет



В массиве строк найти все слова составленые более чем из 8 букв 
PM MAIL   Вверх
Klin
Дата 10.5.2007, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 2
Всего: 25



Это просто smile

Код

uses CRT; { библиотека для очистки экрана }
var text: string;
      Last: integer;
{--------------------------------------------------------------}

{ функция нахождение пробела с позиции}
function FindSpace(LastPos: integer; mytext: string): integer;
begin
 FindSpace:=Pos(chr(32), Copy(mytext,LastPos,Length(mytext)) );
end;
{--------------------------------------------------------------}
begin
 clrscr; { очистка экрана }
 Last:=0; text:='123456 12345678 1234 123456789';
 { вводим текст любым способом }

 text:=text + chr(32);
 { добавляем к строке пробел }

 writeln('Исходный текст: ',text); writeln;
 writeln(' - слова, в которых букв больше 8:'); writeln;
 { выводим сообщение о наших действиях }

 while Last <> Length(text) do begin  { до тех пор, пока позиция не равна количеству символов }
  if ( FindSpace(Last+1,text)-1> 8) then
    writeln(Copy(text,Last+1,FindSpace(Last+1,text)));
  Last:=Last+FindSpace(Last+1,text);
 end;
 { ищем слова, в которых букв больше 8 и выводим их на экран }

end.


Добавлено через 37 секунд
все слова должны разделяться пробелами


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Lutichka
Дата 10.5.2007, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 10.5.2007

Репутация: нет
Всего: нет



Спасибо, а как это можно сделать не применяя процедур и функции 
PM MAIL   Вверх
Klin
Дата 10.5.2007, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 2
Всего: 25



уточнять надо smile сейчас переделаем.

Добавлено @ 13:05
Код

uses CRT; { библиотека для очистки экрана }
var text: string;
     Last: integer;
{--------------------------------------------------------------}
begin
 clrscr; { очистка экрана }
 Last:=0; text:='123456 12345678 1234 123456789';
 { вводим текст любым способом }

 text:=text + chr(32);
 { добавляем к строке пробел }

 writeln('Исходный текст: ',text); writeln;
 writeln(' - слова, в которых букв больше 8:'); writeln;
 { выводим сообщение о наших действиях }

 while Last <> Length(text) do begin  { до тех пор, пока позиция не равна количеству символов }
  if ( Pos(chr(32), Copy(text,Last+1,Length(text)))-1>8 ) then
   writeln(Copy(text,Last+1,Pos(chr(32), Copy(text,Last+1,Length(text)))));
  Last:=Last+Pos(chr(32), Copy(text,Last+1,Length(text)));
 end;
 { ищем слова, в которых букв больше 8 и выводим их на экран }

end.


Это сообщение отредактировал(а) Klin - 10.5.2007, 13:06


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Lutichka
Дата 10.5.2007, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 10.5.2007

Репутация: нет
Всего: нет



А КАК ввести это все виде массива строк
PM MAIL   Вверх
Klin
Дата 10.5.2007, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 2
Всего: 25



Немного не понял, что именно нужно:
Код

uses CRT; { библиотека для очистки экрана }
const count = 4;
var text: array[1..count] of string;
     i: integer;
{--------------------------------------------------------------}
begin
 clrscr; { очистка экрана }
 for i:=1 to count do begin
  write('Enter text(',i,'): '); readln(text[i]);
 end;
 { запись строк }
 for i:=1 to count do
  if Length(text[i])>8 then writeln(text[i]);
 { поиск "больших" слов }
end.


или так (поиск в каждом массиве):
Код

uses CRT; { библиотека для очистки экрана }
const count = 4;
var text: array[1..count] of string;
     Last,i: integer;
{--------------------------------------------------------------}
begin
 clrscr; { очистка экрана }


 for i:=1 to count do begin

  Last:=0;text[i]:='123456 12345678 1234 123456789';
  { вводим текст любым способом }

  text[i]:=text[i] + chr(32);
  { добавляем к строке пробел }

  writeln; writeln('Исходный текст (строка номер ',i,'): ',text[i]); writeln;
  writeln(' - слова, в которых букв больше 8:'); writeln;
  { выводим сообщение о наших действиях }

  while Last <> Length(text[i]) do begin  { до тех пор, пока позиция не равна количеству символов }
    if ( Pos(chr(32), Copy(text[i],Last+1,Length(text[i])))-1>8 ) then
     writeln(Copy(text[i],Last+1,Pos(chr(32), Copy(text[i],Last+1,Length(text[i])))));
    Last:=Last+Pos(chr(32), Copy(text[i],Last+1,Length(text[i])));
  end;
  { ищем слова, в которых букв больше 8 и выводим их на экран }

 end;

end.



--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Lutichka
Дата 10.5.2007, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 10.5.2007

Репутация: нет
Всего: нет



Извините lenght(text(i)>8 выдает ошибку 
PM MAIL   Вверх
Lutichka
Дата 10.5.2007, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 10.5.2007

Репутация: нет
Всего: нет



я правильно говорю .  там в третьем примере где просто через массив строк пишется именно так
PM MAIL   Вверх
Klin
Дата 11.5.2007, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 2
Всего: 25



Lutichka, ну что вы народ путаете? Синтаксис не знаете, тогда хоть народ не смешите.
НЕ 
Цитата(Lutichka @  10.5.2007,  20:15 Найти цитируемый пост)
lenght(text(i)>8

А
Цитата(Klin @  10.5.2007,  18:29 Найти цитируемый пост)
Length(text[i])>8

Скобки должны быть квадратными, функция должна закрывать и писаться с большой буквы (для некоторых компиляторов).

p.s. Я весь код составляю и проверяю компилятором. Правильно переписывайте, а лучше копируйте код.


keenara, помогло хоть?


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0466 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.