![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
MiH@N |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
помогите плз найти и исправить ошибку в задаче на строки. условие такое:Дана строка, содержащая английский текст. Найти количество слов, начинающихся с буквы b.
procedure TForm1.Button1Click(Sender: TObject);после to выдаёт [Error] Unit1.pas(37): For loop control variable must be simple local variable подскажите что к чему? |
Michael_Rybak |
![]()
Сообщение
#2
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: ![]() ![]() ![]() |
двоеточие перед "=" пропустил
![]() |
MiH@N |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
тут я кое что подредактировал но всё равно требуемого результата не выходит...мож глянете где ещё ошибки.
З.Ы. всегда получается 0. Код procedure TForm1.Button1Click(Sender: TObject); var s : String; i,k : integer; begin s:=edit1.text; edit1.Text:=''; k:=0; for i:=1 to length(s) do if (s[i]=' b') then k:=k+1; edit2.Text:=inttostr(k); end; Сообщение отредактировано: MiH@N - 18.06.2008 6:19 |
Айра |
![]()
Сообщение
#4
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 731 Пол: Женский Репутация: ![]() ![]() ![]() |
хм.. а как это у тебя один символ строки s s[и] может равняться двум символам ' b' (пробел и b) ?
Сообщение отредактировано: Айра - 18.06.2008 7:39 |
мисс_граффити |
![]()
Сообщение
#5
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
k - это же число?
тогда нельзя делать edit2.Text:='k'; это выведет букву k, а не значение переменной k. надо Edit2.Text:=IntToStr(k); -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
MiH@N |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
я в исправленном коде это исправил.
![]() Добавлено через 8 мин. хм.. а как это у тебя один символ строки s s[и] может равняться двум символам ' b' (пробел и b) ? вообщет этим действием я хотел чтоб цикл проверял строку и находил в ней слова начинающиеся с b. а как правильно будет? нашол в FAQ похожую задачу но чёт неполучается правильно интерпретировать и перевести её в Delphi. Код function Count(Const s, w: String; start: Byte): Byte; const limits = ['.', ',', ';', '!', '?', ' ']; var p: Byte; begin p := Pos(w, Copy(s, start, 255)); if (start > length(s)) or (p = 0) then Count := 0 else if (((start + p - 2) = 0) or (s[ start + p - 2] in limits)) and (((start + p + length(w) - 2) = Length(s)) or (s[start + p + length(w) - 1] in limits)) then Count := 1 + Count(s, w, start + p + length(w) - 2) else Count := 0 + Count(s, w, start + p + length(w) - 2); end; Сообщение отредактировано: MiH@N - 18.06.2008 19:06 |
Sozialist |
![]()
Сообщение
#7
|
![]() Клавиатурный тиран ![]() ![]() Группа: Пользователи Сообщений: 79 Пол: Мужской Реальное имя: Дмитрий Репутация: ![]() ![]() ![]() |
procedure TForm1.Button1Click(Sender: TObject); Не проверял. Должно работать. Сообщение отредактировано: Sozialist - 19.06.2008 15:47 |
MiH@N |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо за помощь!
procedure TForm1.Button1Click(Sender: TObject); Не проверял. Должно работать. а что означает строка flag:boolean=true; ? может надо просто flag:boolean; ? и что означает ink(k)? Заранее спс. Сообщение отредактировано: MiH@N - 20.06.2008 14:18 |
Sozialist |
![]()
Сообщение
#9
|
![]() Клавиатурный тиран ![]() ![]() Группа: Пользователи Сообщений: 79 Пол: Мужской Реальное имя: Дмитрий Репутация: ![]() ![]() ![]() |
flag:boolean=true; - объявление типизированной константы - переменной, которая инициализируется при объявлении, иначе можно
var inc(k) то же, что и k:=k+1; Я просто привык к такому синтаксису. Сообщение отредактировано: Sozialist - 20.06.2008 15:30 |
![]() ![]() |
![]() |
Текстовая версия | 23.06.2025 1:33 |