IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Ссылки и указатели, (палиндром)
сообщение
Сообщение #1


Гость






люди помогите!!!!!!!!надо срочно написать прогу: выведите символы стоки в обратном порядке: "A man, a plan. a canel-Panama"
Впринципе прога есть , тока она из файла не читает=(
Код

type
PData=^TData;
TData=record
           sh:char;
           Next:Pdata;
           end;
var
Data:PData;
f:Text;

procedure reverse_print(Data:PData);
var
p:PData;
i,j:byte;
function getsize(Data:PData):byte;
var
p:PData;
n:byte;
begin
    n:=0;
    p:=Data;
    while p<>nil do begin
          n:=n+1;
          p:=p^.Next;
    end;
getsize:=n
end;

begin
for j:=getsize(p) downto 1 do begin
   for i:=1 to j do p:=p^.Next;
   write(p^.sh);
   p:=Data;
end
end;

Procedure ReadData(var f:Text;var Data:Pdata);
var
p,q:PData;

begin
{$I-}reset(f);{$I+}
if IOResult<>0 then begin Exit; end;
New(p);q:=p;
repeat
q^.Next:=nil;
{$I-}read(f,q^.sh);{$I+}
if IOResult<>0 then begin
  while p<>nil do begin q:=p^.Next; Dispose(p);p:=q;end;
   Exit;
end;
if not Eof(f) then begin New(q^.Next); q:=q^.Next; end;
until Eof(f);
Data:=p;
end;

begin
WRITELN('PALINDROM PROGRAM ');
Assign(f,'inp.txt');
ReadData(f,Data);
reverse_Print(Data);
end.

Заключайте листинги программ в теги [ code ] [ / code] (без пробелов)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


Модет, список лучше двусвязный завести? По нему проще будет двигаться вперед-назад. Хотя, может, препод требует односвязный smile.gif тогда можно проигнорировать препода  ;D


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


Я не понимаю, в чём собственно сложность "обратного" вывода?
Объявляешь строку как s[29]:string;
Код

for i:= 29 downto 1 do
write(s[i]);

Или я что-то нитак понял?


--------------------
На самом деле самого дела нет. В самой деятельности заключена самость дела и наоборот. Наоборот получим оборот на, таким образом перевернем образ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


Цитата
Или я что-то нитак понял?

Имеется ввиду не выведение строки (массива) в обратном виде, а выведение линейного списка в обратном порядке. А точнее, его чтение.


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 26.09.2017 8:51
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"