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


Ответ
 
Опции темы Опции просмотра
Старый 22.10.2011, 14:22   #1 (permalink)
Вива
Member
 
Регистрация: 22.10.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Паскаль. Задача о сторожах

ПОМОГИТЕ РЕШИТЬ ЗАДАЧУ!!!

В картинной галерее работают сторожа. Для кадого сторожа известно время прихода на работу и время ухода. Определить всегда ли галерея охраняется?

Пример:

4
__________время прихода___время ухода
1 сторож--8.00__________---12.00
2 сторож--11.00_________---16.00
3 сторож--15.00 ________---19.30
4 сторож--20.00 ________---23.50

Написать программу на Паскале, которая вычисляла бы всегда охраняется галлерея или нет??
Вива вне форума   Ответить с цитированием

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

Эти посты имеют что то общее с вашей темой

Задача про стоки, Паскаль
Паскаль. Задача об элементах вектора
Задача, Паскаль

Старый 22.10.2011, 14:25   #2 (permalink)
Вива
Member
 
Регистрация: 22.10.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Вот сфотографировал пример
Миниатюры
111022-130617.jpg   111022-130653.jpg  
Вива вне форума   Ответить с цитированием
Старый 22.10.2011, 17:34   #3 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,973
Сказал(а) спасибо: 322
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 102185
По умолчанию

Прежде всего - у нас не принято цепляться к чужим темам, поэтому Ваш запрос выделен в отдельную тему.
Теперь по задаче. Ниже - одно из возможных решений. Суть алгоритма:
Начала и окончания дежурств сторожей переведены в формат абсолютных минут, начиная с полуночи. Далее построен цикл по всем минутам в сутках (их 1440), который прерывается, если текущей минуте не соответствует вахта ни одного из сторожей, либо по исчерпании полного количества минут в сутках (1440). Важно! Отрабатывается ситуация, когда дежурство сторожа проходит через полночь, т.е., например, начало - 23.00, окончание - 3.30.
Пути к файлам поставьте, естественно, свои.
Код:
CONST
 Max_Number_Of_Guards=10;
VAR
 f:Text;
 Time_Table:Array[1..Max_Number_Of_Guards, 1..2] of Integer;
 Number_Of_Guards:Byte;
 i:Byte;
 j:Word;
 Start,Finish:Real;
 b:Array[1..Max_Number_Of_Guards] of boolean;
 b_sum:boolean;
BEGIN
 Assign(f,'D:\Input.txt');
 Reset(f);
 Readln(f,Number_Of_Guards);
 If Number_Of_Guards>Max_Number_Of_Guards then
  begin
   writeln('Too many guards! Edit the Input file or change Max_Number_Of_Guards');
   readln;
   HALT;
  end;
 For i:=1 to Number_Of_Guards do
  begin
   Readln(f,Start,Finish);
   Time_Table[i,1]:=(Round(Start*100) div 100)*60+(Round(Start*100) mod 100);
   Time_Table[i,2]:=(Round(Finish*100) div 100)*60+(Round(Finish*100) mod 100);
  end;
 Close(f);
 j:=0;
 Repeat
  b_sum:=false;
  For i:=1 to Number_Of_Guards do
   begin
    b[i]:=false;
    If ((Time_Table[i,1]<Time_Table[i,2]) and
        (j>=Time_Table[i,1]) and (j<=Time_Table[i,2])) OR
       ((Time_Table[i,1]>Time_Table[i,2]) and
        (((j>=Time_Table[i,1]-1440) and (j<=Time_Table[i,2])) or
         ((j>=Time_Table[i,1]) and (j<=Time_Table[i,2]+1440)))) then
     b[i]:=true;
    b_sum:=b_sum or b[i];
   end;
  Inc(j);
 Until (Not(b_sum)) or (j=1441);
 Assign(f,'D:\Output.txt');
 Rewrite(f);
 If b_sum then writeln(f,'YES!') else writeln(f,'NO!');
 Close(f);
END.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 22.10.2011, 19:10   #4 (permalink)
Вива
Member
 
Регистрация: 22.10.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Vladimir_S

Спасибо, вам большое за то, что откликнулись на мою задачу!!! я вбил этот код в паскале пути к файлам поменял на input.dat, output.dat(делаю на паскаль abc) почему то выдает ошибку....( пишет, что неверный числовой формат при вводе) я как то не так записал?
(6.00 12.00
12.00 16.00
16.00 20.00
20.00 6.00)

Пробовал и так(6.00 12.00 12.00 16.00 16.00 20.00 20.00 6.00) все равно выдаёт ошибку
Вива вне форума   Ответить с цитированием
Старый 22.10.2011, 19:11   #5 (permalink)
Daniellos
Хозяин Медной Горы
 
Аватар для Daniellos
 
Регистрация: 01.08.2011
Адрес: Армавир
Сообщений: 11,981
Записей в дневнике: 8
Сказал(а) спасибо: 679
Поблагодарили 81 раз(а) в 24 сообщениях
Репутация: 48781
По умолчанию

Цитата:
Сообщение от Вива Посмотреть сообщение
(делаю на паскаль abc)
А нормального BP или TP нет??
Daniellos вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 22.10.2011, 19:14   #6 (permalink)
Вива
Member
 
Регистрация: 22.10.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Daniellos

Да привык к нему....да там и как то легче(лично для меня), все ошибки выдаёт на русском...
Вива вне форума   Ответить с цитированием
Старый 22.10.2011, 19:17   #7 (permalink)
Daniellos
Хозяин Медной Горы
 
Аватар для Daniellos
 
Регистрация: 01.08.2011
Адрес: Армавир
Сообщений: 11,981
Записей в дневнике: 8
Сказал(а) спасибо: 679
Поблагодарили 81 раз(а) в 24 сообщениях
Репутация: 48781
По умолчанию

По мне лучше без ошибок на английском, чем ошибки на русском
Daniellos вне форума   Ответить с цитированием
Старый 22.10.2011, 19:19   #8 (permalink)
Вива
Member
 
Регистрация: 22.10.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Daniellos

кому как
Вива вне форума   Ответить с цитированием
Старый 22.10.2011, 19:48   #9 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,973
Сказал(а) спасибо: 322
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 102185
По умолчанию

Цитата:
Сообщение от Вива Посмотреть сообщение
я как то не так записал?
Я исходил из Вашего образца, а потому в первой строке должно быть число сторожей. Вид файла:

Код:
4
 8.00 12.00
11.00 16.00
15.00 19.00
20.00 23.50
А вообще - за "задвиги" этого изделия №2, именуемого "PascalABC" - не отвечаю.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 22.10.2011, 20:11   #10 (permalink)
Вива
Member
 
Регистрация: 22.10.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

попробовал установить Turbo Pascal, Borland Pascal...установил, но не работает с 64 разрядной операционной системой
Вива вне форума   Ответить с цитированием
Ads

Яндекс

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

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

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

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




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

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