Автор работы: Пользователь скрыл имя, 22 Октября 2013 в 17:59, курсовая работа
Паскаль тiлiн 1968 - 1971 жылдары швейцариялық ғалым Никлаус Вирт оқып - үйренуге қолайлы программалау тілі ретінде ұсынған болатын. Бұл тілдің стандарты кейiнiрек бекiтiлдi, ол сол кездері кең таралған АЛГОЛ, ФОРТРАН, БЕЙСИК тiлдерiне қарағанда жетiлдiрiлген, жұмыс iстeyгe ыңғайлы тiл болды. Паскаль тiлi өзінің қарапайымдылығының және тиiмдiлiгiнің арқасында дүние жүзіне тез таралды. Қазiргi кезде барлық дербес компьютерлер осы тілде жұмыс iстей алады. Паскаль тiлiнде жазылған программаның дұрыстығын компьютерде тексеру және жiберiлген қатенi тузету оңай.1975 жылы стандартты Паскальдың компиляторымен Турбо Паскаль(3.0версия) программалау тілі пайда болды.Содан бері Паскаль жалпы білімдік,кәсіптік-техникалық мектептерде және жоғары білім беру орындарында «бірінші» программалау тілі ретінде қолданыла бастады.
КІРІСПЕ......................................................................................................... ....3
I.ПАСКАЛЬ ПРОГРАММАЛАУ ТІЛІ
1.1. Паскаль тілінің негізгі элементтері................................................5
1.2 . Мәлімет типтері................................................................................7
1.3. Программа құрылымы......................................................................9
ІІ. ДИНАМИКАЛЫҚ МАССИВТЕР
2.1. Массив дегеніміз не?......................................................................14
2.2. Массивтермен жұмыс...................................................................18
2.3. Массивтің максималды және
минималды элементтерін табу.............................................................21
2.4. Динамикалық массивтерді құру және жою.................................24
2.5. Динамикалық тұрақты объектілерді құру және жою.................25
2.6. Абстрактті типті динамикалық массив
объектісінің құрылуы..............................................................................26
ҚОРЫТЫНДЫ.........................................................................................28 ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР...........
Const int arraysize;
Float prices [array size];
Сондықтан array size константа болғандықтан программадағы оның мәнін өзгертуге болмайтындығын есте сақтаған жөн.
2.3
Массивтің максималды және
Массивтің максималды элементтерін табу үшін функцияларды қолданамыз. Негізгі программадан іздеу жүргізу үшін арнайы функцияны жазуға болады.
Мысалы:
Find largest (values, from, to);
Функцияға іздеу облысының басы мен соңын көрсететін индекс аргументін қосу өте құажет. Бұл функция максималды мәнді немесе қайдан табылғанын анықтау керек.
Мысалы, мынадай сандық мәндер берілсін:
23,12,45,11,89,21,32,55,81,32
сандарға қарап, 89 максималды мән екенін оңай табуға болады. бірақ, біз сондай-ақ максималды мән 4-ші позициада деп айтуымыз да мүмкін (С++ те санақ 0-ден басталатынын ұмытпаған жөн) бәрімізге белгілі, компьютер бір мезгілде екі санды салыстыра алады. Ал, бірнеше саннан құралған группа ішінен өз бетінше максималды санды компьютер таба алмайды. Ол үшін біз әр санды жеке-жеке бір-бірімен салыстыру керек екенін компьютерге жеткізуіміз керек. сондықтан, компьютер екі санды салыстыру кезінде максималды мәнді есте сақтап, келесі санмен салыстыруы керек. максималды мәнді тапқанша солай жалғаса береді. Алғашында екі санды салыстырғанда, біреуі максималды болады. солай, кезекпен ол санды келесі элементтпен салыстыра отырып, максималды элементті іздйміз.
Оны былай көрсетуге болады:
Int find largest (int number [ ]6 int from, int to)
{
int index;
int guess;
guess=from; // Салысырудың бірінші элнменті
for (index=from; index<=to; index++)
{
if (number[found] number [index])
{
guess=index; // Элементті ауыстыру
}
}
return guess;
}
Айнымалы guess-те индекстің ағымды максималд элементі сақталады. Басында, ешқандай сан текскрілмегендіктен біз оған бірінші индекстің (from) мәнін меншіктейіз. Осындай жолмен, бұл позициада максималды элемент number [guess] табылады деп есептйміз.
Әрі қарай цикл басталады. Бүтін айнымалы index көмегімен ағымды массив индексі белгіленеді. Индекс мәні айнымалы from индексінен басталады. Ол іздеу позициясының бастауын білдіреді және айнымалы to мәнімен аяқталады, to іздеудің соңғы позициясын білдіреді.
Шақыру функциясын find largest()-ті массивтің максималды элементін іздейтін негізгі функциясына қосуға болады.
Мысал:
Массивті қолданып
бүтін сандардан минималды
// Поиск минимального элемента массива
// (доступ к элементам при помощи указателя)
# include <stdio.h>
# include <conio.h>
#define HB 5 // размер массива
void main()
{
int a[HB]; // массив
int *min; // номер минимального элемента
int *p; // указатель на элемент массива
int I;
printf (“\n Поиск минимального элемента массива \n”);
printf (“ Введите в одной строке элементы массива,\n”);
printf (“%i целых чисел,и нажмите <enter>\n”,HB);
printf (“->”);
p=a;
for (i=1; i<=HB; i++)
scanf (“%i”, p++);
min=a; // пусть первый элемент минимальный
p=a+1;
// теперь р содержит адрес второго элемента
// сравним оставшиеся элементы массива с минимальным
for (i=2; i<=HB; i++)
{ if (*p< *min) min = p;
p++; //
} printf (“Минимальный элемент массива:%i\n”, *min);
printf (“\n Для завершения нажмите <enter>”);
getch();
}
3.1 Динамикалық массивтерді құру және жою
Жадының динамикалық облысында new операторының немесе malloc функциясының көмегімен массив құруға болады. Бірінші вариантқа тоқталайық, ол онша қауіпті емес және қолдануға ыңғайлы.
Жады бөлінгенде барлық массив арқылы айнымалы көмегімен жол санын беруге болады, ал баған санының мәні тұрақты болуы керек, яғни программа орындалғанға дейін анықталған. New сөзінен кейін құрылған массив типі, содан кейін тік жақша ішінде массив өлшемі жазылады, мысалы:
int m=5;
cin >> n;
int (*a) [m]=new int [n][m];
int **b=(int**)
new int [n][m];
Бұл фрагментте динамикалық массивті құрудың екі түрі көрсетілген. 1-операторда new операторының көмегімен бөлінген бастапқы массив адресі жады аумағы а айнымалысымен беріледі, int типті m элементтен тұратын массив сілтемесі сияқты анықталған. Мұндай жағдайда дәл осындай белгілер типі new операторын қайтарады.
2-операторда бастапқы бөлінген жады аумағы b айнымалысымен беріледі, мұнда көрсеткіш ішіне көрсеткіш, оның ішіне int сипатталған.
Динамикалық массивте
бірінші өлшемінің
New операторының
көмегімен массивтің тек бірінш
int getDim () ;
// екі өлшемді массивтің құрылуы
int (*pia3) [1024] = new int [getDim ()][1024];
// қате: екінші өлшемі тұрақты түрде берілген жоқ
int **pia4 = new int [4][getDim ()];
Delete масивтерді жою операторы келесі формада болады:
delete [ ] str1;
Бос тік жақшалар қажет. Олар компиляторға бұл жеке бірлік емес, массивке сілтеме екенін айтады. Str1 типі char-ға сілтеме, бұл жақшаларсыз компилятор массивтерді жою керектігін түсінбейді.
Жақшалардың жазылмауы синтаксистік қате болып есептелмейді, бірақ программаның дұрыс орындалуы екіталай.
Динамикалық бөлінген жадымен басқарумен байланысты проблемалардан құтылу үшін стандартты кітапхананың vector, list немесе string сияқты контейнерлік типтерді қолдану керек. Олар жадыны автоматты түрде басқарады.
3.2
Динамикалық тұрақты
Программист топта объект құра алады және инициализациядан кейін оның белгілерінің өлшемдерін жасыра алады. Бұған тұрақты объектіні жариялау арқылы жетуге болады. Ол үшін new операторының келесі формасы қолданылады:
const int *pci = new const int (1024) ;
Динамикалық тұрақты объектінің бірнеше ерекшеліктері бар. Біріншіден, ол инициализацияланған болуы керек, әйтпесе компилятор қате бар деп сигнал жібереді.
Екіншіден, new айнымалысымен
қайтарылған көрсеткіш
Құрылған объектінің
динамикалық тұрақтылығы
delete pci;
Delete операторының операндінің const int көрсеткіштік типтері бар.
Қатарлы элементтердің динамикалық тұрақты массивін құру мүмкін емес, себебі, мұндай массив элементтерін new операторында инициа-лизациялауға болмайды. Келесі инструкция компиляция кезіндегі қатеге байланысты:
const int *pci = new const int [100]; // қате.
3.3 Абстрактті типті динамикалық массив объектісінің құрылуы
Абстрактті типті динамикалық массив объектісін құру барысында жай массивті құрғанда қолданылатын объектілер – массивтің әр элементі үшін аргументсіз конструктор шақырылады. Массив динамикалық жадыға кіреді. Мысалдар қарастырайық:
# include <iostream.h>
class c1;
{
public:
c1 () { cout << "с1 класының конструкторы;" << end; }
void* operator new (unsigned int);
~c1 () {}
};
void* c1:: operator new (unsigned size)
{
coud << " с1 класының operator new () функциясы;" << end1;
return (void*) ((long) 0x9000 << 16 ); // 9000:0000 адресі
}
void main ()
{
c1 *clp = new c1 [3]; //
cout << "бастапқы массив адресі = " << clp << end1;
}
Программа шешуі төмендегідей:
Класс конструкторы с1;
Класс конструкторы с1;
Класс конструкторы с1;
Бастапқы массив адресі = 0х8f850e08.
ҚОРЫТЫНДЫ
Бұл курстық жұмыста тізім
құру үшін қолданылған массив
және динамикалық массив
Курстық жұмыстың теориялық бөлімінде тақырыптың мазмұны түсіндірілген болса, ал практикалық бөлімінде есептің қойылымы және шешімі табылған.
Қорыта келгенде бұл курстық жұмыстың Паскальда динамикалық , бір өлшемді, көп өлшемді массивтерге байланысты әр түрлі есептер шешуде маңызы зор болып табылады. Себебі мұнда есептің шешу жолдары да қарастырылып, мысалдар келтірілген.
Программалаудың барлық объектіге
бағыттылған тілдері дамып
Паскаль тiлiн 1968 - 1971
жылдары швейцариялык. ғалым Никлаус
Вирт оқып - үйренуге қолайлы программалау
тілі ретінде ұсынған болатын.
Бұл тілдің стандарты
Программалау тілі–ЭЕМ-де шешілетін әр түрлі есептердің программасын компьютерге түсінікті формада жазу боп табылады. Программалау тілдері жоғарғы және төменгі деңгейлі тілдер болып бөлінеді.Қолданбалы мазмұнды есептерді шешуге бағытталған, командалардың мол жиынтығынан тұратын табиғи тілге ұқсас программалау тілі-жоғарғы деңгейлі программалау тілі деп атайды.Қазіргі кезде олардың бірнеше түрі бар.Жоғарғы деңгейлі программалау тілдерінің бірі-Паскаль тілі.
Паскаль тілінде мәліметтерді енгізу және шығару үшін, яғни адам мен компьютер арасында мәлімет алмасу мақсатында алдын ала анықталған Input, Output файлдары қолданылады. Программа берілген мәндерді Input файлынан алады да, алынған нәтижені Output файлына орналастырады. Стандартты енгізу файлы болып пернетақта, ал шығару файлы болып дисплей экраны саналады. Ол үшін енгізу операторы пайдаланылады.
WRITE.WRUTELN-шығару операторы болса,
READ.READLN-енгізу операторы.
Символдық және сандық мәндерді енгізгенде, көбінесе EOLN (еnd of linе - жол соңы) стандартты функциясын пайдалану қолайлы болады. Бұл Функция мәні "жолдың соңы болды " немесе "мәндер беріліп болды" дегенді білдіретін Enter пернесі басылғанда ғана ақиқат (TRUE) болады да,қалған жайғдайлардың барлығында жалған (FALSE) болады. Бұл Функция көбінесе циклдік операторларда пайдаланылады.
Курстық жұмысымды қортындылай келе енгізуу және шығару операторлары туралы көптеген мағұлмат алдым.Сонымен бірге ТУРБО ПАСКАЛЬ программасы туралы мағұлматты толықтай қамтыдым.
1. Алексеев Е. Р. "Турбо Паскаль 7.0" Идеалный учебный курс. Численные методы. Москва - 2006.
2.Гринев А.К., Максимов Д.В. MS Word ХР. –М.: «Солон-Р», 2003.