• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Паскаль, задачи

  • Автор темы Автор темы Armager
  • Дата начала Дата начала

Armager

Ученик
Регистрация
24 Янв 2011
Сообщения
3
Реакции
0
Баллы
0
Паскаль, задачи

Добрый вечер помогите сделать задачи в паскале
1: нужно ввести количество дней в месяце, и день с которого начинается месяц (понедельник 1вый день).
И, чтобы программа вывела на экран количество понедельников в месяце и все даты суббот. 2:потрибно ввести год високосный или нет (1 или 2), потом номер месяца (1 - январь). Программа должна вывести на экран даты всех дней этого месяца (в виде календаря);
Ограничения:
Hазрабатывать согласно методов структурного программирования в частности без использования меток и операторов условного перехода ,с возможностью повтора ,обеспечить входной контроль что к заданному диапазону , использовать простые числа.
Благодарю!
 
Hазрабатывать согласно методов структурного программирования в частности без использования меток и операторов условного перехода ,с возможностью повтора ,обеспечить входной контроль что к заданному диапазону , использовать простые числа.
Расшифруйте, пожалуйста, а то по скудоумию своему речь псевдонаучную мало разумею.
 
Разрабатывать согласно методов структурного программирования в частности без использования меток и операторов условного перехода ,с возможностью повтора ,обеспечить входной контроль , использовать простые числа.
 
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.
К сожалению, полностью исключить операторы условного перехода не получилось и, откровенно говоря, не вижу, как без них обойтись.
 
2:потрибно ввести год високосный или нет (1 или 2), потом номер месяца (1 - январь). Программа должна вывести на экран даты всех дней этого месяца (в виде календаря);
Мало данных: нужна еще привязка дата-день. Допустим, ввести день недели 1 января.
 
Мало данных: нужна еще привязка дата-день. Допустим, ввести день недели 1 января.
Узнал у одногрупников точно нужно просто меня небыло когда задачу давали
Благодарю за помощ!
 
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.
 
Назад
Сверху