23.03.2014, 20:48 | #1 (permalink) |
Member
Регистрация: 02.03.2014
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Турбо Паскаль. Файлы, работа с текстом
задание: Напечатать в алфавитном порядке все буквы, входящие в текст |
23.03.2014, 20:48 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Я думаю, что тут найдется много полезного для вас Турбо Паскаль. Тип запись Турбо Паскаль. Рекурсии Программа в Турбо-Паскаль 7,0 |
23.03.2014, 21:03 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Свет, а может сами, а? И рад был бы помочь, да только вот этим самым прямым доступом отродясь не пользовался за ненадобностью, а разбираться - лень душит.
|
23.03.2014, 22:35 | #3 (permalink) |
Member
Регистрация: 02.03.2014
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
а можете подсказать алгоритм выполнения задания? (Напечатать в алфавитном порядке все буквы, входящие в текст). не представляю, как это выполнить. как отсортировать?
|
23.03.2014, 23:08 | #4 (permalink) |
Member
Регистрация: 05.03.2014
Сообщений: 200
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 834
|
я не совсем осознал задание. т.е. если буква встречается несколько раз, то ее надо столько раз и вывести? или по разу?
хотя в любом случае первое, что пришло в голову. создать массив по количеству букв (33). пробежаться в цикле по строке. и та буква что есть, отметить в массиве. mass[0..32] of boolean; а если еще и буквы считать, то инкремент. |
24.03.2014, 08:44 | #5 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
24.03.2014, 13:06 | #6 (permalink) |
Member
Регистрация: 05.03.2014
Сообщений: 200
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 834
|
какой хитрец)))
я то просто думал отметить в массиве совпадение букв. и потом просто пробежаться по нему и вывести те, что отмечены. вот только как уже было ранее сказано не предусмотрел большие маленькие буквы. |
24.03.2014, 14:38 | #8 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
Var f1,f3:Text; f2:File of Byte; i,Cd:Byte; Ch:Char; Lt:Set of Byte; b1,b2:boolean; Begin Assign(f1,'D:\Shakesp.txt'); ReSet(f1); Assign(f2,'D:\Sh_1'); Rewrite(f2); Lt:=[]; Repeat Read(f1,Ch); Write(f2,Ord(Ch)); Until EoF(f1); Close(f1); Close(f2); ReSet(f2); i:=0; Repeat Seek(f2,i); Read(f2,Cd); If Not(Cd in Lt) then Lt:=Lt+[Cd]; Inc(i); Until EoF(f2); Close(f2); Assign(f3,'D:\Sh_2'); Rewrite(f3); for i:=1 to 26 do begin b1:=false; b2:=false; If (i+96) in Lt then b1:=true; If (i+64) in Lt then b2:=true; If b1 then write(f3,Chr(i+96),' ') else if b2 then write(f3,' '); If b2 then write(f3,Chr(i+64)); If b1 or b2 then writeln(f3); end; Close(f3); End. 1. Программа ориентирована ИСКЛЮЧИТЕЛЬНО на латиницу. С кириллицей у меня напряг - использую DOS-кодировку. Но если нужно, можно легко переделать под кириллицу. 2. Файлы расположены на диске D. Имя исходного - Shakesp.txt, имена двух других - Sh_1 и Sh_2. Естественно, всё это можно изменить в программе. |
|
24.03.2014, 21:07 | #10 (permalink) |
Member
Регистрация: 02.03.2014
Сообщений: 32
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Владимир, ваша программа написана в турбо паскале или в абс?
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Метки |
турбо паскаль |
|
|