Търсене на минимална стойност в редица чрез итерация и рекурсия
минимална стойност чрез итерация
минимална стойност чрез рекурсия
разлика между максимална и минимална стойност
Редица от елементи може да се въведе в едномерен масив.
Алгоритъмът за търсене на минимална стойност налага използване на структура данни от тип масив с 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
Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.