![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
marwell |
![]() ![]()
Сообщение
#1
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: ![]() ![]() ![]() |
В учебном заведении известно начало рабочего дня, продолжительность пары или урока в минутах, продолжительность обычного и большого перерывов и их место в расписании, а также количество пар (уроков) в день. Напишите программу, которая составляет расписание звонков на весь учебный день.
даже не знаю с какой стороны подойти... можно ли сделать это с помощью массива? буду благодарен совету |
Ozzя |
![]()
Сообщение
#2
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата можно ли сделать это с помощью массива? Можно |
marwell |
![]()
Сообщение
#3
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
Ozzя |
![]()
Сообщение
#4
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
А почему так много то?
6 учебных дней, по 6-8 уроков (ну пусть 10) NumberOfDay:= 6;
NumberOfLessons:=10;
For i:=1 to NumberOfDay do
For i:=1 to NumberOfLessons do
...
|
marwell |
![]()
Сообщение
#5
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
Ozzя |
![]()
Сообщение
#6
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну, да чего мелочиться-то. Сразу и расписание уроков вбить.
|
marwell |
![]()
Сообщение
#7
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
Ozzя |
![]()
Сообщение
#8
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Дзынь Начало раб. дня
Пока не конец раб. дня Начало раб. дня+длина урока*номер урока Дзынь Начало раб. дня+длина урока*номер урока+длина перемены // здесь дополнительно проверку большая или маленькая перемена Дзынь конец Примерно так |
marwell |
![]()
Сообщение
#9
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: ![]() ![]() ![]() |
Дзынь Начало раб. дня Пока не конец раб. дня Начало раб. дня+длина урока*номер урока Дзынь Начало раб. дня+длина урока*номер урока+длина перемены // здесь дополнительно проверку большая или маленькая перемена Дзынь конец Примерно так а как учесть то что что в часе 60 минут? (например, начало в 8:00, 5 пар, по 90 минут, перерыв 10 минут, большой 40минут после 2 пары - 8:00, 9:20, и т.д. ) может я просто не слышал такого, но я не могу понять как сделать чтобы при превышении количества минут 60, увеличивалось количество часов ![]() |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Отдельно - часы, отдельно - минуты...
hh := 8; mm := 0; // 8:00
mm := mm + 90; // добавляем 90 минут - конец первой пары, так?
// А теперь - корректируем время, чтоб было в правильном формате, а не 8:90
hh := hh + (mm div 60);
mm := mm mod 60;
// и (чудо, правда?) у нас получается hh = 9, а mm = 30
|
marwell |
![]()
Сообщение
#11
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: ![]() ![]() ![]() |
var nach,i:integer;
hh,mm,hh2,mm2:integer;
bol_per,per:integer;
prodol:integer;
kol,mesto:Integer;
begin
write('vvedite vremja nachala dnja v formate "hh mm" - ');
readln(hh, mm);
write('vvedite prodolgitelnost pari v minutah - ');
readln(prodol);
write('vvedite prodolg. bolschogo pereriva - ');
readln(bol_per);
write('vvedite prodolg. obichnogo pereriva - ');
readln(per);
write('vvedite nomer pari pered bolschim pererivom - ');
readln(mesto);
write('vvedite kolichestvo par v den - ');
readln(kol);
writeln(hh,':',mm);
for i:=1 to kol do
begin
mm:=mm+prodol;
hh:=hh+(mm div 60);
mm:=mm mod 60;
if i=mesto then begin
mm2:=mm+bol_per;
hh2:=hh+(mm2 div 60);
mm2:=mm2 mod 60;
end
else begin
mm2:=mm+per;
hh2:=hh+(mm2 div 60);
mm2:=mm2 mod 60;
end;
writeln(hh,':',mm);
Writeln(hh2,':',mm2);
end;
readln;
end.
не могу найти ошибку(( не хватает 10 мин перерыва |
Ozzя |
![]()
Сообщение
#12
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
mm:=mm+prodol;
Здесь ты забываешь перемену прибавить Наврал ![]() Тут добавь ...
mm:=mm2; // вся соль (С) тут ;)
writeln(hh,':',mm);
Writeln(hh2,':',mm2);
end;
Сообщение отредактировано: Ozzя - |
marwell |
![]()
Сообщение
#13
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
Ozzя |
![]()
Сообщение
#14
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
С чего это вдруг?
См. сам Сообщение отредактировано: Ozzя - Эскизы прикрепленных изображений ![]() |
marwell |
![]()
Сообщение
#15
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: ![]() ![]() ![]() |
С чего это вдруг? См. сам var nach,i:integer;
hh,mm,hh2,mm2:integer;
bol_per,per:integer;
prodol:integer;
kol,mesto:Integer;
begin
write('vvedite vremja nachala dnja v formate "hh mm" - ');
readln(hh, mm);
write('vvedite prodolgitelnost pari v minutah - ');
readln(prodol);
write('vvedite prodolg. bolschogo pereriva - ');
readln(bol_per);
write('vvedite prodolg. obichnogo pereriva - ');
readln(per);
write('vvedite nomer pari pered bolschim pererivom - ');
readln(mesto);
write('vvedite kolichestvo par v den - ');
readln(kol);
writeln (hh,':',mm);
for i:=1 to kol do
begin
mm:=mm+prodol;
hh:=hh+(mm div 60);
mm:=mm mod 60;
if i=mesto then begin
mm2:=mm+bol_per;
hh2:=hh+(mm2 div 60);
mm2:=mm2 mod 60;
end
else begin
mm2:=mm+per;
hh2:=hh+(mm2 div 60);
mm2:=mm2 mod 60;
end;
mm:=mm2;
writeln(hh,':',mm);
Writeln(hh2,':',mm2);
end;
readln;
end.
я тебя правильно понял? ![]() |
Ozzя |
![]()
Сообщение
#16
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Кажется, я еще что-то правил.
Мой вариант: var nach,i:integer;
hh,mm,hh2,mm2:integer;
bol_per,per:integer;
prodol:integer;
kol,mesto:Integer;
begin
write('vvedite vremja nachala dnja v formate "hh mm" - ');
readln(hh, mm);
write('vvedite prodolgitelnost pari v minutah - ');
readln(prodol);
write('vvedite prodolg. bolschogo pereriva - ');
readln(bol_per);
write('vvedite prodolg. obichnogo pereriva - ');
readln(per);
write('vvedite nomer pari pered bolschim pererivom - ');
readln(mesto);
write('vvedite kolichestvo par v den - ');
readln(kol);
writeln(hh,':',mm);
for i:=1 to kol do
begin
mm:=mm+prodol;
hh:=hh+(mm div 60);
mm:=mm mod 60;
if i=mesto then
begin
mm2:=mm+bol_per;
hh2:=hh+(mm2 div 60);
mm2:=mm2 mod 60;
end
else
begin
mm2:=mm+per;
hh2:=hh+(mm2 div 60);
mm2:=mm2 mod 60;
end;
writeln(hh,':',mm);
Writeln(hh2,':',mm2);
mm:=mm2;
end;
readln;
end.
Добавлено через 5 мин. Понял, где наврал Не так mm:=mm2; // вся соль (С) тут ;)
writeln(hh,':',mm);
Writeln(hh2,':',mm2);
end;
а так writeln(hh,':',mm);
Writeln(hh2,':',mm2);
mm:=mm2; // вся соль (С) тут ;)
end;
|
marwell |
![]()
Сообщение
#17
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: ![]() ![]() ![]() |
понятно, спасибо большое!
![]() |
Ozzя |
![]()
Сообщение
#18
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата понятно, спасибо большое! Не, ты молодец. В отличие от многих других. По моему, довольно-таки невнятному алгоритму написал программу. А Volvo и я только помогли Лови + Сообщение отредактировано: Ozzя - |
marwell |
![]()
Сообщение
#19
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: ![]() ![]() ![]() |
еще один вопрос: в результате программа выводит время звонков, включая также время начала следующей пары(напрмер: пар 5, выводит время звонков для 5 пар и в конце время начала шестой пары), как можно убрать это последнее время?
|
volvo |
![]()
Сообщение
#20
|
Гость ![]() |
Я что-то не так делаю, либо программа из 16-го поста работает некорректно (комментарии - мои)?
vvedite vremja nachala dnja v formate "hh mm" - 8 0 |
![]() ![]() |
![]() |
Текстовая версия | 16.04.2025 19:10 |