Търсене на минимална стойност в редица чрез итерация и рекурсия

минимална стойност чрез итерация
минимална стойност чрез рекурсия
разлика между максимална и минимална стойност

Редица от елементи може да се въведе в едномерен масив. Алгоритъмът за търсене на минимална стойност налага използване на структура данни от тип масив с 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

Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.

 
Размер на шрифта
Increase Font Size Option 3 Reset Font Size Option 3 Decrease Font Size Option 3
Bulgarian Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Търсене в сайта: