Си тилида Дастурлаш - Функция – бу ёрдамчи алгоритм бўлиб (дастурости), иш натижаси сифатида маълумбир қийматлари олинади.
- Мисоллар:
- Сон модулини ҳисоблаш,
- Мураккаб формулалар бўйича қийматларни ҳисоблаш
- Саволга жавоб (оддий сонми ёки йўқ?)
- Нега?
- Дастурнинг турли жойларида бир хил ҳисоблашларни бажариш учун
- Оммабоп функциялар кутубхонасини яратиш учун
- Процедурадан фарқи нимада?
- Масала: иккита қийматдан каттасини аниқловчи функция тузинг ва ундан фойдаланиш тартибини кўрсатинг
- Функция:
- int Max ( int a, int b )
- {
- if ( a > b ) return a ;
- else return b ;
- }
- return – функция натижасини қайтариш
- Хусусияти:
- Натижа типини функция номи бошида кўрсатилади
- формал параметрлар процедурадагидек кўрсатилади
- Ўзгарувчи-параметрлардан фойдаланиш мумкин
- Одатда функциялар асосий дастурдан олдин жойлашган бўлади
- int Vasya (int a, int b )
- Хусусият:
- локал ўзгарувчилардан фойдаланиш ва эълон қилиш мумкин
- float qq ( int a, int b)
- {
- ...
- }
- Локал ўзгарувчилар асосий дастур ва бошқа функция ва процедураларда мурожат қилиш мумкин эмас.
- void main()
- {
- int a, b, с;
- printf ( “иккита сон киритинг\n" );
- scanf ( "%d%d", &a, &b );
- c = Max ( a, b );
- printf ( “Катта сон %d", c );
- }
- int Max ( int a, int b )
- {
- ...
- }
- Масала: берилган сон туб эканлигини аниқловчи функция тузинг.
- Хусусияти:
- жавоб – мантиқий қиймат: «ха» (1) ёки «йўқ» (0)
- шартларда (if, while) мантиқий қийматини функция натижаси сифатида фойдаланиш мумкин
- Алгоритм: сон бўлувчиларини 2 ва N-1 интервалида қидирамиз, агар у нолга тенг бўлмаса, бу сон мураккабдир.
- count = 0;
- for (i = 2; i < N; i ++)
- if ( N % i == 0 ) count ++;
- if ( count == 0 )
- // N сони туб}
- else // N сони мураккаб
- void main()
- {
- int N;
- printf ( “Бутун сон киритинг\n" );
- scanf ( "%d", &N );
- if ( Prime( N ) )
- printf ("%d – мураккаб сон“, N);
- else printf ("%d – туб сон“, N);
- }
- int Prime ( int N )
- {
- int count = 0, i;
- for (i = 2; i*i <= N; i++)
- if (N % i == 0) count ++;
- return (count == 0);
- }
- if (count == 0) return 1;
- else return 0;
- "4": 1 дан N гача бўлган сонлар йиғиндисини топувчи функция тузинг ва фойдаланиш мисолини келтиринг.
- Масалан:
- Сон киритинг:
- 100
- 1 дан 100гача сонлар йиғиндиси = 5050
- "5": Шахмат ихтирочиси N-катакка нечта буғдой қўйиш кераклигини сўраган, буғдойлар сони аниқловчи функция тузинг (1-га – 1 бўғдой, 2-га – 2 та буғдой, 3-га – 4 та буғдой, …) Эслатма: long int.типидан фойдаланинг.
- Масалан:
- Катак номери киритинг:
- 28
- 28-катакда 134217728 та буғдой.
- "4": Иккита натурал соннинг энг катта умумий бўлувчисини топувчи функция тузинг ва ундан фойдаланишга мисол келтиринг.
- Масалан:
- Иккита сон киритинг:
- 14 21
- ЭКУБ(14,21)=7
- "5": Синус функциясини қатор йиғиндиси сифатида аниқловчи дастур тузинг (0.001 аниқликда)
- Масалан:
- Бурчакни градусда киритинг:
- 45
- sin(45) = 0.707
Do'stlaringiz bilan baham: |