Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 02.02.2011
Сообщений: 29
1

Обеспечить перестановку слов в списке в обратном порядке

02.02.2011, 12:25. Показов 1428. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.

Очень нужна помощь с решением задачки по Pascal. Задачка в принципе не трудная, просто у меня сильно жмет время, а в языке я еще не слишком силен (если быть до конца честным, то почти ничего не понимаю).

В файл заносится последовательность слов и записывается в памяти при чтении из файла в виде линейного списка. Обеспечить перестановку слов в списке в обратном порядке. Вывести исходный список и преобразованный. В файле сохраняется исходный вид последовательности.
Эту задачку нужно решить с применением списков.
Люди, если кому не сложно, помогите пожалуйста. Нужно решить за 2,5 часа
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2011, 12:25
Ответы с готовыми решениями:

Обеспечить ввод и вывод списка слов в прямом и обратном порядке, и вычисление числа слов в этом списке
Изменить программу так, чтобы она обеспечивала ввод и вывод списка символов в прямом и обратном...

Сделать перестановку букв в словах в обратном порядке
Мы вводим с клавиатуры предложение, как сделать перестановку букв в словах в обратном порядке?

Осуществите перестановку элементов массива в обратном порядке, не используя дополнительный массив
Дан массив Y(15) случайными целыми числами в интервале . Каждый элемент отведите 4 позиции.

Заполнить матрицу. Осуществить перестановку элементов каждой строки матрицы в обратном порядке
задача на языке ассемблера для CPU i8086, в которой требуется организовать заполнение матрицы NxM...

6
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
02.02.2011, 14:28 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
program Project1;
 
type
  (*Типы для описания списка.*)
 
  (*Тип данных - определяет данные, которые будет содержать каждый элемент списка.*)
  TData = String;
  (*Тип, описывающий элемент списка.*)
  TPElem = ^TElem;
  TElem = record
    Data : TData;
    PNext : TPElem;
    PPrev : TPElem;
  end;
  (*Тип, описывающий список.*)
  TList = record
    PFirst : TPElem;
    PLast : TPElem;
  end;
 
(*Процедуры для работы со списком.*)
 
(*Удаление всего списка из памяти и инициализация.*)
procedure ListFree(var aList : TList);
var
  PNext, PDel : TPElem;
begin
  if aList.PFirst = nil then Exit;
 
  PNext := aList.PFirst;
  while PNext <> nil do begin
    PDel := PNext;
    PNext := PNext^.PNext;
    Dispose(PDel);
  end;
 
  aList.PFirst := nil;
  aList.PLast := nil;
end;
 
(*Добавление элемента в конец списка.*)
procedure AddL(var aList : TList; const aPElem : TPElem);
begin
  if aPElem = nil then Exit;
 
  aPElem^.PNext := nil;
  aPElem^.PPrev := nil;
  if aList.PFirst = nil then begin
    aList.PFirst := aPElem;
    aList.PLast := aPElem;
  end else begin
    aList.PLast^.PNext := aPElem;
    aPElem^.PPrev := aList.PLast;
    aList.PLast := aPElem;
  end;
end;
 
const
  Fn1 = 'file1.txt';
var
  F1 : Text;
  List : TList;
  PElem : TPElem;
  S : String;
  i : Integer;
begin
  Assign(F1, Fn1);
  Rewrite(F1);
  i := 0;
  repeat
    Writeln('Введите слово. Прервать цикл ввода - пустая строка.');
    Readln(S);
    if S <> '' then begin
      if i = 0 then Inc(i)
      else Writeln(F1);
      Write(F1, S);
    end;
  until S = '';
  Flush(F1);
 
  (*Читаем из файла слова и помещаем их в список.
  Одновременно выполняем распечатку.*)
  Writeln('Исходный список слов:');
  List.PFirst := nil;
  List.PLast := nil;
  Reset(F1);
  i := 0;
  while not Eof(F1) do begin
    New(PElem);
    Readln(F1, PElem^.Data);
    AddL(List, PElem);
    if i > 0 then Write(', ');
    Write(PElem^.Data);
    Inc(i);
  end;
  Writeln;
 
  (*Закрываем файл.*)
  Close(F1);
 
  (*Показываем список слов в обратном порядке.*)
  Writeln('Список слов в обратном порядке:');
  PElem := List.PLast;
  i := 0;
  while PElem <> nil do begin
    if i > 0 then Write(', ');
    Write(PElem^.Data);
    PElem := PElem.PPrev;
    Inc(i);
  end;
  Writeln;
 
  (*Удаляем список из памяти.*)
  ListFree(List);
 
  Readln;
