Увод в програмирането  alpha
Алгоритми - определение, примери, свойства, начини на изразяване ( словесно, блок-схеми, алгоритмични езици )

Компютър - техническо средство за изпълнение на алгоритми

Алгоритъм - разглежда най-общо представлява списък от краен брой правила за извършване на дадени действия в определен ред, чрез които се решава всяка една задача от даден тип, клас

Пример:

Списък с числа: a1, a2, a3, a4 .... ak ... an-1, an

Търсим: alpha - минималното число; beta - максималното число

Съставяме алгоритъм:

  1. Въвеждаме n. Въвеждаме n числа a1, a2 ... an. Изпълни правило 2.
  2. Под alpha запомни a1 . Изпълни правило 3
  3. Под beta запомни a2 . Изпълни правило 4
  4. Под k запомни 2. Изпълни правило 5.
  5. Ако ak < alpha изпълни правило 6. иначе изпълни правило 7.
  6. Под alpha запомни ak. изпълни правило 9.
  7. Ако ak > beta изпълни правило 8 иначе изпълни правило правило 9
  8. Под beta запомни ak. Изпълни правило 9.
  9. Увеличи k с едно. изпълни правило 10.
  10. Ако k <= n изпълни правило 5. иначе правило 11.
  11. Изведи alpha и beta. Изпълни правило 12.
  12. Прекрати изпълнението на алгоритъма.

Пример: n = 5 a1 = 17 a2 = 58 a3 = 3 a4 = 12 a5 = 27

Конкретна задача се определя от набор от допустими данни.

Правило - има си номер, действие, което се изпълнява, и наследник, който посочва как се продължава алгоритъма.

Действията могат да бъдат:

  • Условни
    • имат 2 наследника ( ако условнието е изпълнено и ако не ).
  • Безусловни
    • имат 1 наследник.

Изпълнение на 1 правило се нарича стъпка от работата на алгоритъма.

Свойства на алгоритмите:

  • определеност
    • описанието на алгоритъма е ясно, разбираемо и определя еднозначно действията, които трябва да се извършат
  • масовост
    • клас задачи, обработка на съвкупоност от набор от допустими данни
  • резултатност
    • всяко изпълнение завършва за крайно време, крайното време е следствие от удовлетворението на две условия:
      • всяко изпълнение се състои от краен брой стъпки
      • всяка стъпка се изпълнява за крайно време
    • Забележка: от големината на крайното време зависи дали алгоритъмът е практически приложим
  • цикличност
    • алгоритмите могат да се описват така, че групи от правила да се изпълняват многократно

Начини за изразяване:

  • чрез блоксхеми
  • описание на машинен език
    • последователност от команди
  • алгоритмични ( програмни ) езици
    • C/C++ , C# , Java , VisualBasic
    • Python, Perl, Clojure
    • и други
#include <iostream.h>
void main()
{
        int n,k,i;
        float alpha, beta, a[101];
        cin>>n;
        for( i=1; i<=n; i++)
                cin>>a[i];
        alpha = a[1]; 
        beta = a[1];
        for(k=2; k<=n; k++)
                if ( a[k] < alpha )
                        alpha = a[k];
                else if ( a[k] > beta ) 
                        beta = a[k];
        cout<<alpha<<"  "<<beta<<endl;
}