задача про строки и файл с записями |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
задача про строки и файл с записями |
Zeon |
Сообщение
#1
|
Группа: Пользователи Сообщений: 9 Репутация: 0 |
Не могу с ними разобраться!!!
Сообщение отредактировано: Zeon - |
Zeon |
Сообщение
#2
|
Группа: Пользователи Сообщений: 9 Репутация: 0 |
1, Текст задан строкой, напечатать в алфавитном порядке все гласные буквы, которые входят в последнее слово.
и еще одна 2, В файле *.* содержатся записи, имеющие следующую структуру: group :integer; memo: string; Запишите в бинарный файл все записи с полем memo, не содержащим цифры. |
BlackShadow |
Сообщение
#3
|
Гость |
1). Русская версия
Код Const Delimeters:Set Of Char = [' ',',',';','.','!','?']; Letters:Array[1..20] Of Char = ('А','Е','Ё','И','О','У','Ы','Э','Ю','Я','а','е','ё','и','о','у','ы','э','ю','я'); s = 'Вот такой вот текст мы взяли для проверки'; Var i,j,k:Integer; Begin i:=Length(s); While i>0 Do If s[i] In Delimiters Then Break Else Dec(i); For j:=1 To 10 Do For k:=i+1 To Length(s) Do If (s[k] = Letters[j]) Or (s[k] = Letters[j + 10]) Then Write(s[k]); WriteLn End. 2). Кроссязычная версия Код Var f1,f2:Text; Group:Integer; Memo:String; i:Integer; b:Boolean; Begin Assign(f1,'In.txt'); Reset(f1); Assign(f2,'Out.Txt'); ReWrite(f2); While Not Eof(f1) Do Begin ReadLn(f1,Group); ReadLn(f2,Memo); b:=False; For i:=1 To Length(Memo) Do If Memo[i] In ['0'..'9'] Then Begin b:=True; Break End; If Not b Then Begin WriteLn(f2,Group); WriteLn(f2,Memo) End End; Close(f1); Close(f2) End. |
APAL |
Сообщение
#4
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
BlackShadow
А где же описание записей??? ... = record .... end. А то файл получается не с записями, а просто текстовый. А выходной файл и вовсе не бинарный - насколько я понял он должен быть: Код f2 : File; Сообщение отредактировано: APAL - -------------------- |
BlackShadow |
Сообщение
#5
|
Гость |
А какая разница???????????????????????????????????
Результа-то один и тот же... |
APAL |
Сообщение
#6
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
Задачу, скорее всего, задал какой-то препод. И решение не соответствует условиям.
-------------------- |
BlackShadow |
Сообщение
#7
|
Гость |
Ну, доставучий какой...
Код Type TData=Record Group:Integer; Memo:String[255] End; Var f1:File Of TData; f2:File; d:TData; i:Integer; b:Boolean; Begin Assign(f1,'In.In'); Reset(f1); Assign(f2,'Out.Out'); ReWrite(f2,1); While Not Eof(f1) Do Begin Read(f1,d); b:=False; For i:=1 To Length(d.Memo) Do If d.Memo[i] In ['0'..'9'] Then Begin b:=True; Break End; If Not b Then BlockWrite(f2,d,sizeOf(d) End; Close(f1); Close(f2) End. Вот только для дебага и демонстрации придётся входной файл создать: Код Type TData=Record Group:Integer; Memo:String[255] End; Var f1:File Of TData; d:TData; i,n,k,j,l:Integer; Begin Randomize; Assign(f1,'In.In'); ReWrite(f1); n:=Random(100); For i:= 1 To n Do Begin d.Group:=Random(32767); d.Memo:=''; k:=Random(256); For j:=1 To k Do d.Memo:=d.Memo+Char(Random(128-32)+32); Write(f1,d) End; Close(f1) End. Вот так, вроде... |
Zeon |
Сообщение
#8
|
Группа: Пользователи Сообщений: 9 Репутация: 0 |
Спасибо всем за внимание !
|
BlackShadow |
Сообщение
#9
|
Гость |
Да, не на чем :p2: :P
|
Zeon |
Сообщение
#10
|
Группа: Пользователи Сообщений: 9 Репутация: 0 |
Первая задачка че-т не пашет...
|
BlackShadow |
Сообщение
#11
|
Гость |
Ну малёк обшыбсю:
Код Const Delimeters:Set Of Char = [' ',',',';','.','!','?']; Letters:Array[1..20] Of Char = ('А','Е','Ё','И','О','У','Ы','Э','Ю','Я','а','е','ё','и','о','г','л','н','о','п'); s:String = 'Вок такой вот текст мы взяли для проверки'; Var i,j,k:Integer; Begin i:=Length(s); While i>0 Do If s[i] In Delimeters Then Break Else Dec(i); For j:=1 To 10 Do For k:=i+1 To Length(s) Do If (s[k] = Letters[j]) Or (s[k] = Letters[j + 10]) Then Write(s[k]); WriteLn End. |
Текстовая версия | 23.12.2024 20:01 |