![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Amro |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 146 Пол: Мужской Репутация: ![]() ![]() ![]() |
![]() Вот условие программы: Цитата Определить дату, которая наступит через m дней. Таким образом из условия видно, что программа должна запрашивать месяц и дату, а также само число m... Но я не могу найти сам алгоритм решения этой задачи... а именно каким образом программа будет искать это число и месяц... Саму прогу необходимо написать при помощи записи... -------------------- Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь. Закон программиста: Семь раз отрежь, ошибся, отмерь. |
![]() ![]() |
Amro |
![]()
Сообщение
#2
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 146 Пол: Мужской Репутация: ![]() ![]() ![]() |
Млин........Ошибку в собственной программе нашёл!!!
(начиная с февраля все даты путаются!!!) Код while j<>0 do begin if j>a[data.months]-data.day then begin inc(data.months); data.day:=1; j:=j-a[data.months]+data.day { <--- } end else begin data.day:=data.day+j; break; end; end; Эту самую главную часть я написал неправильно!!!! (а вернее алгоритм не правильный мне посоветовали) Правильно надо вот так: Код while j<>0 do begin if j>a[data.months]-data.day then begin j:=j-(a[data.months]-data.day) inc(data.months); data.day:=0; end else begin data.day:=data.day+j; break; end; end; В общем вот программа полностью, со всеми доработками, думаю кому-нибудь пригодится, ведь ВУЗах одни и те же лабы пишем!!! Сайту тоже пригодится!! Код program Lab8_02_2; uses crt,dos; var q:char; data:record day,year,months:word; end; j:integer; week:word; m:integer; g:word; const month:array[1..12] of string[7] = ('января','февраля','марта','апреля','мая','июня','июля', 'августа','сентябя','октября','ноября','декабря'); a:array[1..12] of integer = (31,29,31,30,31,30,31,31,30,31,30,31); begin repeat clrscr; getdate(data.year,data.months,data.day,week); g:=data.months; writeln('Сегодняшняя дата: ',data.day,' ',month[g]); writeln('введите число m через которое вы хотите узнать дату:'); read(m); j:=m; while j<>0 do begin if j>a[data.months]-data.day then begin j:=j-(a[data.months]-data.day); inc(data.months); data.day:=0; end else begin data.day:=data.day+j; break; end; end; g:=data.months; writeln('Дата дня и месяц: ',data.day,' ',month[g] ); write('Вычислить еще ?(Y/N)'); q:=ReadKey; until not (q in ['Y','y']); end. -------------------- Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь. Закон программиста: Семь раз отрежь, ошибся, отмерь. |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 20:48 |