Воскресенье, 19.05.2024, 18:24
Главная Регистрация RSS
Приветствую Вас, Заглянувший
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Независимый IT Форум » Программирование » Помощь в решении задач (Pascal/С/С++) » ПОЖАЛУЙСТО ПОМОГИТЕ С РЕШЕНИЕМ ЗАДАЧ (2 сложноватые(для меня) задачи)
ПОЖАЛУЙСТО ПОМОГИТЕ С РЕШЕНИЕМ ЗАДАЧ
lomonДата: Среда, 09.11.2011, 16:53 | Сообщение # 1
Сообщений: 4
Репутация: 0
Статус: Offline
даны две даты. Определить сколько дней прошло между этими датами.
Ограничения:от 01,01,1920 до 31,12,2007
формат ввода: даты вводяться в формате DD.MM.YYYY
формат вывода: вывести единственное число-кол-во дней прошедшее между датами
______________________________________________________________________________

Есть прямоугольный брусок со сторанами a,b,c. Определить пройдёт ли он в прямоугольное отверстие размером d на e.
ОГРАНИЧЕНИЯ: 1<=a, b, c, d, e<=1000
ФОРМАТ ВВОДА: в одной строке через пробел вводиться 5 чисел :a, b, c, d, e.
ФОРМАТ ВЫВОДА: вывести "YES",если пройдёт, или "NO", если не пройдёт
Страна: Беларусь Беларусь
FreemanДата: Четверг, 10.11.2011, 02:09 | Сообщение # 2
Сообщений: 43
Репутация: 104
Статус: Offline
1.
Program Date2;
type
TDate = record
day: 1..31;
month: 1..12;
year: word;
end;
var
srcdate, curdate: TDate;

(*----------------------------------------
Функция проверяет, является ли
год високосным
----------------------------------------*)

function VisokosnyGod (n: integer): boolean;
begin
if (((n mod 400)=0) or (((n mod 4)=0) and ((n mod 100) <> 0))) then
VisokosnyGod := TRUE
else
VisokosnyGod := FALSE;
end;

(*----------------------------------------
Функция проверяет, правильно ли
задан день в зависимости от
месяца и года
----------------------------------------*)

function CheckDayOfMonth (day, month, year: integer): boolean;
begin
if ((day>30)and(month in [2,4,6,9,11])) or
((day>29)and(month=2)) or
((day>28)and(month=2)and(not VisokosnyGod(year))) then
CheckDayOfMonth:=false
else
CheckDayOfMonth:=true;
end;

(*----------------------------------------
Процедура ввода даты с защитой
от дурака
----------------------------------------*)

procedure EnterDate (var d: TDate);
var
n: integer;
dayOk: boolean;
begin
write('Год: ');
readln(d.year);
repeat
write('Месяц (1..12): ');
readln(n);
if (n<1)or(n>12) then
writeln('Ошибка! Номер месяца должен находиться в диапазоне 1..12');
until (n>0)and(n<13);
d.month:=n;
repeat
dayOk:=true;
write('День (1..31): ');
readln(n);
if (n<1)or(n>31)or(not CheckDayOfMonth(n, d.month, d.year)) then begin
writeln('Ошибка! День не может иметь такое значение для выбранных '+
'года и месяца. Выберите другой день');
dayOk:=false;
end;
until dayOk;
d.day:=n;
end;

(*----------------------------------------
Функция возвращает количество
дней от начала эры до указанной
даты
----------------------------------------*)

function DaysFromZero (d, m, y: integer): longint;
begin
if m>2 then
m := m+1
else begin
m := m+13;
y := y-1;
end;
DaysFromZero := trunc(36525*y/100+306*m/10+d);
end;

begin
writeln('Программа возвращает количество дней между заданной '+
'датой и текущей');
writeln('Введите сегодняшнее число');
EnterDate(curdate);
writeln('Введите интересующую вас дату');
EnterDate(srcdate);
writeln('Заданная дата: ',srcdate.day,'.',srcdate.month,'.',srcdate.year);
writeln('Сегоднящняя дата: ',curdate.day,'.',curdate.month,'.',curdate.year);
writeln('Количество дней между этими датами = ',
abs(DaysFromZero(curdate.day, curdate.month, curdate.year)-
DaysFromZero(srcdate.day, srcdate.month, srcdate.year)));
writeln('Нажмите [Enter] для завершения программы');
readln;
end.
Страна: Беларусь Беларусь
lomonДата: Четверг, 10.11.2011, 22:10 | Сообщение # 3
Сообщений: 4
Репутация: 0
Статус: Offline
спасибо большое...если может кто то помогите вторую плиз
Страна: Беларусь Беларусь
FreemanДата: Пятница, 11.11.2011, 01:16 | Сообщение # 4
Сообщений: 43
Репутация: 104
Статус: Offline
2.
Quote (lomon)
Есть прямоугольный брусок со сторанами a,b,c. Определить пройдёт ли он в прямоугольное отверстие размером d на e.

Code
program zadacha1;
     uses crt;
     var
     a,b,c,d,e:1..1000;
     begin
     write('Введите стороны бруска (a,b,c), а также ограничения (d,e):');
     readln(a,b,c,d,e);
     if a*b<=d*e then writeln('Yes') else
     if b*c<=d*e then writeln('Yes') else
     if a*c<=d*e then writeln('Yes') else
     writeln('No');
     end.
Страна: Беларусь Беларусь
lomonДата: Суббота, 12.11.2011, 14:46 | Сообщение # 5
Сообщений: 4
Репутация: 0
Статус: Offline
БОЛЬШОЕ СПАСИБО respect
Страна: Беларусь Беларусь
Независимый IT Форум » Программирование » Помощь в решении задач (Pascal/С/С++) » ПОЖАЛУЙСТО ПОМОГИТЕ С РЕШЕНИЕМ ЗАДАЧ (2 сложноватые(для меня) задачи)
  • Страница 1 из 1
  • 1
Поиск: