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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Pascal] Процедуры + Функции 
:(
    Опции темы
Nastya90
  Дата 12.4.2009, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



плиз помогите с решением задачки про процедуры и функциии, а остальные попробудю решить сама, ориантируясь на эту!!!! плиззззззз!!!
 
напечатать Все различные русские слова
PM MAIL   Вверх
volvo877
Дата 12.4.2009, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

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



Для домашних заданий, курсовых, существует "Центр Помощи"

Тема перенесена! 
PM MAIL   Вверх
Akonkagva1
Дата 13.4.2009, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Что значит все возможные русские слова ? Можно поконкретнее... Все реально существующие или как ?
PM MAIL WWW Skype   Вверх
Nastya90
Дата 13.4.2009, 04:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ну вот к примеру есть строка: YA k тебе сегодня priedy vecherom
 вот их этой строки нужно выбрать только русские слова
PM MAIL   Вверх
t_gran
Дата 13.4.2009, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 13.11.2007
Где: г.Усть-Илимск

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



Блин, с вами и на Pas-ca-ca-l-е научишься в совершенстве кодить! smile
Код

uses crt;

const
   CAlfLen= 255;
   CChars= 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя';
   CDelimiters= ' {},.!?`~^&%';
type
   TAlf= array [0..CAlfLen] of boolean;

{----------------------------------------------}
{Создаём на базе шаблона алфавит}
procedure AlfCreateFromPattern (var theAlf: TAlf; const thePattern: string);
var
   i: integer;
begin
   for i:= 0 to CAlfLen do
      theAlf[i]:= false;
   for i:= 0 to length(thePattern) do
      theAlf[integer(thePattern[i])]:= true;
end;
{----------------------------------------------}
{Проверяем, входит ли данный символ в алфавит}
function CharInAlf (theChar: char; theAlf: TAlf): boolean;
begin
   CharInAlf:= theAlf[integer(theChar)];
end;
{----------------------------------------------}
{Состоит ли слово из символов данного алфавита}
function WordCompareWithAlf (theWord: string; theAlf: TAlf): boolean;
var
   i: integer;
   r: boolean;
begin
   r:= true;
   for i:= 1 to length(theWord) do
      if not CharInAlf (theWord[i], theAlf) then
      begin
         r:= false;
         break;
      end;
   WordCompareWithAlf:= r;
end;
{----------------------------------------------}
{Вырезаем первое слово из строки + уничтожаем все разделители}
function PopWordFromString (var theStr: string; var theWord: string; theDelimiter: TAlf): boolean;
var
   i, j: integer;
   len: integer;
begin
   len:= length(theStr);
   if (len = 0) then
   begin
      theWord:= '';
      PopWordFromString:= false;
      exit;
   end;
   i:= 1;
   while (i < len) and (not CharInAlf (theStr[i], theDelimiter)) do
      inc(i);
   j:= i;
   while (j < len) and CharInAlf (theStr[j], theDelimiter) do
      inc(j);
   if (i < len) then
      dec(i);
   if (j < len) then
      dec(j);
   theWord:= copy (theStr, 1, i);
   Delete (theStr, 1, j);
   PopWordFromString:= true;
end;
{----------------------------------------------}
var
   str, word: string;
   alf, del: TAlf;
begin
   AlfCreateFromPattern (alf, CChars);
   AlfCreateFromPattern (del, CDelimiters);
//   write ('Предложение: ');
//   readln (str);
   str:= 'Привет мир I gо :-) to хом';
   while (PopWordFromString(str, word, del)) do
   begin
      if (WordCompareWithAlf(word, alf)) then
         write (word, ' ');
   end;
end.


Это сообщение отредактировал(а) t_gran - 13.4.2009, 08:43


--------------------
Я знаю, что ничего не знаю© Сократ
user posted image
PM MAIL WWW   Вверх
volvo877
Дата 13.4.2009, 12:26 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

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



Цитата(t_gran @  13.4.2009,  08:09 Найти цитируемый пост)
научишься в совершенстве кодить!
А ты что, на Паскале задачу решал? Нет тут Паскаля, и даже не пахнет им... Ты пишешь на Сях? Вот и пиши... А в Паскале (я бы просил не коверкать название языка!!!) есть гораздо более подходящие средства для решения этой задачи. И то, что тебе пришлось эмулировать множество - это твои личные заморочки - половину функций в топку, вторая половина становится вполовину меньше объемом, функциональность остается прежней. Помощники, блин... А потом вот такие "спецы" как ты и разжигают все холивары, дескать, смотрите, какой неправильный язык. А ты его ЗНАЕШЬ, чтоб на нем (и О НЕМ) писать?
PM MAIL   Вверх
t_gran
Дата 14.4.2009, 04:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 13.11.2007
Где: г.Усть-Илимск

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



Многоувожаемый, volvo877, прошу извенить меня за столь "грубые" высказывания в адрес этого легендарного языка.

Цитата

есть гораздо более подходящие средства для решения этой задачи

Не спорю, множества есть.

Цитата

эмулировать множество - это твои личные заморочки

Вы правы, это мои личные заморочки!

Цитата

половину функций в топку, вторая половина становится вполовину меньше объемом

Тек в чём проблема, написали бы, а то кричать из за угла любой горазд.

А разжигать холивар я бы и не посмел, т.к. я очень уважаю труды Н.Вирта.
Что же касается моего сорказма, то не берите в голову, я просто был в "хорошем" настроении.

Это сообщение отредактировал(а) t_gran - 14.4.2009, 04:44


--------------------
Я знаю, что ничего не знаю© Сократ
user posted image
PM MAIL WWW   Вверх
t_gran
Дата 14.4.2009, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 13.11.2007
Где: г.Усть-Илимск

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



А какая критика будет на этот код?
Код

uses crt;
const
   CChar= ['А'..'Я','а'..'я'];
   CDelim= [' ','{','}',',','.','!','?','`','~','^','&','%'];
type
   TAlf= set of char;
{-----------------------------------------------}
function WordCompareWithAlf (theWord: string; theAlf: TAlf): boolean;
var
   i: integer;
   r: boolean;
begin
   r:= true;
   for i:= 1 to length(theWord) do
      if not (theWord[i] in theAlf) then
      begin
         r:= false;
         break;
      end;
   WordCompareWithAlf:= r;
end;
{-----------------------------------------------}
function PopWordFromString (var theStr: string; var theWord: string; theDelimiter: TAlf): boolean;
var
   i, j: integer;
begin
   i:= 1;
   while not (theStr[i] in theDelimiter) do
      inc(i);
   j:= i;
   while (theStr[j] in theDelimiter) do
      inc(j);
   theWord:= copy (theStr, 1, i-1);
   Delete (theStr, 1, j-1);
   if (length(theWord) = 0) then
      PopWordFromString:= false
   else
      PopWordFromString:= true;
end;
{-----------------------------------------------}
var
   str, word: string;
begin
   str:= 'Привет мир, I g? :-) to хом';
   while (PopWordFromString(str, word, CDelim)) do
   begin
      if (WordCompareWithAlf(word, CChar)) then
         write (word, ' ');
   end;
end.


Кстати следующая строка не однозначна, и упирается в реализацию конкретного компилятора:
Код

3.  CChar= ['А'..'Я','а'..'я'];

Т.к. значения интервала бируться из таблицы в которой может иметь место разрыв (в котором будут распологаться совсем не те символы которые нам необходимы). Поэтому я и вводил константную сторку, чтобы исключить вероятность возникновения такой проблемы.


Это сообщение отредактировал(а) t_gran - 14.4.2009, 07:47


--------------------
Я знаю, что ничего не знаю© Сократ
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

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


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

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

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

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


 




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


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

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