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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2011, 11:25   #1
D1zz1
Пользователь
 
Регистрация: 04.06.2011
Сообщений: 32
По умолчанию c case

помогите написать чтоб вычислял високосный год или нет, у меня не получается.
Код:
Program PractikaZ2;
Label 30;
Label 50;
var N,G,Y: integer;

Begin
50:writeln('Введите год');
readln(G);
Y:=G mod 4;
if Y:=0 do writeln('год не високосный, вводите номер месяца');
Begin
30: write('Введите номер месяца   ');
readln(N);
N:=N+0;
Case N of
 1: write('Январь 31 день');
 2: write('Февраль 28 дней');
 3: write('Март 31 день');
 4: write('Апрель 30 дней');
 5: write('Май 31 день');
 6: write('Июнь 30 дней');
 7: write('Июль 31 день');
 8: write('Август 31 день');
 9: write('Сентябрь 30 дней');
 10: write('Октябрь 31 день');
 11: write('Ноябрь 30 дней');
 12: write('Декабрь 31 день');
Else Begin
Writeln('Номер месяца введен не правильно');
writeln('Повторите');
Goto 30;
end;
end;
End;
end.
D1zz1 вне форума Ответить с цитированием
Старый 16.06.2011, 11:30   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

В if begin же после do, а не после writeln. Если бы отформатировали код, то заметили бы это скорее всего)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 16.06.2011 в 11:49.
Alex11223 вне форума Ответить с цитированием
Старый 16.06.2011, 11:36   #3
D1zz1
Пользователь
 
Регистрация: 04.06.2011
Сообщений: 32
По умолчанию

пишет на Y неверное выражение. что изменить?
D1zz1 вне форума Ответить с цитированием
Старый 16.06.2011, 11:41   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В if begin же после do
БЕГОМ УЧИТЬ МАТЧАСТЬ!!!!
Цитата:
if Y:=0 do writeln('год не високосный, вводите номер месяца');
Then где?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.06.2011, 11:42   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А сами как думаете? "Присвоить" и "равно" это не одно и тоже.

Цитата:
БЕГОМ УЧИТЬ МАТЧАСТЬ!!!!
упс, перепутал но бегин все равно не там, где должен быть.


Вобщем так должно быть
Код:
 if Y = 0 then begin
Если дальнейший алгоритм верный.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 16.06.2011 в 11:48.
Alex11223 вне форума Ответить с цитированием
Старый 16.06.2011, 11:51   #6
D1zz1
Пользователь
 
Регистрация: 04.06.2011
Сообщений: 32
По умолчанию

он не переходит теперь на месяц. на год не реагирует вообще) просто вводишь и ничего не происходит
D1zz1 вне форума Ответить с цитированием
Старый 16.06.2011, 11:54   #7
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Код:
Y := G mod 4;
низачёт:

Цитата:
год является високосным, если он кратен 4 и при этом не кратен 100, либо кратен 400
> на год не реагирует вообще

Код:
if Y = 0 then
(без begin)

и ещё:

Код:
write('Февраль 28 дней');
интересно, как такая строчка хотя бы теоретически может вывести 29 дней?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."

Последний раз редактировалось veniside; 16.06.2011 в 11:57.
veniside вне форума Ответить с цитированием
Старый 16.06.2011, 11:59   #8
G-Kyller
Пользователь
 
Регистрация: 11.03.2011
Сообщений: 67
По умолчанию

Код:
if Y=0 then 
Begin
writeln('год не високосный, вводите номер месяца');
30: write('Введите номер месяца   ');
Если помог, жми спасибо
G-Kyller вне форума Ответить с цитированием
Старый 16.06.2011, 13:00   #9
D1zz1
Пользователь
 
Регистрация: 04.06.2011
Сообщений: 32
По умолчанию

veniside, там вообще то для НЕ високосного года

как сделать что бы возрващал на исходную позицию если високосный год?

попытался сделать там для возвращения, но теперь программа завершается при вводе года

Код:
Program PractikaZ2;
Label 30;
Label 50;
var N,G,Y: integer;
Begin
50:writeln('Ââåäèòå ãîä');
readln(G);
Y:=G mod 4;
if Y = 0 then writeln('ãîä íå âèñîêîñíûé, ââîäèòå íîìåð ìåñÿöà')
else begin
Writeln('Ãîä âèñîêîñíûé ââåäèòå èíîé');
writeln('Ïîâòîðèòå');
Goto 50;
Begin
30: write('Ââåäèòå íîìåð ìåñÿöà   ');
readln(N);
N:=N+0;
Case N of
 1: write('ßíâàðü 31 äåíü');
 2: write('Ôåâðàëü 28 äíåé');
 3: write('Ìàðò 31 äåíü');
 4: write('Àïðåëü 30 äíåé');
 5: write('Ìàé 31 äåíü');
 6: write('Èþíü 30 äíåé');
 7: write('Èþëü 31 äåíü');
 8: write('Àâãóñò 31 äåíü');
 9: write('Ñåíòÿáðü 30 äíåé');
 Program PractikaZ2;
Label 30;
Label 50;
var N,G,Y: integer;
Begin
50:writeln('Введите год');
readln(G);
Y:=G mod 4;
if Y = 0 then writeln('год не високосный, вводите номер месяца')
else begin
Writeln('Год високосный введите иной');
writeln('Повторите');
Goto 50;
Begin
30: write('Введите номер месяца   ');
readln(N);
N:=N+0;
Case N of
 1: write('Январь 31 день');
 2: write('Февраль 28 дней');
 3: write('Март 31 день');
 4: write('Апрель 30 дней');
 5: write('Май 31 день');
 6: write('Июнь 30 дней');
 7: write('Июль 31 день');
 8: write('Август 31 день');
 9: write('Сентябрь 30 дней');
 10: write('Октябрь 31 день');
 11: write('Ноябрь 30 дней');
 12: write('Декабрь 31 день');
Else Begin
Writeln('Номер месяца введен не правильно');
writeln('Повторите');
Goto 30;
end;
end;
End;
end;
end.

Последний раз редактировалось Stilet; 16.06.2011 в 16:29.
D1zz1 вне форума Ответить с цитированием
Старый 16.06.2011, 13:18   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А какое задание вообще? Что-то я не очень понял, что вы в case хотите сделать, особенно
Код:
n:=n+0;
oO

Кстати, почему вы не форматируете код?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 16.06.2011 в 13:25.
Alex11223 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
case boomeer Общие вопросы C/C++ 1 20.08.2010 12:13
case от а до я Horus92 Помощь студентам 7 15.07.2010 01:43
Use case elenSV Помощь студентам 0 09.06.2010 22:28
Case Is nes@ Помощь студентам 0 18.11.2009 20:21
case Кирилл17 Помощь студентам 6 28.12.2008 10:11