САЙТ УЧИТЕЛЯ ИНФОРМАТИКИ |
|||||||||||||||
МОУ СОШ №3 г. Осташков Тверская обл. | |||||||||||||||
|
Любую сложную программу можно разбить на элементарные фрагменты, при составлении которых можно использовать базовые алгоритмы. Здесь приведены примеры таких алгоритмов на двух наиболее распространенных в школе языках Basic и Pascal. BASIC СТРОКИ
st$ = "информатика" For i = 1 To Len(st$) If Mid$(st$, i, 1) = "ф" Then k = i Next
st$ = "информатика" k=0 For i = 1 To Len(st$) If Mid$(st$, i, 1) = "ф" Then k = k+1 Next
st$ = "информатика" For i = 1 To Len(st$) If Mid$(st$, i, 1) = "о" Then Mid$(st$, i, 1) = "а" Next
st$=Left$(st$,i-1)+s$+Right$(st$,Len(st$)-i)
st$ = "информатика"’ Примеры слов и текстов и в следующих … s$ = "форма" For i = 1 To Len(st$) if Mid$(st, i, Len(s)) = s$ Then k = i Next
st$ = "сегодня петя идет гулять" s1$="петя" s2$="коля" For i = 1 To Len(st$)- Len(s1$)+1 if Mid$(st$, i, Len(s1$)) = s1$ then Mid$(st$, i, Len(s1$)) = s2$ Next Если длины слов разные, то последовательность операций после then другая:
st$ = "информатика" i = 0 While i < Len(st$) i = i + 1 If Mid$(st$, i, 1) = "ф" Then st = Left$(st$, i - 1) + Right$(st$, Len(st$) - i)’ Соединяем части текста до .. и после… i = i + 1 End If Wend
st$ = "информатика" s$ = "форма" i=0 While i < Len(st$) - Len(s$) i = i + 1 If Mid$(st$, i, Len(s$)) = s$ Then St$ = Left$(st$, i - 1) + Right$(st$, Len(st$) - i + 1 - Len(s$)) ’Аналогично i = i + Len(s$) End If Wend ОДНОМЕРНЫЙ (ЛИНЕЙНЫЙ МАССИВ)
For i = 1 To n Print i, a(i) Next
For i = 2 To n Step 2 t=a(i-1) ’ t – временная переменная a(i-1)= a(i) a(i)=t Next Вместо
s = 0 For i = 1 To n s = s + a(i) Next
См. предыдущий
s = 0 For i = 1 To n If a(i) > 0 Then s = s + a(i)’например, положительных Next
p= 1 For i = 1 To n If a(i) > 0 Then p= p * a(i) Next
Max = а(1) For i = 2 To n If a(i) > Max Then Max = a(i) Next
iMax = 1 For i = 2 To n If a(i) > a(iMax) Then iMax = i Next
а) выборкой с поиском индекса максимального (минимального) For j = 1 To n - 1 iMax = j For i = j + 1 To n If a(i) > a(iMax) Then iMax = i Next i t = a(iMax) a(iMax) = a(j) a(j) = t Next j б) Методом «всплывающего пузырька» For j = 1 To n - 1 For i = 1 To n - j If a(i + 1) > a(i) Then t = a(i) a(i) = a(i + 1) a(i + 1) = t End If Next i Next j ДВУХМЕРНЫЙ МАССИВ
Max = a(1, 1) For j = 1 To n For i = 1 To m If a(j, i) > Max Then Max = a(j, i) Next i Next j
rowMax = 1’Ряд colMax = 1’Колонка For j = 1 To n For i = 1 To m If a(j, i) > a(rowMax, colMax) Then rowMax = j colMax = i End If Next i Next j
а) с выводом на экран For j = 1 To n s = 0 For i = 1 To m s = s + a(j, i) Next i Print s Next j б) с записью в вспомогательный массив For j = 1 To n s(j) = 0 For i = 1 To m s(j) = s(j) + a(j, i) Next i Next j
For j = 1 To n For i = 1 To m If (i > j) And (a(j, i) < 0) Then a(j, i) = 0 Next i Next j
For j = 1 To n For i = 1 To m s(j,i)=a(j, i) +b(j, i) Next i Next j
For j = 1 To n For i = 1 To m t= a(j, i) a(j, i) +b(j, i) b(j,i)=t Next i Next j
For j = 1 To n Print j; For i = 1 To m Print a(j, i); Next i Print Next j При выводе можно использовать формат Print using для получения ровных столбиков. Just BASIC - это идеальный инструмент для личного программирования и учебное пособие.
|
||||||||||||||