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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2009, 20:53   #1
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
Радость поможете с Паскалем?(можете посмотреть в чем ошибки???)

Здравствуйте!!!! плиз проверьте в чем ошибки Тема процедуры и функции.

Вот условие задачи: напечатать все различные русские слова.

Код:
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.
Очень вас прошу помочь с решением задачи: Пользуясь процедурой сложения двух векторов, получить сумму векторов a, b, x, y..плиз....
aiktz вне форума Ответить с цитированием
Старый 17.04.2009, 12:52   #2
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

Цитата:
плиз проверьте в чем ошибки
если компилировалось в Тurbo Pascale и выполняется на процессоре выше 386,то желательно убрать строку
Цитата:
uses crt;
тем болеее что вы не используете этот модуль в своей программе.
Всякое безобразие должно быть единообразным. Тогда это называется порядком.

Последний раз редактировалось Anatole; 17.04.2009 в 12:56.
Anatole вне форума Ответить с цитированием
Старый 17.04.2009, 14:10   #3
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Цитата:
Сообщение от Anatole Посмотреть сообщение
если компилировалось в Тurbo Pascale и выполняется на процессоре выше 386,то желательно убрать строку тем болеее что вы не используете этот модуль в своей программе.
Эта проблема давно решена.

А в чём ошибки?
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
А новичку поможете? EliteKILLER Общие вопросы C/C++ 14 23.03.2010 19:15
Девушке поможете? matavella Паскаль, Turbo Pascal, PascalABC.NET 1 26.12.2008 00:16
Поможете на экзамене? Cyberbest Помощь студентам 3 04.06.2008 05:16