Программа на Указатели (PASCAL), Операционная система MS – DOS все адресуемое пространство делит на сег |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Программа на Указатели (PASCAL), Операционная система MS – DOS все адресуемое пространство делит на сег |
milk |
Сообщение
#1
|
Группа: Пользователи Сообщений: 9 Пол: Женский Реальное имя: Elen Репутация: 0 |
Используя 1н просмотр текстового файла , вывести все его строки в порядке увеличения содержания в них цифр (строки должны содержать цифры).
p.s.Во время "просмотра" файла надо занести "наши" строки в список, потом произвести сортировку списка и ,наконец, выводить ответ в порядке увеличения. -------------------- Я бесценна! Для всего остального есть Master card
|
volvo |
Сообщение
#2
|
Гость |
Задача на занесение данных из файла в динамический список неоднократно решалась. Может, проще в поиске найти, чем опять в очередной раз жевать одно и то же?
|
milk |
Сообщение
#3
|
Группа: Пользователи Сообщений: 9 Пол: Женский Реальное имя: Elen Репутация: 0 |
Задача на занесение данных из файла в динамический список неоднократно решалась. Может, проще в поиске найти, чем опять в очередной раз жевать одно и то же? Да искалось, но как-то не нашлось!(( Всё вокруг да около, а чёткой формулировки нет... Подскажите пожалуйста как сделать! Сообщение отредактировано: milk - -------------------- Я бесценна! Для всего остального есть Master card
|
volvo |
Сообщение
#4
|
Гость |
Ну вот смотри, каркас программы (кое-что я убрал, компилироваться программа будет, а работать - будет неправильно. Доделай то, что написано в комментариях - заработает)
type |
milk |
Сообщение
#5
|
Группа: Пользователи Сообщений: 9 Пол: Женский Реальное имя: Elen Репутация: 0 |
Хорошо.. Спасибо больше!
Сообщение отредактировано: milk - -------------------- Я бесценна! Для всего остального есть Master card
|
milk |
Сообщение
#6
|
Группа: Пользователи Сообщений: 9 Пол: Женский Реальное имя: Elen Репутация: 0 |
Ну вот смотри, каркас программы (кое-что я убрал, компилироваться программа будет, а работать - будет неправильно. Доделай то, что написано в комментариях - заработает) вот что-то додуманное: Код Program Ukazateli; type PNode = ^TNode; TList = record start, finish: PNode; end; TNode = record n: integer; s: string; next: PNode; end; procedure AddToList(var L: TList; s: string; digits: Integer); var T: PNode; begin new(T); T^.next := nil; T^.s := s; T^.n := digits; if L.start = nil then L.start := T else L.finish^.next := T; L.finish := T; end; function SortList(L: PNode): PNode; var i,j:PNode;q:TNode; begin i:=l; while i<>nil do begin j:=l; while j<>nil do begin if i^.s>j^.s then begin q:=i^; i^.n:=j^.n;i^.s:=j^.s; j^.n:=q.n;j^.s:=q.s; end; j:=j^.next; end; i:=i^.next; end; end; procedure PrintList(L: PNode); begin while L <> nil do begin writeln(L^.s); L := L^.next; end; end; function Count(s: string): integer; var i:integer; begin result:=0; for i:=1 to length(s) do if s[i] in ['0'..'9'] then inc(result); end; var f: text; s: string; MyList: TList; n: integer; begin MyList.start := nil; MyList.finish := nil; assign(f, 'PFile.txt'); reset(f); while not seekeof(f) do begin readln(f, s); n := Count(s); if n > 0 then AddToList(MyList, s, n); end; close(f); PrintList(myList.start); readln; SortList(Mylist.start); PrintList(myList.start); readln; end. Но программа не выводит строки в порядке увеличения!( Помогите додумать! -------------------- Я бесценна! Для всего остального есть Master card
|
volvo |
Сообщение
#7
|
Гость |
Цитата программа не выводит строки в порядке увеличения! Программа не должна выводить строки в порядке увеличения. Она должна выводить строки в порядке возрастания количества цифр, содержащихся в строках. У тебя в процедуре сортировки условие неправильное. Вот тут:function SortList(L: PNode): PNode; ... нужно делать другое сравнение. |
milk |
Сообщение
#8
|
Группа: Пользователи Сообщений: 9 Пол: Женский Реальное имя: Elen Репутация: 0 |
Программа не должна выводить строки в порядке увеличения. Она должна выводить строки в порядке возрастания количества цифр, содержащихся в строках. У тебя в процедуре сортировки условие неправильное. Вот тут: function SortList(L: PNode): PNode; ... нужно делать другое сравнение. а если поменять: function SortList(L: PNode): PNode; -------------------- Я бесценна! Для всего остального есть Master card
|
volvo |
Сообщение
#9
|
Гость |
Вот тогда будет выводить то, что требовалось в задании. И останется только удалить список после окончания работы.
|
Текстовая версия | 20.04.2024 15:35 |