МОУ СОШ №3 г. Осташков Тверская обл.
  
 
 
 
 

Любую сложную программу можно разбить на элементарные фрагменты, при составлении которых можно использовать базовые алгоритмы. Здесь приведены примеры таких алгоритмов на двух наиболее распространенных в школе языках Basic и Pascal.

BASIC

СТРОКИ

  1. Поиск символа (порядкового номера, последнего)
  1. Повтор заданной буквы в тексте
st$ =  "информатика"
k=0
For i = 1  To Len(st$)
   If Mid$(st$, i, 1) = "ф" Then k = k+1
Next
  1. Замена символа.
st$ = "информатика"
For i = 1  To Len(st$)
   If Mid$(st$, i, 1) = "о" Then Mid$(st$, i, 1) = "а"
Next
  1. Вставка слова s на i-тое место в текст st$

st$=Left$(st$,i-1)+s$+Right$(st$,Len(st$)-i)

  1. Поиск слова (порядкового номера первой буквы,  последнего, если оно встречается несколько раз)
st$  = "информатика"’ Примеры слов и текстов и в следующих …
s$ = "форма"
For i = 1  To Len(st$)
   if Mid$(st, i, Len(s)) = s$ Then k = i
Next
  1. Замена слова.
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$ = Left$(st$, i - 1) + s2$+Right$(st$, Len(st$) - i + 1 - Len(s1$))
Этот оператор, конечно, сработает и при одинаковом размере слов.

 

  1. Удаление символа
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
  1.  Удаление слова
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

ОДНОМЕРНЫЙ (ЛИНЕЙНЫЙ МАССИВ)

  1. Вывод       массива (индекс, элемент)
For i = 1 To n
   Print i, a(i)
Next 
  1. Перестановка       элементов на четных и нечетных местах

Вместо
t = a(iMax)
a(iMax) = a(j)
a(j) = t
можно swap a(iMax), a(j)
В VB функции swap нет! В следующих примерах swap не используется.

  1. Сумма массива
s = 0
For i = 1  To n
   s = s + a(i)
Next
    
  1. Среднее арифметическое

См. предыдущий
sr=s/n

  1. Сумма по условию
s = 0
For i = 1  To n
  If a(i) > 0 Then s = s + a(i)’например,  положительных 
Next
    
  1. Произведение по условию
p= 1
For i = 1  To n
  If a(i) > 0 Then p= p * a(i)
Next
    
  1. Максимальный (минимальный) элемент
Max = а(1)
For i = 2 To n
  If a(i) > Max Then Max = a(i)
Next
    
  1. Индекс максимального (минимального)
iMax = 1
For i = 2 To n
  If a(i) > a(iMax) Then iMax = i
Next
    
  1. Упорядочение массива по убыванию (возрастанию)
а) выборкой с поиском индекса максимального (минимального)
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

ДВУХМЕРНЫЙ МАССИВ

  1. Поиск максимального (минимального)
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
  1. Поиск индексов максимального (минимального)
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
  1. Суммы по рядам (по столбцам аналогично)
а) с выводом на экран
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
  1. Главная диагональ if i=j …
  2. Замена элементов выше диагонали (например, отрицательных нулями)
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 

 

  1. Суммирование двух массивов с одинаковым количеством элементов (умножение аналогично)
For j = 1  To n
  For i = 1 To m
    s(j,i)=a(j, i) +b(j, i) 
  Next i
Next j
  1. Обмен местами элементов двух массивов с одинаковым количеством элементов
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
  1. Вывод на экран (первый столбик – индексы)
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 - это идеальный инструмент для личного программирования и учебное пособие. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 
             
Hosted by uCoz