![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Дон |
![]()
Сообщение
#21
|
Новичок ![]() Группа: Пользователи Сообщений: 22 Пол: Мужской Репутация: ![]() ![]() ![]() |
Мда..все-таки комментарии вещь хорошая...без них бы мало что понял)))
А как вывести в начале программы большими белыми буквами "Парикмахерская"?Я так понимаю это особые параметры оператора Write? |
Lapp |
![]()
Сообщение
#22
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
А как вывести в начале программы большими белыми буквами "Парикмахерская"?Я так понимаю это особые параметры оператора Write? Что значит большими? к сожалению, в командной строке менять размер шрифта нельзя. Можешь просто написать все прописными: ПАРИКМАХЕРСКАЯ. Да, просто добавь в начале где-нить оператор WriteLn('ПАРИКМАХЕРСКАЯ'); Если ты просто наберешь это в программном редакторе и запустишь - все сработает. Но при последующих копированиях файла туда-обратно может вместо русских букв полезть всякая дрянь.. Это из-за того, что паскалевский редактор использует кодировку DOS, а ноутпад, например (и не только) - Widows. И это есть та причина, почему я использую английский в программах, либо ненавидимую мной латиницу.. Так что будь к этому морально готов. А если хочешь с этим получше разобраться - скажи, помогу. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Дон |
![]()
Сообщение
#23
|
Новичок ![]() Группа: Пользователи Сообщений: 22 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата И это есть та причина, почему я использую английский в программах, либо ненавидимую мной латиницу.. Можно в принципе и на английсском...я просто хотел сделать нечто вроде приветствия,вот мол,здравствуйте,это парикмахерская...цвет же можно поменять? |
Lapp |
![]()
Сообщение
#24
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Можно в принципе и на английсском...я просто хотел сделать нечто вроде приветствия,вот мол,здравствуйте,это парикмахерская...цвет же можно поменять? Ты все же попробуй на русском. Надо хоть раз самому прочувствовать. А если все будет хорошо, то и хорошо. Цвет поменять нетрудно. Только нужно будет в самом начале (первой строчкой) вставить оператор: uses CRT; Это использование библиотеки для текстового вывода (происходит от Cathode Ray Tube, то есть электронно-лучевая трубка). Тогда ты сможешь менять цвет самих символов и фона: TextColor©; TextBackground©; Поварьируй c в пределах от 0 до 15 (для фона от 0 до 7). -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Дон |
![]()
Сообщение
#25
|
Новичок ![]() Группа: Пользователи Сообщений: 22 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Поварьируй c в пределах от 0 до 15 (для фона от 0 до 7). И цвет фона поменял и текста,только... Нужно чтобы цвет меняла только надпись "Парикмахерская"..а так как мы вставляем оператор textcolor после begin,то цвет меняет весь текст в программе... я думал что-то получится,если напишу так: Код begin TextColor(2); Write('Парикмахерская'); end; то есть отдельным циклом...но не вышло..как поступить? Цитата Плохо выглядит вывод времени в долях часа.. действительно плохо..как этого можно избежать? |
Lapp |
![]()
Сообщение
#26
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Код begin TextColor(2); Write('Парикмахерская'); end; то есть отдельным циклом...но не вышло..как поступить? действительно плохо..как этого можно избежать? Это не цикл.. Циклы - это три конкретных оператора: for, while, repeat. А begin и end - это так называемые "операторные скобки", они превращают группу операторов в как бы один. Но только тут они не нужны. Все, что тебе нужно - это после написания сменить цвет обратно: Код TextColor(2); Write('Парикмахерская'); TextColor(7); Что касается форматирования времени под вывод минут, то это можно сделать примерно так.. Сначала берешь целую часть времени в часах (это сколько часов), потом дробную часть умножаешь на 60 и округляешь (это минуты). var Hour,Min:integer; Этот вариант все же грешит тем, что выводит минуты без нулей. Поэтому если хочешь организовать стандартный вывод Час:Мин (через двоеточие), то надо добавлять печать нуля, если минут меньше 10 (то есть чтоб было 12:02, а не 12:2 ) var И напоследок, поскольку у тебя в программе вывод времени делается много раз, то лучше засунуть это все в процедуру. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Дон |
![]()
Сообщение
#27
|
Новичок ![]() Группа: Пользователи Сообщений: 22 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата TextColor(2); Write('Парикмахерская'); TextColor(7); Вот какая фигня...текст-то он окрасил... Только вот когда я задаю Uses Crt; в начале программы,CTRL-Z у меня работать перестает..как они связаны?когда убираю Uses Crt; все прекрасно работает... Цитата Hour,Min:integer; Ziro:string[1]; Здесь все ясно.Задаем часы,минуты, и ноль... Цитата Hour:=Trunc(t); Min:=Round(Frac(t)*60); if Min<10 then Ziro:='0' else Ziro:=''; WriteLn('Время ',t :2 :4,' соответствует ', Hour,':',Ziro,Min); А это куда вставлять? |
Lapp |
![]()
Сообщение
#28
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
когда я задаю Uses Crt; в начале программы,CTRL-Z у меня работать перестает..как они связаны?когда убираю Uses Crt; все прекрасно работает... Что ж, поздравляю - ты сам отлично справился с диагностикой проблемы! это не так просто, можно и не обратить внимания на всякме там CRT.. ![]() Серьезно - CRT действительно, з@р@з@, переделывает стандартный ввод по-своему, и за это я ее не люблю. Когда я советовал тебе использовать этот модуль, я забыл, что мы работаем с EoF, извини.. Но вышло даже хорошо - ты набираешь опыт! ![]() Значица, так.. Сейчас я в другой твоей теме брошу ссылку на один простенький но крайне полезный документ. В Сети есть много его HTML-версий, но у них у всех битые связи. А этот хоть и не HTML, но, вроде, правильный - ты его скачай и распакуй. Там зайди в приложение, описывающее модуль CRT. Мне кажется, этой информации тебе должно хватить, чтобы ты мог заставить Ctrl-Z снова заработать. Только замечу, что после этого тебя ждет другая неприятность - может перестать работать ReadLn (задержка в конце). Советую заменить его на ReadKey (это функция/процедура CRT, очень полезная сама по себе). А это куда вставлять? Ну, это не совсем вставлять.. Это я пример типа привел, как сделать вывод времени абстрактно. Ты как бы должен его переработать, взять из него необходимое, лишнее выбросить, что-то изменить - ну и вставить, куда нужно, тоже ![]() ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Гость |
![]()
Сообщение
#29
|
Гость ![]() |
Цитата Там зайди в приложение, описывающее модуль CRT. Зашел,почитал...не разобрался ![]() мы должны использовать функцию KeyPressed? |
Lapp |
![]()
Сообщение
#30
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Зашел,почитал...не разобрался ![]() Такое там не видел? CheckEof:Boolean; {Разрешает/запрещает контроль Ctrl-Z} Перед циклом ввода данных пользователей поставь CheckEof:=true; Тогда работа Ctrl-Z возобновится. Правда, по-другому. Например, Enter уже будет не нужен.. И в конце, возможно, будет отличие.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Дон |
![]()
Сообщение
#31
|
Новичок ![]() Группа: Пользователи Сообщений: 22 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Такое там не видел? неа..признаться честно,не нашел.. CheckEof:Boolean; мы обьявляем в разделе переменных,а CheckEof:=true; куда?перед циклом ввода данных поставил..все равно не работает моя Ctrl-Z ![]() |
Lapp |
![]()
Сообщение
#32
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
> неа..признаться честно,не нашел..
Но теперь-то видишь? > CheckEof:Boolean; мы обьявляем в разделе переменных, А вот этого делать не надо. Эта переменная уже определена в модуле CRT, так же как и процедуры и константы типа White, Red.. Когда ты ее определил сам, ты на самом деле ее переопределил, то есть сделал новую такую переменную, а ту сделал недоступной. Потому и не работает.. ![]() > а CheckEof:=true; куда?перед циклом ввода данных поставил.. Да, туда. > все равно не работает моя Ctrl-Z ![]() Убери переопределение ![]() Теперь ты познакомился поближе с работой модулей. Step by step. One at a time. Все так и должно быть. Жаль только, что остальные в тему, похоже, перестали заглядывать, а меня тебе приходится ждать сутки.. ![]() Больше читай и не пропускай ничего. И делай ипрогоняй маленькие программки-тесты на то, что прочитал. Обычно достаточно две-три строчки - и ты не только лучше разберешься, но и лучше запомнишь. Успехов! -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Дон |
![]()
Сообщение
#33
|
Новичок ![]() Группа: Пользователи Сообщений: 22 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Если ты еще не разбирался с процедурами/функциями - самое время начать. нет..признаться,с ними я не знаком.. Цитата Но теперь-то видишь? В разделе CRT?Нету!я даже поиск давал по главам,по слову CheckEof...ничего не нашел... Цитата Убери переопределение Убрал-заработало!мелочь,а приятно... ![]() Кстати,я убрал вывод простоя между работой парикмахера..вот это: Код if t>t1 then t1:=t; {выводим время простоя, если оно было} он ведь показывает сколько прошло времени,пока не было клиентов?просто кажется..лишнее это..да и глазу,если честно,мешает... осталось только то время,которое с момента обслуживания последнего клиента и до конца работы осталось... |
Lapp |
![]()
Сообщение
#34
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
В разделе CRT?Нету!я даже поиск давал по главам,по слову CheckEof...ничего не нашел... Послушай, я же писал: Там зайди в приложение, описывающее модуль CRT. Точнее: Приложение 4, П4.3.2 Надеюсь, теперь найдешь.. ![]() А поиск там голимый.. только в текущем топике.. ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Дон |
![]()
Сообщение
#35
|
Новичок ![]() Группа: Пользователи Сообщений: 22 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Точнее: Приложение 4, П4.3.2 У нас по приложению 4-Типы данных! не могу найти ![]() Я вот тут описываю программу..ее надо описать вместе с операторами.. Цитата Программа состоит из 55 строчек. Язык, используемый программой – русский. В тексте программы использовались такие операторы, как: WriteLn; While; For; If; else; В разделе var мы объявляем время прихода каждого клиента, время его обслуживания, а также общее число клиентов. Операторами TOpen; и TClose; мы обьявили время открытия и время закрытия парикмахерской. Подскажите,пожалуйста,как бы покультурней описать While?может быть еще что-то надо описать? |
Lapp |
![]()
Сообщение
#36
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
> У нас по приложению 4-Типы данных!
Это Глава 4 - Типы данных. Смотри Приложения внизу.. > Я вот тут описываю программу..ее надо описать вместе с операторами.. > Программа состоит из 55 строчек. Язык, используемый программой – русский. Язык интерфейса программы - русский (латиница) > В тексте программы использовались такие операторы, как: > WriteLn; > While; > For; > If; else; Убери ";", это не есть часть оператора. А внутри оператора "if ... then ... else" они просто являются ошибкой (проверь, попробуй поставить ";" перед else). > В разделе var мы объявляем время прихода каждого клиента, Мы объявляем переменные для хранения времени .... > Операторами TOpen; и TClose; мы обьявили время открытия и Это не операторы. Это переменные, которые мы завели для хранения времени открытия и закрытия парикмахерской. > как бы покультурней описать While?может быть еще что-то надо описать? Цикл while осуществляет регистрацию клиентов по мере их поступления, присваивая каждому клиенту его номер и занося в массивы время прихода и время, необходимое для обслуживания каждого клиента. Выход из цикла осуществляется по признаку конца файла ввода (Ctrl-Z для файла типа text). Цикл for является централной конструкцией в данной программе. Он осуществляет моделирование работы мастера, состоящее в вызове мастером клиентов по очереди (по мере освобождения мастера либо по мере поступления клиентов, в зависимости от того, что наступает раньше). Моделирование осуществляется посредством вычисления времени начала (переменная t) и конца (переменная t1) сеанса. При этом если оставшегося рабочего времени недостаточно для обслуживания вызываемого клиента, то ему сообщается о невозможности обслуживания, после чего осуществляется переход к следующему по очереди клиенту. Цикл заканчивается по окончании обслуживания (либо сообщении об отказе в сервисе) всех клиентов. В процессе цикла суммируется общее рабочее время мастера (переменная tWork), а также выводится информауия о предпринятом действии (обслуживание с временем начала и конца, отказ). По завершении цикла выводится суммарное общее число обслуженных (то есть тех, кому не было отказано в сервисе) клиентов и полное рабочее время мастера. Вот, примерно так, думаю.. ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Дон |
![]()
Сообщение
#37
|
Новичок ![]() Группа: Пользователи Сообщений: 22 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Смотри Приложения внизу.. Усе..найдено))) Цитата Вот, примерно так, думаю.. спасибо большое ![]() Я вот еще чего не догоняю... Цитата : исходные данные (подробно описать исходные данные и их типы); математическая модель задачи (описать метод решения); выходные данные (описать конечные данные и их типы). Исходных данных у нас два штуки-время прихода и время обслуживания,тип данных-real. А вот остальное я торможу...что такое выходные данные?это время простоя,кол-во пришедших клиентов и время,в общем потраченное?или я неправильно понимаю задание... еще математическая модель задачи..это как? |
Lapp |
![]()
Сообщение
#38
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
> Усе..найдено)))
Вывод: внимательнее относись к советам и ууказаниям. Я с самомго начала говорил именно о приложении. > что такое выходные данные? Как что? ![]() > еще математическая модель задачи..это как? Ну.. Скажем, это суммирование времени в цикле с проверкой условий на пригодность данных (если времени нужно много - данные непригодны, клиенту отказывается). [/quote] -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Дон |
![]()
Сообщение
#39
|
Новичок ![]() Группа: Пользователи Сообщений: 22 Пол: Мужской Репутация: ![]() ![]() ![]() |
Прошелся по программе...возникло несколько вопросов...
Цитата Серьезно - CRT действительно, з@р@з@, переделывает стандартный ввод по-своему, и за это я ее не люблю. Когда я советовал тебе использовать этот модуль, я забыл, что мы работаем с EoF, извини.. Вот тут можно поподробнее..почему crt так действует на Eof,при этом блокируя работу CTRL-Z? Цитата t,t1,t2,TWork,TOpen,TClose:real; Twork-это время работы. topen и tclose -закрытие открытие... запутался вот где...t,t1,t2 - это что за времена?работы,обслуживания и..и чего? |
Lapp |
![]()
Сообщение
#40
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
> Прошелся по программе...возникло несколько вопросов...
Дон, без обид - надо активнее. Время проходиться по программе прошло. Если хочешь научиться программировать - делай хотя бы по одной новой задаче в день. Свои задачи, не для сдачи. Тогда не будет всяких побочных (извини, дурацких) вопросов, а будет только одно: правильный результат. И если ты сможешь это делать, то увидишь, что вопросы больше не возникают. То есть они возникают, но сразу находят ответ. Просто подходить нужно с другой стороны - с максимального количества практики. И тогда все будет ясно, все вопросы ответятся сами собой. Задачи можешь брать из текущей ленты нашего Форума (самые простые сначала), решать их и сверяться с тем, что отвечают. Всегда можно вмешаться в беседу, если что-то неясно.. > Вот тут можно поподробнее.. > почему crt так действует на Eof,при этом блокируя работу CTRL-Z? Да просто она так сделана! Я не видел ее сорсов и ничего про это не знаю. Перехватывает файловый ввод/вывод на консоль, да и все тебе тут.. Так захотели разработчики.. При этом они, как ты убедился, оставили лазейку для использования Ctrl-Z, хотя и не очень хорошо. В свое время, чтоб избежать всяких таких сложностей, я написал свой собственный модуль для работы с экраном (цвет и т.п.), а CRT отложил в сторонку, и пользовался Ctrl-Z без ограничений. Правда, у этого подхода тоже есть недостатки, но это другой разговор. > Twork-это время работы. это общее время работы, то есть промежуток > topen и tclose -закрытие открытие... то есть моменты свершения неких событий > запутался вот где...t,t1,t2 - это что за времена?работы,обслуживания и..и чего? t - это как бы текущее время в нашей модели. t1 - время начала сеанса стрижки; t2 - время окончания сеанса. Ты не замечал, что то, что мы называем временем (и измеряем в часах, секундах..) на самом деле имеет сильно неодинаковый смысл? Рассмотрим фразу: "Мой обед по расписанию рабочего дня длится 1 час, при этом начинается он в 12:00, поэтому сейчас, в 12:45, господин старший менеджер, я имею полное право разгадывать кроссворд." Тут 1 час - это длительность промежутка времени. Обед был сегодня, будет завтра - это некий процесс, и 1 час - это продолжительность его течения. Здесь TWork - это время работы парикмахера, то есть сколько времени продолжался процесс стрижки. Этот процесс мог прерываться (если были простои), но мы считаем суммарное время. И это важно, так как промежутки времени можно суммировать. 12:00 - это время события. Такое же, как твой год рождения или отмена крепостного права (1861г.). Оно зафиксировано на шкале времени. Тут таковыми являются время открытия и закрытия, время начала и окончания сеанса. Складывать их бессмысленно (сложи начало обеда (12) с концом обеда (13) - и что получишь? Кому надо это 25?). Зато можно к таким временам прибавлять промежутки. Еще, их можно вычитать, чтоб получать промежутки.. 12:45 - это текущее время. Оно в каждой реальности одно, но реальностей может быть много. Смотря фильм, мы живем во времени фильма (а в нем может быть несколько нитей). Решая задачу про парикмахера (моделируя его деятельность во времени), мы должны иметь его текущее время. При этом отмечать всякие события, мелкие и крупные, если надо. Например, начало и конец сеанса.. Ты понял, почему я все это развел? Ты сказал: "Twork-это время работы". Это неточно. Я уточнил: общее время работы, чтобы ты не путал с текущим временем работы (жизни) парикмахера. И счел нужным навести порядок в твоих мыслях. Получилось?.. ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 17:36 |