- съставно условие
- алгоритъм на Евклид
- естествено число - прости делители
- решето на Ератостен
- цифри и числа
- побитови операции
- точност при извеждане
- проверка на входни данни
- наредба - сортиране
- сортиране - пряк избор
- сортиране - вмъкване
- сортиране размяна
- сливане на редици
- вмъкване на елемент
- двумерен масив
- диагонал в матрица
- матрица
- матрица - транспониране
- матрица - събиране
- матрица - умножение
- множество - елементи
- множество - допълнение
- множества - обединение
- множества - разлика
- множества - сечение
- линейно уравнение
- квадратно уравнение
- полином
- рекурсия - итерация
- числов триъгълник
- минимална стойност
- средна стойност
- факториел
- числа на Фибоначи
- Питагорова тройка числа
- палиндром - решена задача
- алчен алгоритъм
- египетски дроби
- комбинации
съставно условие - подреждане на три стойности
условие - подреждане на три стойности
условие - избор на най-голямата от три стойности
функция от параметър
Ако за настъпване на определено събитие са необходими едновременно повече от 1 предпоставки се говори за съставно условие. Едно съставно условие може да включва проверката едновременно на 2 или повече прости условия.
При формиране на съставно условие често се ползват булевите функции OR (||), AND(&&), NOT (!=).
При съставяне на алгоритъм условията се оценяват отгоре надолу и отляво надясно. В момента когато някое условие бъде удовлетворено, операторът свързан с него, се изпълнява, а останалата част от веригата се пропуска.
Правилният алгоритъм дава възможност за обхващане и на вероятната комбинация от параметри, които не удовлетворяват нито едно от условията - в езиците за програмиране това се реализира с оператор “else”.
Ако нито едно от условията не е вярно, се изпълнява последният оператор else. Често последното else действа като условие по подразбиране, т.е. ако всички други условия на проверката не се изпълнят, се изпълнява последният оператор else. Ако няма такъв оператор else и всички други условия са неизпълнени, тогава не се извършва никакво действие.
Друга възможност за обработка на съставно условие е последователно разглеждане на всяка възможна комбинация. Този вариант на решене е доста по-обемен от първия, но и по-разбираем.
условие - подреждане на три стойности
Да разгледаме следната задача. Въведени са три естествени числа: a,b,c, които трябва да се отпечатат във възходящ порядък – a<b<c. Нека използваме 3 конкретни числа 2, 4, 7.Съществуват 6 различни възможности за подреждане на три стойности, т.е. за въвеждането им:
1) 2,4,7;
2) 2,7,4;
3) 4,2,7
4) 4,7,2
5) 7,2,4
6) 7,4,2
По който и от начините да са въведени числата те трябва да бъдат изведени в следния порядък: 2, 4, 7.
Следващата примерна програма дава решена задача за подреждане на три стойности чрез използване два варианта за съставни условия.
#include <iostream>
using namespace std;
int main()
{ int a,b,c;
char ose;
cout<<"Da se systawi programa, chez koqto se wywevdat tri estestweni\n";
cout<<"chisla a,b,c ot interwala [1..101]. Programata da izwede wywedenite\n";
cout<<"chisla wyw wyzhodqsh porqdyk.\n";
cout<<"Primer: 4,3,5 Izhod: 3,4,5\n";
cout<<"Wywedete chislo 1: ";cin>>a;
cout<<"Wywedete chislo 2: ";cin>>b;
cout<<"Wywedete chislo 3: ";cin>>c;
//wariant I systawno uslowie
cout<<"Wariant I - naredbata na chislata e:\n";
if (a<=b && b<=c) cout<<a<<", "<<b<<", "<<c<<endl;// sluchaj 1
if (a<=c && c<=b) cout<<a<<", "<<c<<", "<<b<<endl;// sluchaj 2
if (b<=a && a<=c) cout<<b<<", "<<a<<", "<<c<<endl;// sluchaj 3
if (b<=c && c<=a) cout<<b<<", "<<c<<", "<<a<<endl;// sluchaj 4
if (c<=b && b<=a) cout<<c<<", "<<b<<", "<<a<<endl;// sluchaj 5
if (c<=a && a<=b) cout<<c<<", "<<a<<", "<<b<<endl;// sluchaj 6
//wariant II systawno uslowie
cout<<"Wariant II - naredbata na chislata e:\n";
if (a<=b)
{ if (b<=c) cout<<a<<", "<<b<<", "<<c<<endl;// sluchaj 1
else {if (a<=c) cout<<a<<", "<<c<<", "<<b<<endl;// sluchaj 2
else cout<<c<<", "<<a<<", "<<b<<endl;// sluchaj 6
}//else (b<=c)
}
else //(a<=b)
{ if (a<=c) cout<<b<<", "<<a<<", "<<c<<endl;// sluchaj 3
else
{ if (b<=c) cout<<b<<", "<<c<<", "<<a<<endl;// sluchaj 4
else cout<<c<<", "<<b<<", "<<a<<endl;// sluchaj 5
}
} //(a<=b)
system ("pause");
return 0;
}//kraj na programa systawno uslowie
условие - избор на най-голямата от три стойности
Когато броят на променливите е повече от 2 подреждането им по възходящ ред или избор на максимална/минимална стойност се увеличава сложността на използвания алгоритъм. Примерът илюстрира преимуществото на съвкупност от няколко прости условия пред едно сложно, съставно условие. В практиката най-често се използва определена структура за въвеждане и съхраняване на данните.
Следващата блок схема описва алгоритъм за избор на най-голямата стойност от три въведени стойности.
Алгоритъм:
1. Приема, че първата стойност е максимална.
2. Сравнява се максималната стойност с втората, ако втората е по-голяма тя се избира за максимална, в противен случай се запазва същата стойност.
3. Сравнява се максималната стойност с третата. Ако тя е по-голяма се избира за максимална.
4. Извежда се на печат максималната стойност.
Следващата примерна програма дава решена задача за условие - избор на най-голяма стойност:
#include <iostream>
using namespace std;
int main ()
{ int a,b,c,m;
cout<<"Wywedete stojnost a: ";cin>>a;
cout<<"Wywedete stojnost b: ";cin>>b;
cout<<"Wywedete stojnost c: ";cin>>c;
m=a;
if (m<b) m=b;
if (m<c) m=c;
cout<<"Wywedenata naj-golqma stojnost e: "<<m<<endl;
system("pause");
return 0;
}//kraj programa systawno uslowie
функция от параметър
В математиката и информатиката се срещат задачи, в които се търси стойност на неизвестно като функция от параметър.
Да разгледаме следната задача:Имаме въведена стойност x - естествено число от интервала [-101..101]. Трябва да се изчисли стойност на друго число, което е функция на въведеното:
aко x е отрицателно, то y е положително и четно;
ако x=0, то y e също 0;
ако x>0, то y е положително, по-голямо от x и нечетно.
Описваният алгоритъм налага използването на съставно условие - в зависимост от въведената стойност. В случая съставното условие се реализира чрез три проверки за изпълнение на определено логическо условие. Първата проверка е дали се изпълнява условието за x различно от 0.
Ако е да се прави проверка за изпълнение или на условие x>0 или на условие x<0.
Ако е не на y се присвоява стойност 0
Следващата примерна програма дава решена задача за съставно условие:
#include <iostream>
using namespace std;
int main ()
{ int x,y;
char ose;
cout<<"Imate cqlo chislo x ot interwala [-101..101]. Tyrsim takowa \n";
cout<<"chislo y, koeto e funkciq na x i otgowarq na slednite iziskwaiq:\n";
cout<<"ako x <0 y e polovitelno i chetno, ako x =0 to y=0; \n";
cout<<"ako x >0 y e polovitelno i nechetno\n";
cout<<"x<0 -> y=-2x; x=0 -> y=0; x>0 ->y=2x+1;\n";
cout<<"Primer: -3 Izhod 6\n";
do {
cout<<"Wywedete stojnost za z: ";cin>>x;
if (x)
if (x<0) y=-2*x;
} else y=0;
cout<<"Stojnostta na y e: "<<y<<endl;
cout<<"She wywevdate li drugi danni <y/n>: ";cin>>ose;
} while (ose=='y');
system("pause");
return 0;
}//kraj na programa systawno uslowie
Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.