Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 24.01.2011, 20:27   #1 (permalink)
Armager
Новичок
 
Регистрация: 24.01.2011
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Паскаль, задачи

Добрый вечер помогите сделать задачи в паскале
1: нужно ввести количество дней в месяце, и день с которого начинается месяц (понедельник 1вый день).
И, чтобы программа вывела на экран количество понедельников в месяце и все даты суббот. 2:потрибно ввести год високосный или нет (1 или 2), потом номер месяца (1 - январь). Программа должна вывести на экран даты всех дней этого месяца (в виде календаря);
Ограничения:
Hазрабатывать согласно методов структурного программирования в частности без использования меток и операторов условного перехода ,с возможностью повтора ,обеспечить входной контроль что к заданному диапазону , использовать простые числа.
Благодарю!
Armager вне форума   Ответить с цитированием

Старый 24.01.2011, 20:27
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Пока вам не дали ответов вы можете полистать аналогичные темы

Турбо Паскаль или Фри Паскаль. Задание по теме Типизированный файл
Паскаль, три задачи на массивы
Решение задачи. Паскаль

Старый 25.01.2011, 13:21   #2 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Цитата:
Сообщение от Armager Посмотреть сообщение
Hазрабатывать согласно методов структурного программирования в частности без использования меток и операторов условного перехода ,с возможностью повтора ,обеспечить входной контроль что к заданному диапазону , использовать простые числа.
Расшифруйте, пожалуйста, а то по скудоумию своему речь псевдонаучную мало разумею.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 25.01.2011, 18:06   #3 (permalink)
Armager
Новичок
 
Регистрация: 24.01.2011
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Разрабатывать согласно методов структурного программирования в частности без использования меток и операторов условного перехода ,с возможностью повтора ,обеспечить входной контроль , использовать простые числа.
Armager вне форума   Ответить с цитированием
Старый 26.01.2011, 10:51   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Armager Посмотреть сообщение
1: нужно ввести количество дней в месяце, и день с которого начинается месяц (понедельник 1вый день). И, чтобы программа вывела на экран количество понедельников в месяце и все даты суббот.
Код:
VAR
 Days_in_Month,First_Day_Number,Days_Before_First_Monday,
 First_Saturday_Date,Number_Of_Mondays,Saturday_Dates:Byte;
BEGIN
 Write('Days in Month = ');
 ReadLn(Days_in_Month);
 Write('First day (1..7) is ');
 ReadLn(First_Day_Number);
 WriteLn;
 If First_Day_Number=1 then
  Days_Before_First_Monday:=0
 else
  Days_Before_First_Monday:=8-First_Day_Number;
 Number_Of_Mondays:=((Days_in_Month-Days_Before_First_Monday) div 7)+1;
 WriteLn('Number of Mondays is ', Number_Of_Mondays);
 WriteLn;
 If First_Day_Number=7 then
  First_Saturday_Date:=7
 else
  First_Saturday_Date:=7-First_Day_Number;
 Writeln('Saturday dates:');
 Saturday_Dates:=First_Saturday_Date;
 Repeat
  Write(Saturday_Dates:4);
  Inc(Saturday_Dates,7);
 Until Saturday_Dates>Days_in_Month;
 ReadLn;
END.
К сожалению, полностью исключить операторы условного перехода не получилось и, откровенно говоря, не вижу, как без них обойтись.
Vladimir_S вне форума   Ответить с цитированием
Старый 26.01.2011, 11:18   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Armager Посмотреть сообщение
2:потрибно ввести год високосный или нет (1 или 2), потом номер месяца (1 - январь). Программа должна вывести на экран даты всех дней этого месяца (в виде календаря);
Мало данных: нужна еще привязка дата-день. Допустим, ввести день недели 1 января.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 26.01.2011, 12:22   #6 (permalink)
Armager
Новичок
 
Регистрация: 24.01.2011
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Мало данных: нужна еще привязка дата-день. Допустим, ввести день недели 1 января.
Узнал у одногрупников точно нужно просто меня небыло когда задачу давали
Благодарю за помощ!
Armager вне форума   Ответить с цитированием
Старый 26.01.2011, 16:45   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Armager Посмотреть сообщение
2:потрибно ввести год високосный или нет (1 или 2), потом номер месяца (1 - январь). Программа должна вывести на экран даты всех дней этого месяца (в виде календаря);
Код:
CONST
 Month_Name:Array[1..12] of String=('January','February','March','April',
                               'May','June','July','August',
                               'September','October','November','December');
 Days_in_Months_not_bis:Array[1..12] of Byte=(31,28,31,30,31,30,
                                              31,31,30,31,30,31);
 Days_in_Months_bis:Array[1..12] of Byte=(31,29,31,30,31,30,
                                          31,31,30,31,30,31);
 Week:Array[1..7] of String=('Mo','Tu','We','Th','Fr','Sa','Su');
VAR
 Year_Type,Day_Jan_1,Month,Rem,Day_1,Days_in_Month:Byte;
 i,j,Num:Integer;
 Days:Word;
 Calend:Array[1..7,1..6] of String[2];
 S:String;

BEGIN
 Write('Year_Type(not bis - 1, bis - 2): ');
 ReadLn(Year_Type);
 Write('Day number of January, 1st (1..7): ');
 ReadLn(Day_Jan_1);
 Write('Month (1..12): ');
 ReadLn(Month);
 Writeln;
 Days:=0;
 If Year_Type=1 then
  begin
   Days_in_Month:=Days_in_Months_not_bis[Month];
   for i:=1 to Month-1 do
    Days:=Days+Days_in_Months_not_bis[i];
  end
 else
  begin
   Days_in_Month:=Days_in_Months_bis[Month];
   for i:=1 to Month-1 do
    Days:=Days+Days_in_Months_bis[i];
  end;
 Rem:=Days mod 7;
 Day_1:=Day_Jan_1+Rem;
 If Day_1>7 then Day_1:=Day_1-7;
 For i:=1 to 7 do
  For j:=1 to 6 do
   begin
    Num:=i-Day_1+1+(j-1)*7;
    If (Num>Days_in_Month) or (Num<1) then
     S:='  '
    else
     STR(Num:2,S);
    Calend[i,j]:=S;
   end;
 Writeln(Month_Name[Month]);
 Writeln;
 For i:=1 to 7 do
  begin
   Write(Week[i],'   ');
   For j:=1 to 6 do
    Write(Calend[i,j],'  ');
   Writeln;
  end;
 Readln;
END.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 10:02.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.