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


Ответ
 
Опции темы Опции просмотра
Старый 15.12.2013, 14:49   #1 (permalink)
Aksinia
Member
 
Регистрация: 15.12.2013
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 114
Question Файлы input.txt и output.txt

Задача: взять строку из файла input.txt, удалить из нее лишние знаки(текст самой программы приведен ниже) и вывести новую строку в файл output.txt.

program Main2;
var str:string; a:char;

function NewStr(str:string;a:char):string;
var s:string;
begin
s:=str;
while Pos(a + a,s) > 0 do delete(s, Pos(a + a,s), 1);
NewStr:=s;
end;

begin
readln(str);
a:=chr(33);
writeln(NewStr(str, a));
readln;
end.
Aksinia вне форума   Ответить с цитированием

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

Люди уже создавали что то подобное, так что можете почитать

Файлы
Файлы в Си
Asus 1201 video HDMI output problem
Файлы

Старый 15.12.2013, 15:09   #2 (permalink)
Николай_С
Member
 
Аватар для Николай_С
 
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 21,254
Записей в дневнике: 7
Сказал(а) спасибо: 216
Поблагодарили 190 раз(а) в 60 сообщениях
Репутация: 77738
По умолчанию

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

Да. Нужно взять строку из файла, удалить из нее лишние восклицательные знаки и вывести в другой файл.
Aksinia вне форума   Ответить с цитированием
Старый 15.12.2013, 18:13   #4 (permalink)
Николай_С
Member
 
Аватар для Николай_С
 
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 21,254
Записей в дневнике: 7
Сказал(а) спасибо: 216
Поблагодарили 190 раз(а) в 60 сообщениях
Репутация: 77738
По умолчанию

Стесняюсь спросить...
Приведенный код - это всё, чему Вы научились за семестр по языку Pascal?
С такими знаниями Вам сессию никак не сдать.
Пока не поздно, наймите репетитора.
Николай_С вне форума   Ответить с цитированием
Старый 15.12.2013, 18:56   #5 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,278
Сказал(а) спасибо: 290
Поблагодарили 508 раз(а) в 166 сообщениях
Репутация: 92003
По умолчанию

Цитата:
Сообщение от Николай_С Посмотреть сообщение
Стесняюсь спросить...
Приведенный код - это всё, чему Вы научились за семестр по языку Pascal?
С такими знаниями Вам сессию никак не сдать.
Пока не поздно, наймите репетитора.
Коля, да ладно Вам! Если девушка этому научилась, то это в бесконечное число раз больше обычного уровня лоботрясов, которые к концу семестра вдруг обнаруживают, что они вообще ни бэ, ни мэ, а злые преподы им никак зачет не ставят. Ну не осилить файловых операций - ничего, поможем.
Код:
program Main2;
var
 S:string;
 A:char;
 f1,f2:Text;

function NewStr(NS:string;NA:char):string;
var T:string;
begin
 T:=NS;
 while Pos(NA,T) > 0 do delete(T, Pos(NA,T), 1);
 NewStr:=T;
end;

begin
 Assign(f1,'Input.txt');
 ReSet(f1);
 Assign(f2,'Output.txt');
 ReWrite(f2);
 A:='!';
 Repeat
  Readln(f1,S);
  Writeln(f2,NewStr(S,A));
 Until EoF(f1);
 Close(f1);
 Close(f2);
end.
А так программа, в целом, составлена грамотно, вот только в аргументах функции Pos какая-то галиматья. И еще, Аксинья, одно замечание. Обозначать формальные и фактические параметры процедур и функций одинаково хоть и допускается, но нежелательно: приводит к путанице. Поэтому я там кое-что переобозначил. Кроме того, старайтесь не использовать зарезервированные слова языка программирования в качестве идентификаторов: могут возникнуть ошибки. Так, "Str" - это имя стандартной процедуры преобразования числа в строку. Не нужно так обозначать переменную.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 15.12.2013, 19:54   #6 (permalink)
Николай_С
Member
 
Аватар для Николай_С
 
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 21,254
Записей в дневнике: 7
Сказал(а) спасибо: 216
Поблагодарили 190 раз(а) в 60 сообщениях
Репутация: 77738
По умолчанию

Владимир, Вам, конечно, видней, но открыть/закрыть поток, причитать/записать в него - этому учат на первых лекциях и практических занятиях. А тут до конца семестра осталось 2 недели!
Николай_С вне форума   Ответить с цитированием
Старый 15.12.2013, 19:58   #7 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,278
Сказал(а) спасибо: 290
Поблагодарили 508 раз(а) в 166 сообщениях
Репутация: 92003
По умолчанию

Цитата:
Сообщение от Николай_С Посмотреть сообщение
А тут до конца семестра осталось 2 недели!
Аж целых!!!
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 15.12.2013, 20:07   #8 (permalink)
Николай_С
Member
 
Аватар для Николай_С
 
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 21,254
Записей в дневнике: 7
Сказал(а) спасибо: 216
Поблагодарили 190 раз(а) в 60 сообщениях
Репутация: 77738
По умолчанию

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

Николай, спасибо за совет, но сессию мне, к счастью, сдавать не нужно.
Владимир, большое спасибо. В аргументах функции Pos "галиматья", потому что мне нужно удалить не все восклицательные знаки, а только повторяющиеся(т.е. в количестве больше одного).
При запуске программы возникает ошибка "RunError(2)", хотя текстовые файлы находятся в той же папке, что и программа. Не могли бы Вы подсказать в чем ошибка, пожалуйста?
Aksinia вне форума   Ответить с цитированием
Старый 15.12.2013, 20:55   #10 (permalink)
Aksinia
Member
 
Регистрация: 15.12.2013
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 114
По умолчанию

Не могли бы Вы подсказать в чем ошибка, пожалуйста?
Aksinia вне форума   Ответить с цитированием
Ads

Яндекс

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

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

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

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




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

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