Два кола перетинаються в точ ках ei f. пряма, яка проходить через точку е, перетинає кола в точках a i в, а пряма, що про ходить через точку f, — у точ ках с і d (рис. 15). знайдіть кут bcd, якщо lacd = 112°.
Во-первых, каков формат года? Должно быть 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 Как видите, программа оказалась весьма непростой.
1) As announced to the press, the firm went into several new markets last year. Her laughter eased the tension in the room where people were waiting for interview. I have yet to speak to her myself, but apparently she won't her word. 2) The whole orchestra thinks very high of their conductor. The unexpected finale rounded off a very entertaining evening’s programme. Given the lack of funds, it seems very likely that the concert hall will close 3) He’s very deeply involved in the trade union and has been for a while. It’s nice having a boss who always encourages me to acquire new skills. I decided to leave last year, but I’ve only started my looking for another post recently
Во-вторых, каков формат самой даты? Это число без разделителей? ддмм?
Или с разделителями - точками, что более естественно? дд.мм.?
Или с разделителями - слешами, по-американски? дд/мм/?
Или совсем по-американски, месяц впереди дня? мм/дд/?
Или без разделителей, но в обратном порядке? ммдд? Я и такое видел!
Будем считать, что это число без разделителей, 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
Как видите, программа оказалась весьма непростой.
Her laughter eased the tension in the room where people were waiting for interview.
I have yet to speak to her myself, but apparently she won't her word.
2) The whole orchestra thinks very high of their conductor. The unexpected finale rounded off a very entertaining evening’s programme. Given the lack of funds, it seems very likely that the concert hall will close
3) He’s very deeply involved in the trade union and has been for a while.
It’s nice having a boss who always encourages me to acquire new skills.
I decided to leave last year, but I’ve only started my looking for another post recently