Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
17. ТІЗІМНІҢ БАСЫНА ЖАҢА ЭЛЕМЕНТТІ ҚОСУ
Біріншіден, тізім элементінің жалпы құрылымы анықталады, мысалы:
struct elem // тізімнің элеменітін жариялау
{ int d; // деректер сақталған өріс
elem*adrK; //келесі элементтің адресі сақталған көрсеткіш өрісті жариялау
elem*adrA; //алдыңғы элементтің адресі сақталатын көрсеткіш өрісті жариялау
};
Функция түрінде тізімге бірінші элементті құру
elem* elem_1(int d) // тізімнің бірінші элементін құратын функция
{
elem*buf=new elem; // жаңа элемент үшін жадыдан орын алу және оның адресін buf
//көрсеткіш түріндегі айнымалыға жіберу
buf->d=d; //сол адрес бойынша d-мәнді жіберу
buf->adrK=0; //келесі адрестің мәні NULL екенін немесе тізімнің аяқталғанын көрсетеді
return buf;
}
18. ФУНКЦИЯ ПАРАМЕТРЛЕРІНІҢ МАССИВТЕР ТҮРІНДЕ БЕРІЛУІ
С++ программалау тілінде функцияның параметрі ретінде кез-келген типті береберуге болады, бірақ массив түріндегі және функция түріндегі параметрлерді беру үшін көрсеткіщтерді пайдалануға тура келеді. Функцияның параметрі ретңнде массив берілген жағдайларды, параметр ретінде массивтің ең бірінші элементі үшін анықталған көрсеткіш қолданылады, демек бұл массив параметрді беру тек қана адрес арқылы ғана мүмкңн екенін көрсетеді. Сондай ақ, функцияға массив-параметрді бергенде массив элементтерінің саны жоғалып кетуі мүмкін, сондықтан массивтің ұзындығы, қасында, бірақ мәні «өзгерістен қорғалған» бөлек параметрлер арқылы беріледі.
Жоғарыда айтылып кеткендей, егер параметрдің мәні адрес арқылы берілетін болса, онда функцияның сол берілген адпестегі немесе жады ұяшығындағы нақты мәнді «оригиналды» қзгерте алатыны белгілі болды. Кейбір жағдайларды бұл нақты мәндерді өзгертпей қорғап қалу қажет болады. Ол үшін функция прототипіндегі және функцияның тақырыбындағы «өзгерістен қорғалатын» параметрлердің алдына const модификаторын жазады. Сондықтан , функцияға масси-параметрді бергенде массив элементтерінің саны немесе ұзындығы өзгермеу үшін оның алдына const тұрақтылық модификаторын қойып жазады.
Мысал: программа массив параметрімен жұмыс жасайтын функциялардың қызметін көрсетеді. Массивтің максимум элементін табатын функцияны құру.
//---------------------------------------------------------------------------
#pragma hdrstop
#include <iostream.h>
#include <conio.h>
#include <math.h>
//---------------------------------------------------------------------------
#pragma argsused
void mas(int *a,const int n);
const n=7;
int main()
{
int mymas[n];
int *p=mymas;
for(int i=0; i<n;i++)
mymas[i]=random(20)+3;
cout<<" massiv=";
mas(p,n);
getch();
}
void mas(int *a,const int n)
{ int buf=0;
int i;
for(int i=0;i<n;i++)
cout<<" "<<a[i];
cout<<"\n";
for(int i=0;i<n;i++)
{ if (buf<a[i])
buf=a[i];
}
cout<<"\nmax="<<buf;
}
Программа нәтижесі келесі түрде болады:
Massiv= 12 7 9 7 15 6 19
Max=19