- съставно условие
- алгоритъм на Евклид
- естествено число - прости делители
- решето на Ератостен
- цифри и числа
- побитови операции
- точност при извеждане
- проверка на входни данни
- наредба - сортиране
- сортиране - пряк избор
- сортиране - вмъкване
- сортиране размяна
- сливане на редици
- вмъкване на елемент
- двумерен масив
- диагонал в матрица
- матрица
- матрица - транспониране
- матрица - събиране
- матрица - умножение
- множество - елементи
- множество - допълнение
- множества - обединение
- множества - разлика
- множества - сечение
- линейно уравнение
- квадратно уравнение
- полином
- рекурсия - итерация
- числов триъгълник
- минимална стойност
- средна стойност
- факториел
- числа на Фибоначи
- Питагорова тройка числа
- палиндром - решена задача
- алчен алгоритъм
- египетски дроби
- комбинации
търсене на минимална стойност в редица чрез итерация и рекурсия
минимална стойност чрез итерация
минимална стойност чрез рекурсия
разлика между максимална и минимална стойност
Редица от елементи може да се въведе в едномерен масив.
Алгоритъмът за търсене на минимална стойност налага използване на структура данни от тип масив с N броя елементи.
В началната стъпка при търсене се приема, че първият елемент от масив (с индекс 0) е с минимална стойност.
Тази минимална стойност се съхранява в допълнителна променлива от тип също както декларирания тип на масива.
След като се провери и последния елемент от разглеждания масив в допълнителната променлива вече е съхранена откритата минимална стойност - стойността на най-малкия елемент от редицата.
минимална стойност чрез итерация
Имаме предварително въведени стойности в масив от 9 числа от интервала [-99.99..99.99].Да се състави програма, която използва итеративна / рекурсивна функция извеждаща минимална стойност на елемент от този масив.
Примерна програма даваща решена задача за търсене на минимална стойност в редица чрез итерация
#include <iostream>
using namespace std;
const int broi=9;//zadawa razmer na masiwa
double mas[broi] = {-3.5,21.3,0.37,-0.45,-71.2,81.4,-9.1,41.3,-42.5};
double minimalen (int n)// minimalna stojnost iteraciq
{double koe_e;
int i;
koe_e=mas[0];//izbira pyrwiq element za minimalen
for (i=1;i<n;i++)
{if (mas[i]<koe_e) {koe_e=mas[i];}//opredelqne minimalna stojnost
}//for
return koe_e;
}// minimalna stojnost
int main ()
{ int br;
cout<<"Imate predwaritelno wywedeni stojnosti w masiw ot 9 chisla w\n";
cout<<"interwala [-99.99..99.99]. Da se systawi programa, koqto\n";
cout<<"izpolzwa rekursiwna funkciq i Izwevda minimalniq element ot masiwa.\n";
cout<<"Wywedenite stojnosti sa: "<<endl;
for (br=0;br<broi;br++) {cout<<mas[br]<<"; ";}
cout<<endl;
cout<<" minimalen element "<<minimalen (broi)<<endl;
system("pause");
return 0;
}//kraj na programa minimalna stojnost
минимална стойност чрез рекурсия
Примерна програма даваща решена задача за търсене на минимална стойност в редица чрез рекурсия
#include <iostream>
using namespace std;
const int broi=9;//zadawa razmer na masiwa
double mas[broi] = {-3.5,21.3,0.37,-0.45,-71.2,81.4,-9.1,41.3,-42.5};
double minimalen (int n)//nachalo rekursiq
{double koe_e;
if (n>0)
{ koe_e=minimalen (n-1);//rekursiwno obryshenie
if (koe_e>mas[n-1]) koe_e=mas[n-1];//poredniqt element s minimalna stojnost
return koe_e;//izhod rekursiq
} else koe_e=mas[0];//dyno rekursiq
}//kraj rekursiq minimalna stojnost
int main () //nachalo na programata
{ int br;
cout<<"Imate predwaritelno wywedeni stojnosti w masiw ot 9 chisla w\n";
cout<<"interwala [-99.99..99.99]. Da se systawi programa, koqto\n";
cout<<"izpolzwa rekursiwna funkciq i izwevda minimalniq element ot masiwa.\n";
cout<<"Wywedenite stojnosti sa: "<<endl;
for (br=0;br<broi;br++) {cout<<mas[br]<<"; ";}
cout<<endl;
cout<<"minimalen element "<<minimalen (broi)<<endl;
system("pause");
return 0;
}//kraj na programa minimalna stojnost
разлика между максимална и минимална стойност
Имаме предварително въведени стойности в масив от 9 числа от интервала [-99..99]. Да се състави програма, която извежда разлика между елемента с максимална и елемента с минимална стойност от този масив.
Алгоритъм
Задачата в неявен вид изисква както намиране на елемента с минимална, така и на елемента с максимална стойност.При деклариране на масива се въвеждат и стойностите му.
Използва се функция, на която се предават чрез указател псевдоним като параметри минимална и максимална стойност.
Същата функция връща като резултат търсената разлика. Рекурсивен вариант на същата програма може да разгледате в диаметър на множество.
Следва примерна програма даваща решена задача за изчисляване на разлика между максимална и минимална стойност в редица:
#include <iostream>
using namespace std;
const int broi=9;//zadawa razmer na masiwa
int razlika (int mas[], int &min_e,int &max_e)
{int i;
//pyrwiqt element weche e obqwan za minimalna i maksimalna stojnost
for (i=1;i<broi;i++)
{ if (min_e>mas[i]) min_e=mas[i];// minimalna stojnost
if (max_e<mas[i]) max_e=mas[i];// maksimalna stojnost
}
return (max_e-min_e);
}//razlika mevdu element s maksimalna i minimalna stojnost
int main () //nachalo na programata
{ int br, min_e,max_e, razl;
int mas[broi] = {-3, 21, 37, -45, -71, 81, -9, 41,-42};//stojnosti w masiw
cout<<"Imate predwaritelno wywedeni stojnosti w masiw ot 9 chisla w\n";
cout<<"interwala [-99.99..99.99]. Da se systawi programa, koqto\n";
cout<<"izwevda razlika mevdu maksimalniq i minimalniq element ot masiwa.\n";
cout<<"Wywedenite stojnosti sa: "<<endl;
for (br=0;br<broi;br++) {cout<<mas[br]<<"; ";}
cout<<endl;
min_e=max_e=mas[0];//inicializaciq za minimalna i maksimalna stojnost
razl=razlika (mas, min_e,max_e);
cout<<" minimalen element "<<min_e<<endl;
cout<<" maksimalen element "<<max_e<<endl;
cout<<" razlika "<<razl<<endl;
system("pause");
return 0;
}//kraj na programa razlika mevdu maksimalna i minimalna stojnost
Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.