Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Разбор олимпиадных задач



1. Дано натуральное число. Определить, является ли разность его максимальной и минимальной цифр четным числом.

Решение на Visual Basic:


Dim digA, i, f, f1, f2, s As Integer

digA = Text1 'считывание числа

'Поиск минимальной цифры

fmin = Mid(digA, 1, 1) 'Пусть минимальная цифра для начала равна первой цифре числа

For i = 1 To Len(digA) 'Организуем цикл, который зависит от длины числа

f = Mid(digA, i, 1)

If f <= fmin Then

fmin = f

End If

Next i

'Поиск максимальной цифры числа

fmax = Mid(digA, 1, 1)

For i = 1 To Len(digA)

f = Mid(digA, i, 1)

If f >= fmax Then

fmax = f

End If

Next i

s = fmax - fmin 'разность максимальной и минимальной цифр числа.

Text3 = s 'вывод на экран разницы.

If s = 0 Then

Text2 = "это нуль"

ElseIf s Mod 2 = 0 Then 'Если остаток от деления равен нулю, то число четное.

Text2 = "Чет"

Else

Text2 = "нечет"

End If


2. Известны координаты трех точек на плоскости. Если они могут являться вершинами треугольника, то определить вид этого треугольника и по формуле Герона определить его площадь.

Решение на Visual Basic:


Dim x1, x2, x3, y1, y2, y3 As Double

x1 = Text1

x2 = Text3

x3 = Text5

y1 = Text2

y2 = Text4

y3 = Text6

lac = Sqr((x3 - x1) ^ 2 + (y3 - y1) ^ 2)

lab = Sqr((x2 - x1) ^ 2 + (y2 - y1) ^ 2)

lbc = Sqr((x3 - x2) ^ 2 + (y3 - y2) ^ 2)

If lac < lab + lbc And lab < lac + lbc And lbc < lac + lab Then

Text7 = "Это треугольник"

Else: Text7 = "Это точка или линия"

End If

If lab = lbc = lac Then

Text8 = "Равносторонний"

ElseIf lab = lac Or lab = lbc Or lbc = lac Then

Text8 = "Равнобедренный"

Else: Text8 = "Все стороны разные"

End If

If Text7 = "Это точка или линия" Then

Text8 = ""

End If

p = (lab + lac + lbc) / 2

S = Sqr(p * (p - lab) * (p - lac) * (p - lbc))

Text9 = S

Text10 = lab

Text11 = lac

Text12 = lbc


3. Даны две фамилии. Определить какая из них длиннее. Ввод данных осуществляется в текстовый файл «input.txt», а вывод в файл «output.txt».

Решение на Visual Basic:

Open "input.txt" For Input As #1

Input #1, a, b

Close #1

If Len(a) > Len(b) Then

Open "Output.txt" For Output As #2

Print #2, a

ElseIf Len(a) < Len(b) Then

Open "Output.txt" For Output As #2

Print #2, b

Else

Open "Output.txt" For Output As #2

Print #2, "одинаковые:", a, b

End If

Close #2

4. В заданном массиве из N элементов есть хотя бы один нуль. Вычислить произведение элементов массива до первого нуля.

Решение на Visual Basic:

Dim n, arr As Double

n = 1

arr = 1

Do While arr <> 0

arr = InputBox("Введите элемент массива", "Ваша цифра")

If arr = 0 Then

Exit Do

End If

Text2 = arr * n

n = arr * n

Loop





Дата публикования: 2014-12-28; Прочитано: 235 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...