end.
0
0 / 0 / 0
Регистрация: 02.02.2011
Сообщений: 29
02.02.2011, 14:31  [ТС] 3
Огромное спасибо!
Скажите номер телефона или номер электронного счета маленькое "спасибо" закину))

вы не представляете, как меня выручили!)))
0
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
02.02.2011, 14:34 4
Цитата Сообщение от diversus Посмотреть сообщение
Огромное спасибо!
Скажите номер телефона или номер интернет-счета маленькое поощрение закину))
вы не представляете, как меня выручили!)))
Пожалуйста.
Цитата Сообщение от diversus Посмотреть сообщение
Скажите номер телефона или номер интернет-счета маленькое поощрение закину))
Да нет, спасибо - не надо. - Студентам деньги нужней.
0
0 / 0 / 0
Регистрация: 02.02.2011
Сообщений: 29
02.02.2011, 14:38  [ТС] 5
Цитата Сообщение от Mawrat Посмотреть сообщение
Пожалуйста.

Да нет, спасибо - не надо. - Студентам деньги нужней.
Скажем так, именно из-за того, что у меня нет проблем с деньгами, я такой плохой студент
К тому же, принцип "любая работа должна оплачиваться" мне более чем знаком))
0
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
02.02.2011, 14:47 6
Цитата Сообщение от diversus Посмотреть сообщение
Скажем так, именно из-за того, что у меня нет проблем с деньгами, я такой плохой студент
К тому же, принцип "любая работа должна оплачиваться" мне более чем знаком))
У меня тоже нет проблем с деньгами. А учиться всё же старайся - чтобы и в будущем тоже денежных проблем не возникало.
Всё - про оплату разговор закончили.
---
На всякий случай прокомментирую строчку:
Pascal
1
Flush(F1);
Этой командой выполняется сброс информации из кэша в файл. - Это иногда нужно делать для текстовых файлов. - В случае, если мы что-то записали в файл и собираемся работать с содержимым этого файла не закрывая его перед этим.
0
0 / 0 / 0
Регистрация: 02.02.2011
Сообщений: 29
02.02.2011, 14:54  [ТС] 7
Хорошо, про команду - запишу.

Не по теме:

У нас странная система преподавания той или иной специальности. Много лишнего. А времени на лишнее с работой совсем нет.



---
Mawrat: это да - есть такая беда. К счастью, когда я учился, у нас лишнего почти ничего не было. Даже из гуманитарных - "История выч. техники и кибернетики" - это по теме. Только один предмет был чисто гуманитарный, не связанный со специальностью - "История мировой культуры". Но по нему был только зачёт/не зачёт.
0
02.02.2011, 14:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.02.2011, 14:54
Помогаю со студенческими работами здесь

Написать и протестировать функцию, которая осуществляет перестановку в строке Str литер в обратном порядке
Помогите пожалуйста написать и протестировать функцию. Функция осуществляет перестановку в строке...

Ввести от 1 до 30 слов и сделать вывод этих слов в обратном порядке
Текст задания: Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5...

Функция: переставить в обратном порядке элементы в односвязном списке
Здравствуйте, помогите пожалуйста Написать на С++ функцию, переставляющую в обратном порядке...

Как в линейном односвязном списке переставить слова в обратном порядке?
Вот программа, которая создает список и выводит его на экран: Type Ukazatel = ^S; S = Record...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru