Си- программалау тiлi
С++ тiлi BCPL және B тiлдердiң негiзiнде құралған және Си тiлiнен дамыған.
BCPL тiлi компилятордан жазуға және операциялық жүйенi бағдарламамен қамтамасыз етуге
арналған. Бұл тiлдi 1967 жылы Мартин Ричард ойлап тапқан. Кен Томпсон В тiлiнiң кӛптеген
мүмкiндiктерiн BCPL дубликатында және В тiлiн UNIX операциялық жүйелерiнiң алғашқы версияларын
құру үшiн 1970 жылы Bell Laboratories-те DEC PDP-7 компьютерiнде қолданылды. BCPL және В тiлдерi
қолдануға тиiмсiз болды. Онда мәлiметтiң әрбiр элементi жадыда бiр сӛздiң орнын алады және мәлiмет
элементтерiн ӛңдеуде бағдарламашыларға ауыртпалығын тигiздi.
Си тiлi В тiлiнiң негiзiнде дамыды. Си тiлiн Bell Laboratories-те 1972 жылы Деннис Ритчи DEC PDP-
11 компьютерiнде жасады. Си BCPL және В тiлдерiнiң кӛптеген маңызды концепцияларын және мәлiмет
типтерiн және басқа да қасиеттерiн қолданды. Си тiлi UNIX операциялық жүйесiн ӛңдеудегi тiл ретiнде
кеңiнен танымал болды. Қазiргi таңда барлық операциялық жүйелер Си және Си++ тiлдерiнде жазылған.
Соңғы он жылдықта Си тiлi кӛптеген компьютерлерде қолайлы болды.
Си++ Си тiлiнiң кеңейтiлген түрi. Оны 1980 жылдың басында Бъерн Строустроп Bell Laboratories-
сында ӛңдеп шығарған. Си++ тiлi Си тiлiнiң бiрқатар қасиеттерiн реттеудi қамтамасыз етедi және ең
185
маңыздысы объектi-бағдарланған бағдарламалық мүмкiндiгiн қамтамасыз етедi. Бұл бағдарламамен
қамтамасыздандыру әлемiндегi революциялық идея болып табылады.
Басқада бағдарламалық тiлдер кӛптеген қажеттi эффект бере алмағандықтан, Си++ алғашқыда ең
жоғарғы деңгейдегi нақтылы оқиғалар үлгiлерiн ӛңдеу мақсаты үшiн құрылған тiл болды.
Си++ тiлiн құруда Си тiлiнiң сәйкестiгiн сақтап қалуға ерекше кӛңiл бӛлiндi. Си++ тiлiнiң кӛмегiмен
кең кӛлемдi бағдарламалық проектiлер құруға болады. Си++ тiлiнiң арқасында берiлген мәлiметтер
типтерiне бақылауды күшейтуге және кӛптеген қосымша эффектiлердi жеңе алатын болдық. Си++ тiлiнiң
ең маңызды табысы объектi-бағдарланған бағдарламалау болып табылады. Си++-тiң барлық жеңiлдiктерiн
пайдалану үшiн негiзгi объектiлердi және олармен байланысқан операцияларды анықтап алу керек.
Программа құрылымы :
Программа мынандай элементтердің жиынынан тұрады. Процессорлардың командаларды,
компилятор кӛрсеткіштері, хабарламалар мен анықтамалардан тұрады.
Тесттерінің компиляция алдында ӛзгертеді. Компиляторға кӛрсеткіштер арнайы құрал-саймандар
(указатель), олар арқылы программа орындалады.
Айнымалыларды хабарлау – айнымалының атрибутын кӛрсетеді.
Айнымалыларды анықтау – оған ЭЕМ жадынан орын береді.
Функцияларды хабарлау – оның атын, оның формальдық параметрлерінің атрибутын кӛрсетеді. Cи
тіліндегі программа орындалуы үшін кем дегенде бір функция болуы қажет. Егер бірнеше функция болса
олардың біреуі бас функция болып, оның аты main () болуы мүмкін.
Мысалы:
I nt x =1;\* айнымалыларды анықтау*/
int y=2;
extern int printf (char*, …); \* функцияны хабарлау*/
main () \* бас функцияны анықтау */
{int r ;/* айнымалыларды анықтау */
int w;
z=y+x; .w=y-x;
printf (²r=%d\w=%d\n²,r,w);}
Салыстыру
С және Pascal тілдері кең тараған программалар. Pascal тілі жаңадан бағдарламалауды үйрене
бастаған адамдарға жеңіл түседі, кӛптеген Қазақстан оқу орнындарында 1-ші Pascal - тілін үйретуден
бастайды.
Паскаль тілінің ерекшеліктері:
- Тілдің қарапайымдылығы оны тез арада жете меңгеруге мүмкіндік береді.
- Деректердің құрылысына қарай сандық, белгілік және екілік информациямен жұмыс жүргізуге
және күрделі алгоритмді бағдарлама жасауға қызмет етеді.
- Жүйелік бағдарламалауда кеңінен қолдануына оның ӛте тиімді бағдарламалар құру мүмкіндігі
септігін тигізеді.
Си тілінің ерекшеліктері:
- Тілдің машиналық кодына ұқсас болуы, программа кодының тез орындалуына мүмкіндік береді.
- Операторлардың қысқа жазылуы кодты тез теруіне мүмкіндік береді.
Кестелік түрдегі салыстырмасы:\\
Паскаль
Си
integer : A;
int A; "d"
real B,C;
float B,C; "f"
ch : char;
char ch; "c"
STR : string[ұзындық]; ұзындық <=255
char *STR[ұзындық] "s"
arr : array[10][20] of integer = (1,2);
int arr[10][20] = {1, 2};
flag : boolean;
си – да жоқ/ ол си++ бар - bool flag;
begin...end
{...}
write(x:5:2); x - real
printf("%-5.2f", x);
writeln("Жауап = ", x, ", y = ", y);
printf("Жауап = %d, y = %d", x, y);
x:=a+b;
x=a+b;
a = b - теңестіру
a == b
186
uses system - үнемі қосулы
#include
uses crt; - графикалық модуль
#include
dec X; - x = x - 1
X--;
inc X; - x = x + 1
X++;
{...} немесе {*...*} - комментария
Бүкіл жол - // ... немесе белгілі аралық /*...*/
A mod B
A % B
@A - адресті алу
&A
and
&&
or
||
xor
^
not A;
!A;
readln(x,y);
scanf("%d,%d",&;x,&;y);
if((a>b)and(b<10)) then
begin ...
and;
else ...;
if(a>b && bb<10)
{ ...
}
else ...;
for i = 0 to 100 do ...;
for(i = 0; i b <= 100; i++);
for I = 10 downto 1 do ...;
for(i = 10; i >= 1;u--);
repeat
...
ubtil(a<>b);
do{
...
}while(a!=b) ;
while(a>=c) do begin
...
end;
while(a<=c){
...
}
shl; shr; - қозғалыс оңға, солға
<<;>>
procedure proc(a,b:char)
begin
... шақыру - proc("A","B");
end;
void proc(char a, char b)
{
... шақыру proc("A","B");
}
function func(a:integer,b:real):double;
begin
...
func := 0.001;
end;
double func(int a, real b)
{
...
return 0;
}
readkey;
getche();
x:=x+5;
x+=5; *=, /=, -=, %=
if y<10 then x:=20 else x:=40
x = (y<10) ? 20 : 40
casw x of
1 : inc t
else dec t; end;
switch(x){
1 : t++;break;
default : t--;}
10>
Достарыңызбен бөлісу: |