Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 10.12.2008
Сообщений: 55
1

вывод текста, выкидывая из него введенное слово

18.02.2009, 00:10. Показов 3353. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Прошу пожалуйста мне помочь с написанием это программы. По внешнему виду задания могу сказать, что она не сложная и не отнимет у вас много времени. Всем заранее спасибо)

Условие:

Ввод данных осуществляется из файла с расширением .DAT.
Использовать ТОЛЬКО библиотечные функции ввода/вывода СИМВОЛА.
Исходный текст и результат работы программы выводятся на экран.
Нельзя использовать библиотечные функции работы со строками(словами)!
Обработка текста должна вестись посимвольно!

Задание:

С помощью текстового редактора QC ( либо любого другого, использующего кодировку MS-DOS ) создать файл, содержащий текст, длинна которого не превышает 700 символов ( длинна строки текста не должна превышать 70 символов ).
Имя файла должно иметь расширение .DAT.
Написать программу, которая:
1) Выводит текст на экран дисплея;
2) Выводит текст на экран дисплея еще раз, выкидывая из него заданное слово, введенное с клавиатуры.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2009, 00:10
Ответы с готовыми решениями:

Надо слова текста заканчивающиеся той же буквой,что и введенное слово заменить введенным словом.
Есть текст в котором есть пробелы и отдельное какое-то слово.Надо слова текста заканчивающиеся той...

Удалить из текста все буквы, которые входят во введенное слово.
Помогите решить задачу Вот задача как основа Var St: string; z:string; x:string; i: integer;...

Чтение текста из файла и вывод на экран только предложений, содержащих введенное слово
Написать программу, которая считывает из текст файла и выводит на экран только предложения,...

Считывание текста из файла и вывод на экран только предложения содержащие введенное с клавиатуры слово
Помогите пожалуйста с написанием программы:написать программу которая считывает текст из файла и...

12
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
18.02.2009, 13:55 2
выкидывая из него заданное слово,
Какими критериями определяется группа символов как слово?

Добавлено через 23 минуты 55 секунд
Использовал редактор TextEncoder. Написал несколько строк, перекодировал в DOS, сохранил с расширением *dat.
Если не использовать признаки начала и конца слова, о которых в задании ничего нет, а просто удалять группы символов, соответствующие заданному слову, то я написал так.
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
uses crt;
var f:file of char;{типизированный символьный файл}
    t,s:array[1..700] of char;{символьные массивы текст и слово}
    nt,ns,i,k,j,l:word;{длины массивов и счетчики циклов}
begin
clrscr;
assign(f,'text2.dat');{связываем переменную с файлом}
reset(f);{открываем для чтения}
nt:=0;
while not eof(f) do
  begin
    inc(nt);
    read(f,t[nt]);{читаем посимвольно в массив}
    write(t[nt]);{выводим на экран - задание №1}
  end;
writeln;
close(f);{закрываем файл}
writeln('Vvedite slovo dlya poiska:');
write('Dlina slova ns=');
readln(ns);
for i:=1 to ns do
read(s[i]);{вводим посимвольно слово, лучше через repeat, но не смог сходу придумать признак окончания ввода, может кто поправит}
readln;
for i:=1 to nt do {идем по тексту}
if t[i]=s[1] then {если нашли первый символ слова}
  begin
    k:=0;
    for j:=2 to ns do {проверяем еще подряд на 1 меньше}
    if t[i+j-1]=s[j] then inc(k);{совпадающие считаем}
    if k=ns-1 then {если все совпали}
    for l:=i to nt-ns do {от первого совпавшего до конец минус длина слова}
    t[l]:=t[l+ns];{сдвигаем все элементы массива влево на длину слова}
    dec(nt,ns);{уменьшаем размер массива}
  end;
for i:=1 to nt do
write(t[i]);{выводим результат посимвольно - задание №2}
readln
end.
2
0 / 0 / 0
Регистрация: 10.12.2008
Сообщений: 55
18.02.2009, 21:52  [ТС] 3
Как классно написано)) спасибо_)) вообще рассчитывал, что программа поменьше будет)) спасибо) ОГРОМНОЕ СПАСИБО,Гуру Puporev)
а еще вопрос такой можно - можно в начало программы добавить кусок кода, что при работе с программой нужно было самому указывать путь к файлу text2.dat? это не совсем обязательно, но было бы в тему, заранее спасибо))
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
18.02.2009, 22:16 4
Нарушаем чистоту эксперимента, появляется ненавистное слово string.
Pascal
1
2
3
4
5
6
7
8
9
var f:file of char;
    t,s:array[1..700] of char;
    nt,ns,i,k,j,l:word;
    fname:string;
