Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 29.12.2013, 23:19   #1 (permalink)
Aksinia
Member
 
Регистрация: 15.12.2013
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 114
Question Помогите найти ошибку, пожалуйста! Паскаль

Здравствуйте!
Задание находится во вложенном файле. Помогите отыскать ошибку, пожалуйста!

На входе текстовый файл, состоящий из слов и символов '.,:;!? ';
слово = отрезок строки текста из букв.
На выходе текстовый файл, в который помещены построчно все слова, найденные в порядке появления во входном файле, причем каждое слово сопровождается через пробел некоторой своей инверсией, не перемещающей только 1-й и последний символы слова.
ПРИМЕР --
вася всая
example elmaxpe
PHP код:
program coffee;
var 
S:string;
f1,f2:text;
Type mnogset of byte;

function 
Inversion(S:string):string;
var 
S2,S3,S4,s5:String;
A,B:mnog;
i,c,r:integer;
begin
  A 
:=[65 .. 90];
  
:=[97 .. 122];
  
S2:=S;
  
i:=1;
  
S3:='';
  
S4:='';
  
S5:='';
  if 
length(S2)>0 then
  
while i<(length(S2)) do
  
begin
    
if ((ord(S2[i]) in (A+B)) and (ord(S2[i+1]) in (A+B))) then
    begin
      S4
:=S4+S2[i];
      
s3:=s3+S2[i];
    
end;
    if ((
ord(S2[i]) in (A+B)) and not(ord(S2[i+1]) in (A+B))) then
    begin
      s3
:=s3+S2[i];
      
c:=1;
      while 
not c=(length(s3)-2) do
      
begin
        r
:=random(2)-(length(s3)-3);
        if (
s5[r]<>chr(0)) then
        begin
          s5
[r]:=s3[c];
          
c:=c+1;
        
end;
      
end;
      
S4:=S4+' '+S3[1]+s5+s3[length(s3)];
      
S3:='';
      
s5:='';
    
end;
  
end;
  
Inversion:=s4;
end;

begin
  assign
(f1'Input.txt');
  
reset(f1);
  
assign(f2'Output.txt');
  
rewrite(f2);
  while 
not eof(f1) do
  
begin
    readln
(f1,S);
    
writeln(f2,inversion(S));
  
end;
  
close(f1);
  
close(f2);
end
Вложения
Тип файла: txt task.txt (623 байт, 463 просмотров)
Aksinia вне форума   Ответить с цитированием

Старый 29.12.2013, 23:19
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Советую вам обратить внимание на похожие обсуждения

Помогите найти ошибку
Помогите найти ошибку
Помогите найти ошибку

Старый 29.12.2013, 23:37   #2 (permalink)
Николай_С
Радиоинженер
 
Аватар для Николай_С
 
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 25,298
Записей в дневнике: 7
Сказал(а) спасибо: 292
Поблагодарили 219 раз(а) в 70 сообщениях
Репутация: 110185
По умолчанию

А что с программой не так?
Не проходит компеляцию? В какой строке?
Не правильно работает? Тогда нужно увидеть результат.
Николай_С вне форума   Ответить с цитированием
Старый 30.12.2013, 00:00   #3 (permalink)
Aksinia
Member
 
Регистрация: 15.12.2013
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 114
По умолчанию

Программа проходит компиляцию. После запуска на экране появляется пустое окно, которое тут же не закрывается, хотя, должно бы. Файл "output" остается пустым.
Aksinia вне форума   Ответить с цитированием
Старый 30.12.2013, 00:02   #4 (permalink)
Николай_С
Радиоинженер
 
Аватар для Николай_С
 
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 25,298
Записей в дневнике: 7
Сказал(а) спасибо: 292
Поблагодарили 219 раз(а) в 70 сообщениях
Репутация: 110185
По умолчанию

А в файле Input.txt что?
Николай_С вне форума   Ответить с цитированием
Старый 30.12.2013, 00:04   #5 (permalink)
Aksinia
Member
 
Регистрация: 15.12.2013
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 114
По умолчанию

Вот этот файл.
Вложения
Тип файла: txt input.txt (13 байт, 502 просмотров)
Aksinia вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 30.12.2013, 00:08   #6 (permalink)
Николай_С
Радиоинженер
 
Аватар для Николай_С
 
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 25,298
Записей в дневнике: 7
Сказал(а) спасибо: 292
Поблагодарили 219 раз(а) в 70 сообщениях
Репутация: 110185
По умолчанию

Понятно.
Ставьте точку останова на writeIn и смотрите, что у Вас в инвертированной строке.
Николай_С вне форума   Ответить с цитированием
Старый 30.12.2013, 00:20   #7 (permalink)
Aksinia
Member
 
Регистрация: 15.12.2013
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 114
По умолчанию

Ничего? Ничего не изменилось. Я правильно поняла, что я должна была поставить точку после writeln(f2,inversion(S));
end;end ?
Aksinia вне форума   Ответить с цитированием
Старый 30.12.2013, 01:04   #8 (permalink)
Николай_С
Радиоинженер
 
Аватар для Николай_С
 
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 25,298
Записей в дневнике: 7
Сказал(а) спасибо: 292
Поблагодарили 219 раз(а) в 70 сообщениях
Репутация: 110185
По умолчанию

Точка останова - это отладочный маркер, где должен остановиться дебагер при отладке программы.
Как я понял, Вы этим не пользуетесь.
Тогда, между операторами чтения и записи поставьте вывод на экран прочитанной строки и строки после инверсии. Не забудьте поставить оператор паузы.
Николай_С вне форума   Ответить с цитированием
Старый 30.12.2013, 01:44   #9 (permalink)
Aksinia
Member
 
Регистрация: 15.12.2013
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 114
По умолчанию

На экран выводится только первая не инвертированная строка.
Aksinia вне форума   Ответить с цитированием
Старый 30.12.2013, 10:23   #10 (permalink)
Николай_С
Радиоинженер
 
Аватар для Николай_С
 
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 25,298
Записей в дневнике: 7
Сказал(а) спасибо: 292
Поблагодарили 219 раз(а) в 70 сообщениях
Репутация: 110185
По умолчанию

Значит ошибка в функции Inversion.
Метод отладки тот же.
Ставим тормоз, смотрим содержимое строковых переменных.
Удачи!
Николай_С вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 07:05.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.