![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Roise |
![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Знач так, дан файл f компонентами которого являеются целые числа. Файл создается с такими компонентами y = -5 + random (10). Сформировать новый файл g следующим образом: переписать содержимое файла f так, что бы сначала шли положительные числа, потом нули, а потом отрицательные числа, сохраняя порядок следования чисел.
Криво, косо, но вот что получилось:
Пли-и-из, оч прошу помочь тугодуму заставить это сырое нечто работать :molitva: ЗЫ Эх, мне бы еще научиться, как сделать так, что бы найти в текстовом файле строкус максимальным количеством слов и вывести ее на экран, но я понимаю, что за бесплатно таки вещи не делаются... Но если вдруг очень добрая и бескорыстная душа найдется... -___- -------------------- Ceterum censeo Cartaginem esse delendam О_о
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Ну, вот что я нашаманил :D
Program Raz3_3; как видишь, 4 файла использовать совершенно не обязательно... Да и переменных у тебя много лишних было. |
Roise |
![]()
Сообщение
#3
|
![]() Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Домо АРИГАТО :D :p9:
Do itashi mashite :yes: Сообщение отредактировано: volvo - 25.05.2005 22:42 -------------------- Ceterum censeo Cartaginem esse delendam О_о
|
Roise |
![]()
Сообщение
#4
|
![]() Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Эм.. А вот еще маленький вопросик..
![]() Вы уж извиняйте за невменяемость, просто я в паскале совсем того... Вот, короче, если у меня из файла берутся компоненты, удовлетворяющие определенным условиям (ну, <1 или >8 в данном случае), то как записать операцию нахождения их среднего арифметического? Ну, я ж не знаю, сколько их там всего... Ну, вот такое вот я глупое. ![]() -------------------- Ceterum censeo Cartaginem esse delendam О_о
|
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
s := 0; count := 0; |
mafia1232 |
![]()
Сообщение
#6
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
а подскажи те мне плиз. если взять тот же исходник Roise и те же начальные условия, но чтобы формировался файл g следующим образом: в файле g перед каждым положительным числом ставился ноль
|
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Тогда меняй соответствующий фрагмент на:
var z: integer; |
mafia1232 |
![]()
Сообщение
#8
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
огромное спасибо!!!!!
а вот еще прогу мона сделать? дан текстовый файл, содержащий строки. удалить из строк знаки такие как @ # $ % исходник буквы удаляет Код program P3_4; uses crt; var a,b,p:char; f,f1: text; begin clrscr; p:=' '; assign (f,'proekt.txt'); rewrite (f); for a:='A' to 'z' do write (f,a); assign (f1,'chistka.txt'); reset (f); rewrite (f1); while not eof (f) do begin read (f,b); case b of 'A','B','C','D','E','X','Y':write (f1,p) else write (f1,b); end; end; close (f); close(f1); end. |
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Ну так сделай наоборот...
case b of |
mafia1232 |
![]()
Сообщение
#10
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
А это нормально, что прога текст файлов qwe i nda переделывает в ангийский алфавит? или я неправильно что-то делаю?
|
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
Какие символы задаешь, такие и получишь в результате. Программа-то тут при чем? Она просто отсекает НЕ буквы...
|
Roise |
![]() ![]()
Сообщение
#12
|
![]() Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ой, последний вопрос, ПЛИИИИЗ >___<
И я отвяжусь, честно. Но просто ОЧеНЬ надо (хех, знаю, как и всем остальным) Но прошу только одну строчку: как определить количество слов (отделяются пробелами) в строке? Я FAQ смотрел, но че-то не врубаюсь все равно Сообщение отредактировано: Roise - 26.05.2005 22:10 -------------------- Ceterum censeo Cartaginem esse delendam О_о
|
volvo |
![]()
Сообщение
#13
|
Гость ![]() |
Цитата(Roise @ 26.05.05 22:00) как определить количество слов (отделяются пробелами) в строке? Я FAQ смотрел, но че-то не врубаюсь все равно Лучше чем там я все равно сделать не смогу... Тот алгоритм уже отлажен, зачем же нужно переписывать его еще раз? Что именно не ясно в алгоритме из FAQ-а ? |
Roise |
![]()
Сообщение
#14
|
![]() Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну, если у меня кроме пробелов других разделителей не учитывается, то здесь
Function GetWords(s: String; Var mas: TWords;вместо TDelimeter надо просто ' ' написать? И вот этого куска { Заменяем все разделители пробелами }не надо тогда писать? Да, и еще, фунция просто определяет число слов и все, да? Т.е. что бы потом узнать, в какой из строк у меня слов больше всего, мне нужно просто присвоить этому значению какую-нить переменную MAX , а потом проверить, если GetWords другой строки >MAX, то присвоить МАХ уже этой строке.. Так? -------------------- Ceterum censeo Cartaginem esse delendam О_о
|
volvo |
![]()
Сообщение
#15
|
Гость ![]() |
Цитата(Roise @ 26.05.05 22:54) вместо TDelimeter надо просто ' ' написать? :no: Смотри внимательнее пример использования... Там написано: Цитата Count := GetWords(s, words, []); А внутри функции ничего менять не надо...Цитата что бы потом узнать, в какой из строк у меня слов больше всего, мне нужно просто присвоить этому значению какую-нить переменную MAX , а потом проверить, если GetWords другой строки >MAX, то присвоить МАХ уже этой строке.. Так? Именно так !!! |
Roise |
![]()
Сообщение
#16
|
![]() Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
{ Заменяем все разделители пробелами }- я просто не понимаю тогда, зачем заменять все разделители пробелами О_о И что значит #32? -------------------- Ceterum censeo Cartaginem esse delendam О_о
|
volvo |
![]()
Сообщение
#17
|
Гость ![]() |
Да что ты привязался к этим разделителям???
Это что, для красоты сделано? If s[i] In delimiters then ... Если множество разделителей пустое (а [] это именно пустое множество) - то In будет возвращать False и никаких замен произведено не будет !!! Ты что же думаешь, в FAQ что попало заносится? Все функции протестированы, причем не на одном десятке примеров... А #32 - это код пробела... |
Roise |
![]()
Сообщение
#18
|
![]() Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Да не в коей мере не сомневаюсь в работоспособности этих функций, спрашиваю просто потому, что мне ведь потом объяснять придется, как прога работает
![]() -------------------- Ceterum censeo Cartaginem esse delendam О_о
|
mafia1232 |
![]()
Сообщение
#19
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 46 Пол: Мужской Репутация: ![]() ![]() ![]() |
А помогите переделать. есть созданный текстовый файл, где слова разделяются пробелами. Надо найти строки в которых 5 слов и удалить из этих строчек 2 последних слова.
исходник на удаления строчек длиной 10 символов Program P1_5; |
klem4 |
![]()
Сообщение
#20
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
что-то я не очень понял что ты сделал в своей проге ... вот удаление из строки 4-го и 5-го слова, состоящих из 5-ти букв :
uses crt; Добавлено : Это не совсем верно, перед этим надо проверить сколько слов в строке и если в ней пять слов, то можно просто пойти с конца и удалить первые два. Сообщение отредактировано: klem4 - 1.06.2005 18:32 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 13:50 |