В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Sasjaghf
Sasjaghf
16.09.2021 19:36 •  Информатика

Напишите  алгоритм Создания оглавления.
1.
2.
3.
4.
5.
6.​

Показать ответ
Ответ:
568500
568500
30.01.2021 11:18

1. Возьмем некого человека X. Остается 16 человек, значит, найдется язык на котором этот человек говорит с группой из 6 человек (16 / 3). Пусть этот язык будет x.

2. Теперь у нас есть группа из 6 человек. Возьмем в ней человека Y. Он должен общатся с группой на другом языке, иначе, уже есть 3 человека с языком x. Останется 5 человека, значит, найдется язык на котором этот человек говорит с группой из 3 человек (5 / 2). Пусть этот язык будет y.

3. Далее, людям из этой группы из 3-ех человек надо как-то общатся. Если они говорят на третьем языке, то их трое - доказнно. Еще они знают языки x и y. Если двое из них общаются на иксе, то они состаляют тройку с A, если на y с B. Доказанно.

0,0(0 оценок)
Ответ:
Есенин6261
Есенин6261
17.09.2020 02:39
Во-первых, каков формат года? Должно быть 4 знака, то есть = [0001, 2020]
Во-вторых, каков формат самой даты? Это число без разделителей? ддмм?
Или с разделителями - точками, что более естественно? дд.мм.?
Или с разделителями - слешами, по-американски? дд/мм/?
Или совсем по-американски, месяц впереди дня? мм/дд/?
Или без разделителей, но в обратном порядке? ммдд? Я и такое видел!
Будем считать, что это число без разделителей, 1 вариант, ддмм. 8 цифр.
Тогда проверка должна быть примерно такой:
Пишу на бейсике, на паскаль сами переводите.
Poz1 = 1: Poz2 = 0
Do While Poz1 > 0 ' Цикл, пока в строке встречаются пробелы
   Poz2 = InStr(Poz1, Stroka, " ") ' Ищем пробел в строке
   If Poz2 > 0 Then ' Если нашли пробел - это конец слова
       If Poz2 - Poz1 = 8 Then ' Если длина слова 8 знаков
           Flag = True ' Признак, что это 8 цифр, устанавливаем в истину
           For i= 1 To 8
               If Chr( Mid (Stroka, Poz1 + i - 1, 1)) < &H30 Or _
                    Chr( Mid (Stroka, Poz1 + i - 1, 1)) > &H39 Then
                    Flag = False ' Какой-то из знаков оказался НЕ цифрой
               End If
           Next i
           If Flag = True Then ' Если это все же 8 цифр, то проверяем, дата ли это
               Day = Val (Mid (Stroka, Poz1, 2))
               Month = Val (Mid (Stroka, Poz1+2, 2))
               Year = Val (Mid (Stroka, Poz1+4, 4))
               If (Day >= 1) And (Day <= 31) And (Month >= 1) And (Month <= 12) _
                   And (Year >= 1) And (Year <= 2020) Then ' Если это ДАТА
                   Call ChangeDate(Day, Month, Year) ' Вызываем п/п замены даты
               End If
           End If
       End If
   Else ' Если не нашли пробел - это было последнее слово
       Poz2 = Len(Stroka) ' Устанавливаем Poz2 на конец строки
       If Poz2 - Poz1 = 8 Then ' Если длина слова 8 знаков
           Flag = True ' Признак, что это 8 цифр, устанавливаем в истину
           For i= 1 To 8
               If Chr( Mid (Stroka, Poz1 + i - 1, 1)) < &H30 Or _
                    Chr( Mid (Stroka, Poz1 + i - 1, 1)) > &H39 Then
                    Flag = False ' Какой-то из знаков оказался НЕ цифрой
               End If
           Next i
           If Flag = True Then ' Если это все же 8 цифр, то проверяем, дата ли это
               Day = Val (Mid (Stroka, Poz1, 2))
               Month = Val (Mid (Stroka, Poz1+2, 2))
               Year = Val (Mid (Stroka, Poz1+4, 4))
               If (Day >= 1) And (Day <= 31) And (Month >= 1) And (Month <= 12) _
                   And (Year >= 1) And (Year <= 2020) Then ' Если это ДАТА
                   Call ChangeDate(Day, Month, Year) ' Вызываем п/п замены даты
               End If
           End If
       End If
   End If
   Poz1 = Poz2 ' Устанавливаем начало нового слова
Loop
End Sub

Sub ChangeDate()
If (Day = 31) And (Month = 12) Then ' Если это было 31 декабря
     Year = Year + 1 ' То ставим 1 января следующего года
     strDay = "01": strMounth = "01": strYear = Trim(Str(Year))
ElseIf (Day = 31) And (Month = 1) Then ' 31 января
     strDay = "01": strMounth = "02": strYear = Trim(Str(Year))
ElseIf (Day = 28) And (Month = 2) And (Year Mod 4 <> 0) Then ' 28 февраля
     strDay = "01": strMounth = "03": strYear = Trim(Str(Year))
ElseIf (Day = 29) And (Month = 2) And (Year Mod 4 = 0) Then ' 29 февраля
     strDay = "01": strMounth = "03": strYear = Trim(Str(Year))
ElseIf (Day = 31) And (Month = 3) Then ' 31 марта
     strDay = "01": strMounth = "04": strYear = Trim(Str(Year))
ElseIf (Day = 30) And (Month = 4) Then ' 30 апреля
     strDay = "01": strMounth = "05": strYear = Trim(Str(Year))
ElseIf (Day = 31) And (Month = 5) Then ' 31 мая
     strDay = "01": strMounth = "06": strYear = Trim(Str(Year))
ElseIf (Day = 30) And (Month = 6) Then ' 30 июня
     strDay = "01": strMounth = "07": strYear = Trim(Str(Year))
ElseIf (Day = 31) And (Month = 7) Then ' 31 июля
     strDay = "01": strMounth = "08": strYear = Trim(Str(Year))
ElseIf (Day = 31) And (Month = 8) Then ' 31 августа
     strDay = "01": strMounth = "09": strYear = Trim(Str(Year))
ElseIf (Day = 30) And (Month = 9) Then ' 30 сентября
     strDay = "01": strMounth = "10": strYear = Trim(Str(Year))
ElseIf (Day = 31) And (Month = 10) Then ' 31 октября
     strDay = "01": strMounth = "11": strYear = Trim(Str(Year))
ElseIf (Day = 30) And (Month = 11) Then ' 30 ноября
     strDay = "01": strMounth = "12": strYear = Trim(Str(Year))
Else ' Любой другой день
     Day = Day + 1 ' Ставим следующий день
     If (Day < 10) Then strDay = "0" & Trim(Str(Day)) Else strDay = Trim(Str(Day))
     If (Mounth < 10) Then strMounth = "0" & Trim(Str(Mounth)) Else strMounth = Trim(Str(Mounth))
End If
If Year < 10 Then
     strYear = "000" & strYear
ElseIf Year < 100 Then
     strYear = "00" & strYear
ElseIf Year < 1000 Then
     strYear = "0" & strYear
End If
Stroka = Left(Stroka, Poz1) & strDay & strMonth & strYear & Mid(Stroka, Poz2)
End Sub
Как видите, программа оказалась весьма непростой.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота