Вмъкване и изтриване на елемент от числова редица

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

    алгоритъм за изтриване на елемент от редица
 
  Имаме въведена редица от N броя елементи - естествени числа.
  Последователност на действия при алгоритъм за изтриване номер елемент от редица:
   1. Въвежда се номер на елемент М – той трябва да отговаря на условието: 0<М<N.
  2. На елемент с индекс М присвояваме стойността на елемент с индекс М+1.
  3. Увеличаваме стойността на М с 1.
  4. Проверяваме дали М>N-1.
  Ако е да отиваме на стъпка 2.
  Ако е не броят елементи в тази редица се намалява с 1
  Край на алгоритъм - изтриване на елемент от редица.
  Програмно стъпки 2 до 4 се изпълняват с цикъл for.
  След приключване работата на цикъла в масива непременно има два елемента с една и съща стойност – предпоследният и последният елемент в масива. На практика това е така защото на всяка стъпка на текущия номер елемент само се присвоява стойността на следващия елемент.
 
 
    алгоритъм за вмъкване на елемент в редица
 
  Имаме въведена редица от N броя елементи - естествени числа.
   Последователност на действия при алгоритъм за вмъкване на нов елемент в редица:
  1. Въвежда се номер на елемент М – той трябва да отговаря на условието: 0<М<N.
  2. На елемент с номер N+1 се присвоява стойността на елемент с номер N.
  3. намаляваме стойността на N с 1.
  4. Проверяваме дали N>M.
  Ако е да отиваме на стъпка 2.
  Ако е не броят елементи в тази редица се увеличава с 1
  Програмно стъпки 2 до 4 се изпълняват с цикъл for.
 
  5. На елемент с индекс M се присвоява новата стойност. Ако това не се извърши в разглежданата редица непременно ще има 2 елемента с еднаква стойност – тези с индекси M и M+1.
  Край на алгоритъм - вмъкване на елемент в редица.

Следва примерна програма,даваща решена задача за вмъкване и изтриване на елемент от редица:

#include <iostream>

#include <stdlib.h>

using namespace std;

 

int main()

{

int mas[100],i,j,broi=10;

  cout<<"Da se systawi programa, chrez koqto se wywevda redica ot 10 \n";

  cout<<"estestweni chisla. Programata da dawa wyzmovnost za iztriwane na\n";

  cout<<"element ot redica, kakto i za wmykwane na now element w redica.\n";


  

  cout<<"Wywevdane na sluchajni stojnosti elementi ot redica: \n";

  for (i=0;i<broi;i++)  // !!! pyrwiqt element w masiwa - redica e s indeks 0

   {mas[i]=rand()%100;//generira psewdosluchajni chisla ot interwala [0..99]

   cout<<mas[i]<<"; ";

  } 


  cout<<endl;

  //    iztriwane na element ot redica

  cout<<"Koj nomer element da iztriq: ";cin>>j;

  j%=broi;//zashita po whod

  for (i=0;i<broi-1;i++)//trygwa ot pyrwiq element kym posledniq

  { if (i>=j-1) mas[i]=mas[i+1];}


  broi--;

  cout<<"Sega broqt elementi e: "<<broi<<endl;

  for (i=0;i<broi;i++) {cout<<mas[i]<<"; ";}//izwevda nowoto sydyrvanie 

  cout<<"  Posledniqt element se powtarq\n";//posledniqt element ne e promenqn


 //  wmykwane na element w redica

 cout<<"Koj nomer element da wmykna: ";cin>>j;

  j%=broi;//zashita po whod

  for (i=broi;i>=j-1;i--)//trygwa ot posledniq element kym pyrwiq

 { mas[i+1]=mas[i];}


  broi++;//elementite sa s edin po-mnogo

 cout<<"Sega broqt elementi e: "<<broi<<endl;

  //  wywevdane stojnost na nowiq element

 cout<<"\nTrqbwa da se wywede nowata stojnost na wmyknatiq element!\n";

  cout<<"Wywedete stojnost na nowiq element: "; cin>>mas[j-1];


  for (i=0;i<broi;i++) {cout<<mas[i]<<"; ";}//izwevda nowoto sydyrvanie na redica

 cout<<endl;

  system("pause");

return 0;

}//kraj na programa wmykwane iztriwane element ot redica


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

Начало на страницата

 
Размер на шрифта
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
Търсене в сайта: