Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Doc / Programmirovanie.docx
Скачиваний:
30
Добавлен:
24.03.2015
Размер:
444.3 Кб
Скачать

6. С тілінде нұсқауыштарды пайдалану, оларды жариялау жолдары. Нұсқауыштармен атқарылатын операциялар.

Нұсқауыш мәліметтердің адресін сақтайтын айнымалы болып табылады. Жалпы алғанда, нұскауыш адрестің символдық кескінделуі болып саналады. Қарастырылатын мысалда &sum-sum атты айнымалыға сілтейтін нұскауыш болып табылады. Нақты алрес ретінде белгілі бір сан тұрады, ал &sum нұскауыш типті константа болып табылады.

Си тілінде нұскауыш типті айнымалылар да бар. Нұскауыш типті айнымалылар мәні болып белгілі бір шаманың адресі саналады.

Мысалы, нұскауыш типті айнымалы ptr идентификаторы арқылы бегіленген болсын, онда төмендегі оператор sum айнымалысының адресін ptr атты нұскауыш типті айнымалыға меншіктейді. Ptr атты нұскауыш типті айнымалы басқа да объектіге сілтеуі мүмкін.

Мысалы:

int *ptr;

Ptr=∑ ptr=& max;

*операциясы- адрес арқылы қатынас жасау үшін пайдаланылатын операция. Мысалы, ptr нұскауыш типті айнымалысында max айнымалысына нұсқайтын сілтеме сақталған болсын. Осы айнымалының мәнін білу үшін * адресі бойынша қатынас жасау операциясын қолдануға болады. Ptr нұскауышы мәнін анықтау үшін келесі оперцияны орындау қажет: res=*ptr;

Нұскауышты сипаттау. Нұсқауыш типті айнымалыны сипаттағанда берілген нұсқауыш қандай типті айнымалыға сілтейтінін көрсету қажет. Өйткені әр түрлі типті айнымалыға ЭЕМ жадында ұялардың әр түрлі саны бөлініп беріледі.

Int*iptr;

Char*cptr;

Float*fptr;

Функциялар арасында байланыс жасау үшін нұсқауыштарды пайдалану

Мысал. Бұл программада айнымалының мәндерін ауыстыру үшін нұсқауыштар пайдаланылған:

#include<stdio.h>

#include<conio.h>

Void change (int *u, int *V)

{

Int temp;

temp=*u;*u=*v;*v=temp;}

main()

{int x=5, y=10;

Clrscr();

printf("x=%d y=%d\n",x,y);

change(&x,&y);

printf("x=%d y=%d\n”, x,y);

getch();

}

Нәтижесі

X=5 y=10

X=10 y=5

Нұсқауыштарға қолданылатын операциялар

Си тілінде нұсқауыш типті айнымалыларға 5 негізгі оператор қолдануға болады:

  1. Меншіктеу операциясы. Нұсқауышқа адресті меншіктеуге болады. Жиымның атын қолданып немесе адресті анықтайтын & операторын пайдаланып, әдетте адресті меншіктеуге болады;

  2. Мәнді анықтау. Берілген адрес бойынша кейбір ұяшықта сақталатын мәнді анықтау үшін * операциясы қолданылады;

  3. Нұсқауыштың адресін анықтау. Кез келген айнымалылар сияқты нұсқауыш типті айнымалылар мәні немесе адресі болуы мүмкін. & операциясы арқылы нұсқауыштың адресін анықтауға болады;

  4. Нұсқауыштарды арттыру. Бұл амал әдеттегі + операциясы көмегімен немесе арттыру операциясы арқылы орындалуы мүмкін. Нұсқауышты арттырып, жиымның келесі элементіне өтуге болады (қажет болса, нұсқауыш мәнін кемітуге де болады);

  5. Нұсқауыштардың айырмасы. Бір жиымның элементіне сілтейтін нұсқауыштың айырмасын табуға болады. Жиым элементінің арасындағы ара қашықтығын анықтау үшін нұсқауыштың айырмасын есептеуге болады.

7. С программалау тіліндегі тұтынушы функцияларын (ішкі программаларды) сипаттау және анықтау жолдары.

Cи тілінде стандартты функциялармен қатар тұтынушы өзі құрастырған функциялармен де жұмыс істеу мүмкіндігі бар. Ол функцияны алдын ала main функциясыны дейін толық анықтау керек немесе оны алдын ала қысқаша сипаттап алып, main функциясынын кейін толық анықтауға болад. Функция дегеніміз – белгілі бір операциялар тобын атқаратын программа блогы.

Функция мынадай жалпы түрде сипатталады:

[<функция типі>] <функция аты> ([<формальды параметрлер спецификациясы>])

<функция тұлғасы>; мұндағы

  • [<функция типі>] – функция есептейтін нәтиже типі;

  • <функцияның аты> – функция идентификаторы, яғни аты;

  • <формальды параметрлер спецификациясы> – бұл болмауы да мүмкін немесе әрбір параметр спецификациясы: <типі> <параметр аты> – формальды параметр-лердің типтерін және идентификаторларын анықтайды;

  • <функция тұлғасы> – орындалатын операторлар тізбегі және оның ішінде локальді айнымалының сипатталуы болуы мүмкін.

Функцияны шақыру үшін функцияның аты және жақшада нақты аргументтері көрсетіледі. Функция өз жұмысын аяқтағаннан кейін есептелген нәтижені return операторы арқылы қайтарады. Бұл оператордың жалпы түрі мынадай:

return(өрнек);

return;

return операторы функцияның орындалуын аяқтайды да, функцияны шақырған оператордан кейінгі жолға басқаруды береді.

Оң бүтін санның факториалын анықтау функциясын былай жазуға болады:

long fakt(int k)

{ if (k<0) return 0;

if (k==0) return 1;

long p=1;

for (int j=1; j<=k;j++)

p*=j;

return (p); }

мысал: Написать функцию, которая удаляет из строки все символы, обозначающие цифры.

#include<stdio.h>

 

void deleteDigits (char *a){

    char *b=a;

    while(*b=*a){

        if(!isdigit(*a++)) ++b;

    }

}

 

int main(){

    char c[BUFSIZ];

    gets(c);

    deleteDigits(c);

    puts(c);

    return 0;

}

 

Написать функцию, которая вычисляет значение аb. Числа а и b могут быть любыми дробными положительными числами;

#include <iostream>

 

using namespace std;

double multiply(double, double);

int main(int argc, char** argv)

{

    double a, b, c;

    cout << "Vvedite chislo" << endl;

    cin >> a;

    cout << "Vvedite vtoroe" << endl;

    cin >> b;

    c = multiply(a, b);

    cout << c;

   

}

double multiply(double a, double b)

{

    return a*b;

}

Соседние файлы в папке Doc