
- •11)Ағымдық кластардың иерархиясы. Файлдық енгізу/шығару.
- •Класстар иерархиясын құру
- •12. Класс шаблондары, қызметі ерекшелігі.
- •Шаблон параметрі ретінде параметре типі, қарапайым параметр типі, шаблон параметрі бола алады.
- •13. Виртуалдық, достық, статикалық қызметтер. This көрсеткіші
- •14.Атаулар кеңістігі, түрлену қызметі, кластың статикалық мүшелері, кластың тұрақты және модификацияланатын мүшелері.
- •15.Тапсырмалардың паралелді орындалуы.
- •16.Fortran программалау тіліндегі операциялар, өрнектер және стандартты функциялар.
- •17.Fortran тіліндегі мәліметтер типі. Мәліметтер инициализациясы.
- •Fortran тіліндегі енгізу/шығару операторларының классификациясы.Атаулы және атаусыз тізіммен басқарылатын енгізу/шығару. Форматталған енгізу/шығару.
- •Енгізілген екі санның суммасын файылға жазатын есептің программасын жазайаық
- •Fortran тіліндегі шартты оператордың құрылысы.
- •1. Арифметикалық
- •2. Логикалық
- •20. Fortran тіліндегі циклді оператордың классификациясы. Параметрмен, алғы шартпен және соңғы шартпен жазылатын циклдер.
- •Бірден n ге дейінгі сандардың суммасын есептеу.
- •Вычисление суммы целых чисел в цикле с предусловием.
- •Fortran тілінде статикалық массивтерді хабарлау және инициализациялау.
- •Fortran тілінде динамикалық массивтерді хабарлау және инициализациялау.
- •24.Fortran тіліндегі сыртқы және ішкі процедуралар.
- •25.Fortran тіліндегі модулдер және олардың қолданылуы
Fortran тілінде статикалық массивтерді хабарлау және инициализациялау.
DIMENSIONf атрибуттарын қолданбай массивтерді хабарлауға болады. Мысалы келесі хабарлаулар екіөлшемді бүтін санды массив береді
integer, parameter :: m = 2, n = 4
integer a(m, n) ! или a(1:m, 1:n)
или
integer b
dimension b(m, n) ! Оператор DIMENSION
или
integer, dimension(m, n) :: с ! Атрибут DIMENSION
массивтерді хабарлау үшін әр түрлі әдістер:
integer, allocatable :: а(:, :)
или
integer, dimension(:, :) :: b
allocatable b ! Оператор ALLOCATABLE
или
integer с
dimension c(:, :) ! Оператор DIMENSION
alocatable с
или
integer, alocatable, dimension (:, :):: d
Fortran тілінде динамикалық массивтерді хабарлау және инициализациялау.
Массивтерді сипаттау кезінде әрбір өлшем үшін массивтің элементтернің саны белгіленеді. Мысалы :
integer q(10)
немесе
double precision p(30,30,30)
программаны
компиляциялау кезінде массивтерге
жұмыстың соңына дейін сақталатын жады
бөлінеді. Мұндай массивтер статикалық
массиытер деп аталады. Бірақ статикалық
массивтермен жұмыс істеу кейде қолайсыз
болады. Мысалы программамен жұмыс
істейтін қолданушыға алдымен 400
элементтен тұратын матрица, ал кейін
5000, ары қарай 1000000нан, және де соңында
100 элементтен тұратын матрица керек
делік. Осы жерде программаның жұмысы
процессінде екіөлшемді массивтердің
шекараларын ауыспалы етуге болады
деген сұрақ туындайды. Әрине бірден
массивтің максималды шамасын енгізуге
болады, мысалы (1000
1000),
және шектеулерді бере отырып керек
өлшемдермен жұмыс істеуге болады. Бірақ
мұндай әдіс жадының үлкен көлемде
жқмсалуына әкеледі. Осындай есептерді
шешу үшін өлшемі компиляция кезінде
емес, программаны орындау кезінде
берілетін динамикалық массивтер
қолданылады. Мұндай массивтерді сипаттау
үшін allocatable атрибуты қолданылады.
Мысалы:
real, allocatable :: s(: , :)
Массивті жариялау кезінде өлшемдердің орнына қос нүкте қойылады, ол массивтің өлшемі еркін бола алады дегенді білдіреді. Ораналастыру массивтерінің мысалы:
logical, allocatable : : g(:)
integer, allocatable : : c(: , :)
real, allocatable : : s(: , : , : )
Массивті компьютер жадында орналастыру үшін allocatable операторы қолданылады. Динамикалық массивтермен жұмыс жасап біткеннен кейін жадыны босату керек, ол үшін deallocatable операторын қолданамыз.
Мысал. Массивінің индекстерінің квадратты мәні бар бірөлшемді динамикалық массив құрастыру:
program use_allocatable
integer, allocatable : : b(:)
integer M
write (*, “ (A, \)”) “ Number of elements…” ; read (* , *) M
allocate (b(M)) !
do k=1, M
b(k)=k**2
write (*, “ (i6, \) ” ) b(k)
end do
deallocate (b) !
end
программаның нәтижесі:
Number of elements…10
4 9 16 25 36 49 64 81 100
23.Fortran тіліндегі процедуралар (функциялар, ішкі программалар).Ішкі бағдарлама - көлемі жағынан орташа болып келетін бағдарламаларды құрастырғанда құрылымды бағдарламалау қолданылады. Бағдарламаның құрылымы шығарылып жатқан есептің құрылымын көрсету керек. Ол үшін қарапайым операторлар жеткіліксіз, алгоритмнің нақты құрылымын дәлірек көрсететін құралдар қажет. Сондықтан бағдарламалауға жаңа ұғым – ішкі бағдарламалар енгізілді. Ішкі бағдарламаның екі түрі болады – процедуралар және функциялар. Олардың айырмашылығы: процедура белгілі бір операторлар тобын орындаса, функция осыған қоса қандай да бір нәтижені есептеп, оны негізгі бағдарламаға қайта жібереді. Бұл нәтиженің өзіне тән типі болады. Ішкі бағдарлама негізгі бағдарлама сияқты құрылады, яғни бағдарлама атауынан, операторлар бөлігінен және аяқталуынан құрылады. Процедура – белгілі ретпен іске асырылатын іс-әрекеттер жиыны, жалпы бағдарламаның бір бөлігі. Функция – басқа мәліметтер алу үшін анықталған мәліметтерге қолданылатын компьютердің іс-әрекеті. Функцияның ерекшелігі – оның орындалуы барысында бір ғана нәтиже шығады, ал кіру параметрлері бірнешеу болуы мүмкін. Нәтиже функция атауымен белгіленіп, негізгі бағдарламаға беріледі. FUNCTION <атауы> (<форм. параметрлер тізімі>);
|
<операторлар бөлігі> |
END FUNCTION