begin
clrscr;
write('Vvedite imya faila:');
readln(fname);
assign(f,fname);{типизированный символьный файл}
1
0 / 0 / 0
Регистрация: 10.12.2008
Сообщений: 55
19.02.2009, 02:29  [ТС] 5
интересные у вас эксперименты) результат неожиданно для меня приятный) спасибо, очень большое спасибо)
0
0 / 0 / 0
Регистрация: 10.12.2008
Сообщений: 55
20.02.2009, 11:17  [ТС] 6
Оказывается, эту программу нужно сделать без использования массивов... в этом сможете мне помочь, пожалуйста?)
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
20.02.2009, 11:25 7
Оказывается, эту программу нужно сделать без использования массивов..
Если Вы меня научите как можно записать слово, не используя строковый тип и символьные массивы, то пожалуйста.
1
0 / 0 / 0
Регистрация: 10.12.2008
Сообщений: 55
20.02.2009, 14:01  [ТС] 8
тоесть другими путями сделать точно никак нельзя?) хм.. ну все-равно, спасибо большое
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
20.02.2009, 14:11 9
Может и можно, просто я не знаю, как можно хранить слово в памяти другими способами.
1
0 / 0 / 0
Регистрация: 10.12.2008
Сообщений: 55
20.02.2009, 15:19  [ТС] 10
Это немного печально, но все же спасибо за решение тем способом, которым вы решили)
0
0 / 0 / 0
Регистрация: 10.12.2008
Сообщений: 55
24.02.2009, 16:59  [ТС] 11
В общем поговорил я тут с человеком, он сказал концепцию создания этой программы без массивов. Вот такой вот способ:

получаешь от пользователя слово, записываешь его в файл word.dat (подсчитав количество символов в слове в какую-нибудь константу, допустим scount), Приравниваешь временный счётчик tcount к scount. читаешь текст посимвольно из text.dat, попутно сравнивая текущий символ с первым символом из word.dat, если совпал —*уменьшаешь tcount на единицу, запоминая номер символа (предполагая что это первый символ искомого слова). Если совпал следующий символ — ещё уменьшаешь на единицу, если не совпал возвращаешь счётчик tcount опять к значению tcount, сбрасываешь позицию. И так далее.. Если tcount дошёл до нуля — вуаля —*запоминаем номер этого символа, он является последним символом искомого

можно же заместо массивов использовать файлы

можно создать файл типа positions.dat и хранить там начальные и конечные позиции этого слова в тексте, например в таком формате: 10|20 55|77


вот... теперь идеи будут, как программу без массивов сделать? поможете, пожалуйста?))
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
24.02.2009, 17:02 12
А нафига мне, извините, идеи? Это Вам они нужны. Чем мог, помог. Не получилось? Так тоже не беда. Я же Вам не подряжался. Иногда просто поражает упорство в получении халявы.
0
1 / 1 / 0
Регистрация: 18.05.2009
Сообщений: 3
18.05.2009, 19:55 13
здравствуйте, можете подсказать, как можно удалить определенное слово из введенного текста, я пробовала на основе предыдущей программы, но что-то не получается =(((
0
18.05.2009, 19:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2009, 19:55
Помогаю со студенческими работами здесь

Считывание текста из файла и вывод на экран только предложения, содержащие введенное с клавиатуры слово
Здравствуйте.Если у кого-то будет свободная минутка помогите пожалуйста. Было дано задание...

Вывод всех строк,содержащих введенное слово
У меня есть форма и на ней есть 2 текстбокса. В один я ввожу строку для поиска,а во вторую...

Вывод на печать только предложения, содержащие дополнительно введенное слово
Помогите написать программу. Я не понял вообще смысла слов "содержащие дополнительно введенное...

Ввести строку и слово. Вставить введенное слово за пятым словом в строке
Помогите ребят. Нужно написать программу на С++ без использования библиотек <ctype.h>, <string.h>...


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

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