![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Milena |
![]()
Сообщение
#21
|
Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Женский Репутация: ![]() ![]() ![]() |
Всеж не получается у меня ...теперь проблема как сделать так , чтоб в верхний регистр переходили буквы начала строки.
Например, вход - "в полученном детерминированном автомате заключительными становятся те со" выход-В полученном Детерминированном автомате Заключительными становятся те со" Вот мой текст проги....подскажите что поменять, что добавить...моя фантазия испарилась Код program Verhnii_registr; uses crt; var ch: char; i : byte; count:integer; fin,fout:text; Function UpStr(S:char):char; {перевод строки в верхний регистр} Var I:Byte; Begin if S in ['a'..'z'] then S := UpCase(S) else begin if S in ['а'..'п'] then S:=Chr(Ord(S)-$20) else if S in ['р'..'я'] then S:=Chr(Ord(S)-$50); end; UpStr:=S; end; Var wasEOLn: boolean; begin clrscr; assign(fin,'in.txt'); reset(fin); assign(fout,'out.txt'); rewrite(fout); count:=0; wasEOLn := False; while not eof(fin) do begin read (fin,ch); If wasEOLn then ch := UpStr(ch); if ch=' ' then count:=count+1 else begin if count>2 then begin ch:= UpStr(ch); count:=0; end else count:=0; end; write(fout,ch); wasEOLn := (ch = #10) end; close(fin); close(fout); end. Проверь это Сообщение отредактировано: volvo - 30.11.2004 19:00 |
Milena |
![]()
Сообщение
#22
|
Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Женский Репутация: ![]() ![]() ![]() |
Volvo спасибо тебе большое...ты меня так выручаешь. Да я и сама уж заметила эту ошибку...тока теперь у меня еще одна проблема. Смотри выше.
|
volvo |
![]()
Сообщение
#23
|
Гость ![]() |
Milena
Есть идея. Дело в том, что в текстовом файле переход на след. строку кодируется 2-мя символами: #13#10. То есть, тебе нужно ввести новую переменную типа Boolean (например, WasEOLn:Boolean), при считывании символа проверять, не был ли считан #10 и если был, то этой переменной присваивать True. Смотри свой пост выше - я покажу, как это сделать... |
ShadowWatcher |
![]()
Сообщение
#24
|
Новичок ![]() Группа: Пользователи Сообщений: 29 Пол: Мужской Репутация: ![]() ![]() ![]() |
Есть такое предложение:
заменить строки Код if ch=' ' then count:=count+1 else ... на Код If (ch= ' ') Then Inc(Count) Else If (ch=#13) Then Count := 3 Else ... Тогда проверка на кол-во предшествующих пробелов сразу выдаст необходимость увеличить букву... |
Milena |
![]()
Сообщение
#25
|
Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Женский Репутация: ![]() ![]() ![]() |
Прикольно...но проблема то не решилась. Теперь просто становятся заглавными буквы начала строки, но не учитывается тот факт было ли перед ними нужное колическто пробелов в предыдущей строке или нет.
|
volvo |
![]()
Сообщение
#26
|
Гость ![]() |
Milena
Давай сразу полное задание. Хорошие программы не пишутся по частям (сделать одно, добавить второе, исправить третье). С самого начала нужно четко знать все условия и правила. Иначе происходит то, что получилось сейчас... Скорее всего, программу придется переписывать... |
Milena |
![]()
Сообщение
#27
|
Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Женский Репутация: ![]() ![]() ![]() |
Ну дык задание :Перевести заголовки в верхний регистр. Заголовком считается буква перед которой 3 или больше пробелов....вот
Добавлено (1.12.04 16:55): исходные данные хранятся в текстовом файле и записываются тож в текстовой файл |
volvo |
![]()
Сообщение
#28
|
Гость ![]() |
Milena
Прогонял эту программу по десятку файлов, на всех она отработала... Код program Verhnii_registr; uses crt; var ch: char; i : byte; count:integer; fin,fout:text; Function UpStr(S:char):char; Var I:Byte; Begin if S in ['a'..'z'] then S := UpCase(S) else begin if S in ['а'..'п'] then S:=Chr(Ord(S)-$20) else if S in ['р'..'я'] then S:=Chr(Ord(S)-$50); end; UpStr:=S; end; begin clrscr; assign(fin,'in.txt'); reset(fin); assign(fout,'out.txt'); rewrite(fout); count:=0; while not eof(fin) do begin read (fin,ch); if ch=' ' then count:=count+1 else if not (ch in [#10, #13]) then begin if count>2 then ch:= UpStr(ch); count:=0; end; write(fout,ch); end; close(fin); close(fout); end. Одно замечание - при проверке работы не изменяй текстовые файлы в Паскале. Изменяй их в Блокноте (Паскаль не сохраняет пробелы в конце строки)... Сообщение отредактировано: volvo - 1.12.2004 18:06 |
Milena |
![]()
Сообщение
#29
|
Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Женский Репутация: ![]() ![]() ![]() |
Volvo,спасибо большое ...все клево работает :-) Я счастлива :D
Добавлено (2.12.04 16:37): вот мне сегодня препод задал переделать прогу так, что переводились в верхний регистр тока символы у которых отступ ОТ НАЧАЛА СТРОКИ з или более пробела ![]() |
volvo |
![]()
Сообщение
#30
|
Гость ![]() |
Milena
Ну и как это называется? Опять меняем задание? Код program Verhnii_registr; uses crt; var ch: char; i : byte; count:integer; fin,fout:text; Function UpStr(S:char):char; Var I:Byte; Begin if S in ['a'..'z'] then S := UpCase(S) else begin if S in ['а'..'п'] then S:=Chr(Ord(S)-$20) else if S in ['р'..'я'] then S:=Chr(Ord(S)-$50); end; UpStr:=S; end; begin clrscr; assign(fin,'in.txt'); reset(fin); assign(fout,'out.txt'); rewrite(fout); count:=0; while not eof(fin) do begin read (fin,ch); if ch = #10 then count := 0 else if ch = ' ' then inc(count, byte(count <> -1)) else begin if count > 2 then ch := upstr(ch); count := -1; end; write(fout,ch); end; close(fin); close(fout); end. |
Milena |
![]()
Сообщение
#31
|
Новичок ![]() Группа: Пользователи Сообщений: 13 Пол: Женский Репутация: ![]() ![]() ![]() |
Нет Volvo....это называется, что препод задал дополнительный вопрос. Спасибо :-)
Добавлено (11.12.04 9:56): :-( опять меняю задания... Оказывается раньше я его сама не понимала. Так вот заголовок-это когда от НАЧАЛА строки пять или более символов. Например , дано : здравствуйте дети здравствуйте выход: ЗДРАВСТВУЙТЕ ДЕТИ здравствуйте Вооот...мозгов как всегда сделать не хватает....хелп.... Добавлено (11.12.04 10:35): вопрос отменяется...у меня получилось УРААААААА |
![]() ![]() |
![]() |
Текстовая версия | 16.07.2025 12:15 |