Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Обработка строк. Использование множеств. Данные типа String. (http://www.tehnari.ru/f43/t42100/)

Svetlanka 15.11.2010 17:14

Обработка строк. Использование множеств. Данные типа String.
 
Дана строка символов, состоящая из нулей, единиц и пробелов. Группы нулей и единиц, разделенные пробелами (одним или несколькими) и не содержащие пробелы внутри себя, будем называть словами. Требуется подсчитать количество слов в данной строке. Рассматривая слова как числа, определить количество слов, делящихся на 5 без остатка.

Желательно с блок-схемой.

Svetlanka 15.11.2010 18:02

помогите пжл!!!!!!!!

Vladimir_S 15.11.2010 22:36

Цитата:

Сообщение от Svetlanka (Сообщение 418257)
помогите пжл!!!!!!!!

Пжл:
Код:

VAR
 S,SS:String;
 St:ARRAY[1..127] of String;
 Cnt,N,N5:Byte;
 i,pos:Integer;
 Code:Word;
 Num:LongInt;

BEGIN
 WriteLn('Enter the string:');
 ReadLn(S);
 N:=0;
 i:=0;
 pos:=1;
 Cnt:=0;
 REPEAT
  Inc(N);
  Repeat
  Inc(i);
  If S[i]<>' ' then Inc(Cnt);
  Until (S[i]=' ') or (i=Length(S));
  St[N]:=Copy(S,pos,Cnt);
  If i<Length(S) then
  begin
    Repeat
    Inc(i);
    Until S[i]<>' ';
    pos:=i;
    Cnt:=1;
  end;
 UNTIL i=Length(S);
 WriteLn('There are ',N,' words in the string');
 N5:=0;
 For i:=1 to N do
  begin
  VAL(St[i],Num,Code);
  If (Code=0) and ((Num mod 5)=0) then
    Inc(N5);
  end;
 WriteLn('There are ',N5,' numbers divisible by 5');
 ReadLn;
END.


Vladimir_S 16.11.2010 10:51

Так, внимание - поправка!
Вчера как-то не обратил внимание, что пробелов может быть больше одного. Сейчас поправки в код (#3) внесены.

Svetlanka 16.11.2010 23:43

не могу понять... что не так с этой строчкой???!!!

VAL(St[i],Num,Code);

Svetlanka 16.11.2010 23:44

все испробовала, все равно что-то не так!!

Vladimir_S 17.11.2010 09:44

Цитата:

Сообщение от Svetlanka (Сообщение 418860)
не могу понять... что не так с этой строчкой???!!!

VAL(St[i],Num,Code);

Света, давайте конкретнее! В чем проявляется это "не так"? Попытаемся разобраться, хотя, конечно, перед выкладыванием программа была тщательно оттестирована и у меня всё "так".

Svetlanka 17.11.2010 18:45

"Процедура VAL с параметрами указанных типов не найдена"

Vladimir_S 17.11.2010 20:45

Цитата:

Сообщение от Svetlanka (Сообщение 419143)
"Процедура VAL с параметрами указанных типов не найдена"

Так, ну это уже кое-что. Очевидно, гримасы разных реализаций Паскаль-транслятора.
По сути:
1. Процедура VAL (преобразование строки в число) - стандартная процедура Паскаля.
2. Попробуйте в Вашем Паскале вызвать Help, найти там этот VAL и посмотреть, какие типы параметров для него предусмотрены. Возможно, Вашему Паскалю не понравился тип LongInt для искомого числа и Word для Code, а хочет, например, чтобы и то и другое было Integer, ну или еще что-нибудь в этом роде (проблем с первым параметром - строковой переменной - быть не должно). Тогда нужно просто в списке глобальных переменных поправить тип параметра.

Дашка Шалахан 18.11.2010 00:20

......


Часовой пояс GMT +4, время: 14:45.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.