Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2009, 00:19   #11
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Определения

А вот тоже одно из определений (на уровне простого, так скажем, пользователя).

Открываю по Alt-F11 программную среду Word или Excel, жму Ctrl-G и ввожу
Код:
? weekdayname(weekday(date,vbMonday))
Нажимаю Enter. Печатается:
Цитата:
суббота
Вопрос: это кто-нить знал?

Упражнения, конечно, полезны, но для самопроверки пригодится.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 12.12.2009, 00:23   #12
KoFeMaN
Пользователь
 
Аватар для KoFeMaN
 
Регистрация: 29.11.2009
Сообщений: 13
По умолчанию

вот такой получился готовый код=)
Код:
program lab_8;
const DaysInMonth : array[1..12] of integer=(31,28,31,30,31,30,31,31,30,31,30,31);
const NameofDays  : array[1..7] of string = ('ponedelnik','vtornik','cpeda',
'4etverg','pyatnica','cybbota','voskpecenbe');
Type year = 1500..3000;
month = 1..12;
day = 1..31;
data = Record
y : year;
m : month;
d : day;
End;
function sum_day(td:data):integer;
var i:byte;
    s:integer;
begin
sum_day:=0;
for i:=1 to td.m-1 do
    begin
      sum_day:=sum_day+DaysInMonth[i];
        if (i=2) and ((td.y mod 4=0) and (td.y mod 400<>0)) Then
         sum_day:=sum_day+1;
    end;
sum_day:=sum_day+td.d;
end;
function name_day(sum_day:integer):string;
begin
 if (sum_day>7) then
  begin
  sum_day := sum_day mod 7;
  end;
  writeln(NameofDays[sum_day]);
end;
var td:data;
    sd:integer;
    nd:string;
begin
  writeln('vvedite date');
  readln(td.d, td.m, td.y);
  sd:=sum_day(td);
  nd:=name_day(sd);
  writeln(nd);
  readln;
end.
KoFeMaN вне форума Ответить с цитированием
Старый 12.12.2009, 00:45   #13
KoFeMaN
Пользователь
 
Аватар для KoFeMaN
 
Регистрация: 29.11.2009
Сообщений: 13
По умолчанию

Sasha_Smirnov Это Визал Басик=)А я про паскаль спрашивал.=)Но все равно спасибо=)
KoFeMaN вне форума Ответить с цитированием
Старый 12.12.2009, 00:46   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

оп-с!
1) ошибки в коде! нельзя внутри функции к ней самой прибавлять (это можно делать только при использовании рекурсии!):
Код:
function sum_day(td:data):integer;
var i:byte;
    Result_sum_day:integer;
begin
  Result_sum_day:=0;
  for i:=1 to td.m-1 do
    begin
      Result_sum_day:=Result_sum_day+DaysInMonth[i];
      if (i=2) and ((td.y mod 4=0) and (td.y mod 400<>0)) Then
          Result_sum_day:=Result_sum_day+1;
    end;
  sum_day:=Result_sum_day+td.d;
end;
2)
попробуйте Вашу программу для 28 1 2007
пусто?!
так и должно быть!
Это ОШИБКА!
Вы плохо заменили цикл на MOD 7
я же говорил, что Воскресение станет НУЛЕВЫМ!
надо так:
Код:
const NameofDays  : array[0..6] of string = ('voskpecenbe','ponedelnik','vtornik','cpeda',
'4etverg','pyatnica','cybbota');
...

function name_day(sum_day:integer):string;
begin
 sum_day := sum_day mod 7;
 writeln(NameofDays[sum_day]);
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.12.2009, 01:50   #15
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Ясно, что паскаль. Я изучал. А что с русскими буквами-то у него стало?
Sasha_Smirnov вне форума Ответить с цитированием
Старый 12.12.2009, 11:20   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
А что с русскими буквами-то у него стало?
ничего.... их в тексте нет! видимо руссификатор не стоит, или человек перестраховывается, чтобы вывод программы читался вне зависимости есть ли русская локаль под DOS, на той машине, где программа будет запускаться....
а может автор и просто по приколу так сделал...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.10.2010, 17:29   #17
Hitriy
Новичок
Джуниор
 
Регистрация: 27.10.2010
Сообщений: 1
По умолчанию Определение дня недели по дате

Я тут написал программку, которая определяет день недели 1901-2096 годов, а также говорит, високосный год или нет. К тому же в программу нельзя ввести например 30 февраля или 31 апреля. В зависимости от того, високосный год или нет - 29 февраля можно ввести или нельзя. При нажатии на кнопку "Вычислить", если в месяце максимальное число меньше выбранного, оно автоматически становится максимальным для данного месяца. Вот ссылка на программу. Зацените. Если нужно будет, выложу исходники. http://depositfiles.com/files/my15z1m2d
Hitriy вне форума Ответить с цитированием
Старый 27.10.2010, 17:35   #18
ZvEr_HaCkEr
VisualC++/DirectX
Форумчанин
 
Аватар для ZvEr_HaCkEr
 
Регистрация: 16.07.2010
Сообщений: 831
По умолчанию

Давай.Заценим
ZvEr_HaCkEr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод дня недели по дате и наоборот (СИ) Xcess Помощь студентам 6 08.10.2009 14:02
Зависимость даты дней от дня недели valerij Microsoft Office Excel 16 18.06.2009 01:17
Первая номер дня в дате mirawoo Microsoft Office Access 3 17.06.2008 15:19
Добавление дня к дате Askat БД в Delphi 2 03.03.2008 11:30