Сформировать файл по следующему принципу... |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Сформировать файл по следующему принципу... |
Юлька |
Сообщение
#1
|
Гость |
Сформировать символьный файл f. Переписать компоненты файла в файл g, заменив при этом:
а)каждую из групп стоящих рядом точек одной точкой; б)каждую из групп стоящих рядом точек многоточием (то есть тремя точками). Т.е. как я поняла, должно получится что-то вроде:Запускаем прогу. Выходит вопрос - "Создать символьный файл Y/N ?" Если Отвечаем 'N' выходим из программы, если "Y" - создается символьный файл f, на экране появляется набор случайных символов, например из 100 штук (буквы, точки, цифры). Далее спрашивает: 1. Заменить каждую из групп стоящих рядом точек одной точкой. 2. Заменить каждую из групп стоящих рядом точек троеточием. При нажатии на 1, программа создает файл g, состоящий из тех же символов, но только рядом стоящие точки заменяет на одну. Т.е. все буквы, цифры, и.т.д. оставляет как есть, а точки если они рядом стоят заменяет на одну точку. При нажатии на 2 тоже самое, но точки меняются на три точки. Может я не так поняла... Сделайте кто-нибудь (( |
AlaRic |
Сообщение
#2
|
... Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: 3 |
Сама себе все разжевала!
|
Юлька |
Сообщение
#3
|
Гость |
При чем тут разжевала ?! Мне программа нужна ! Не могу я сделать. НЕ МО ГУ !! Тупая. Не знаю я информатики. :~(
|
Ivs |
Сообщение
#4
|
Бывалый Группа: Пользователи Сообщений: 209 Репутация: 0 |
Цитата Т.е. как я поняла, должно получится что-то вроде:Запускаем прогу. Выходит вопрос - "Создать символьный файл Y/N ?" Если Отвечаем 'N' выходим из программы, если "Y" - создается символьный файл f, на экране появляется набор случайных символов, например из 100 штук (буквы, точки, цифры). Далее спрашивает: Ну так бы я нестал делать, Зачем??? Просто создаешь файл F.txt, пишешь в нем все что хочешь, далее запускаешь программу, выбираешь из 2х вариантов один, и любуешся результатами в файле G.txt . Все просто 8-) Код program Ten_ten_ten; var F,G : Text; i,n : Integer; S,newStr : String; Ten : String[3]; begin Assign(F,'f.txt'); Reset(F); Assign(G,'g.txt'); Rewrite(G); writeln('1 - . ten'); writeln('2 - ... ten'); write('Input: '); repeat readln(n); until (n=1) or (n=2); if n=1 then Ten:='.' else Ten:='...'; while not(Eof(F)) do begin readln(F,S); i:=1; newStr:=''; while (i<=length(S)) do begin if S[i]='.' then begin while (S[i]='.') and (i<length(S)) do Inc(i); newStr:=newStr+Ten; end; if i=length(S) then break; newStr:=newStr+S[i]; Inc(i); end; writeln(G,newStr); end; Close(F); Close(G); end. Если что-то будет непонятно то напиши, можно на мыл ;) - прокомментирую. [Модератор]: Дорогие гости и участники форума! Старайтесь давать более информативные названия своим темам. Надоело переделывать:-) -------------------- Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
|
AlaRic |
Сообщение
#5
|
... Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: 3 |
Цитата ]: Дорогие гости и участники форума! Старайтесь давать более информативные названия своим темам. Надоело переделывать:-) Повесил бы лучше это сообщение как закрытую тему... врятли кто-нибудь тут заметит! |
Ivs |
Сообщение
#6
|
Бывалый Группа: Пользователи Сообщений: 209 Репутация: 0 |
Цитата Quote:]: Дорогие гости и участники форума! Старайтесь давать более информативные названия своим темам. Надоело переделывать Повесил бы лучше это сообщение как закрытую тему... врятли кто-нибудь тут заметит! AlaRic, ты имееш в виду создать сложную тему где будем писать правила и небольшой faq (по аналогии с мощными форумами)? Я согласен, но нужна помощь... -------------------- Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
|
Clane |
Сообщение
#7
|
Гость |
Отличная у вас возникла идея.... Молодца !!
|
Юлька |
Сообщение
#8
|
Гость |
Ivs, спасибо за задачу, но кое чего не так. По крайней мере, препод дала мне еще пару дней (слава богу) и сказала, что должны быть использованы такие штуки как POS, DEL, LENGTH. Может я что-то прогнала тут, но вроде правильно. По крайней мере, это то что я запомнила. Еще что-то про string и substring говорила.
А во-вторых.. нельзя ли чтоб не создавать самой файл ? В задании написано сформировать.. Т.е. чтоб программа сама случайными символами сформировала его.. И третье. Эта программа, которую ты написал, у меня так и не заработала Выдала ошибку Error 3 Unknown identifier на слове break. У меня паскаль 6.0 И в классах у нас 6.0... Надеюсь, не сильно нагло я тут расписала все.. Помогите. :-[ |
Ivs |
Сообщение
#9
|
Бывалый Группа: Пользователи Сообщений: 209 Репутация: 0 |
Хех...:-)
И все равно мне эта бредовая идея по формированию файла из случайных символов не нравиться 8-I, ну да ладно. Вот переписал как просила, и вроде файл формируется и вроде Pos , Delete используются и все такое, даже проверял на TP 6.0 :-) Код program Ten_ten_ten; var F,G : Text; i,j : Integer; n,Poz : Integer; S,newStr : String; Ten : String[3]; Ch : Char; begin Assign(F,'f.txt'); Rewrite(F); Assign(G,'g.txt'); Rewrite(G); repeat write('Сформировать файл ? (y/n): '); readln(Ch); Ch:=UpCase(Ch); until (Ch='Y') or (Ch='N'); if Ch = 'N' then Exit; for i:=1 to 20 do begin for j:=1 to 20 do write(F,Chr(Random(8)+40)); writeln(F); end; Close(F); Assign(F,'F.txt');Reset(F); writeln('1 - . ten'); writeln('2 - ... ten'); write('Input: '); repeat readln(n); until (n=1) or (n=2); if n=1 then Ten:='.' else Ten:='...'; while not(Eof(F)) do begin readln(F,S); i:=1; newStr:=''; Poz:=1; while (Pos('..',S)>0) do begin Poz:=Pos('..',S); newStr:= newStr + Copy(S,1,Poz-1) + Ten; while (Poz<=length(S)) and (S[Poz]='.') do Delete(S,Poz,1); Delete(S,1,Poz-1); end; if newStr='' then writeln(G,S) else writeln(G,newStr+S); end; Close(F); Close(G); end. P.S : И где это интересно такие задачки интересные задают :-? -------------------- Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
|
Юлька |
Сообщение
#10
|
Гость |
Ivs, я тебя люблю !!! :) Все работает, все как надо ! Завтра сдавать побегу :D
А задают такие у нас в институте, на первом курсе, на специальности менеджмент :) СПАСИБО !!!! :-* |
Текстовая версия | 4.10.2024 8:28 |