ТЕОРИЯЛЫҚ АҚПАРАТ
Ақпаратты енгізу және шығару.
Ақпаратты енгізу және шығару
Программалудың негізгі мақсаты ақпаратты өңдеу болып табылады, сондықтан прогаммалаудың кез-келген тілінде мәлметтерді енгізу мен шығару құралдары бар болуы керек.
Си тілінде енгізу мен шығару лары жоқ; ақпаратты енгізу мен шығару стандартты библиотека функциясы арқылы жүзеге асырылады. Осы функциялардың прототиптері stdio.h. Файлында орналасқан.
Шығару printf функциясы арқылы, енгізу — scanf арқылы жүзеге асырылады.
Енгізу және шығару функциялары
printf функциясы — форматтанған шығару функциясы. Ол мәліметтерді ішкі кодтан смволды бейнеге аударады және симводардың алынған бейнелерін дисплей экранына шығарады.
Форматтау мүмкіндігі f литерасының көмегімен оның атауының соңында шартты белгіленген (print formatted).
printf() функциясын жазу жалпы формасы printf(«формат тармағы",объект_1,объект_2,...,объект_n);
Формат тармақтары келесі элементтерден тұрады:
1) басқарушы символдар;
2) экранға шығарылатын мәтін;
3) әртүрлі типті айнымалылардың мәндерін шығаруға арналған формат.
Объектілер жоқ болуы мүмкін. Басқарушы символдар экранға шығарылмайды, олар шығарылатын символдардың орналасын басқарады. Басқарушы символдың маңызды ерекшелігі ретінде оның алдындағы слэштың болуы.
Негізгі басқарушы символдар:
1) '\n' — жаңа тармақ;
2) '\t' — горизонталды табуляция;
3) '\v' — вертикалды табуляция;
4) '\b' — символға қайту
5) '\r' — тармақтың басына қайту;
6) '\a' — дыбыс сигналы.
Форматтар ақпараттың экранға шығарылу түрін көрсету үшін арналған.
Форматтың маңызды ерекшелігі ретінде «%» пайыз символының бар болуы болып табылады. Негізгі форматтар:
1) %d — таңбасы бар бүтін формат;
2) %u — таңбасы жоқар бүтін формат;
3) %f — заттық формат (float типті құбылмалы нүктесі бар сандар );
4) %lf — заттық формат (double типті құбылмалы нүктесі бар сандар);
5) %e — экспоненциалды формадағы заттық формат (экспоненциалды рформадағы float типті құбылмалы нүктесі бар санда);
6) %c — символдық формат;
7) %s — тармақтық формат;
8) %p — адрестік формат.
МЫСАЛ 1.
printf("\n СӘЛЕМ, Си тілі!");
Бағдарламаларының жұмыс істеу нәтижелері:
СӘЛЕМ, Си тілі!
МЫСАЛ 2.
a=5;
printf("\n a=%d.",a айнымалының мәні);
Бағдарламаларының жұмыс істеу нәтижелері :
a=5 айнымалының мәні.
Бағдарламаларының жұмыс істеу нәтижелері
айнымалының мәні 3.
x=2.78; printf("\n x=%f",x айнымалының мәні);
Бағдарламаларының жұмыс істеу нәтижелері
Айнымалының мәні x=2.780000
Клавиатурадан мәліметтерді форматтанған енгізудің
scanf функциясы
Клавиатурадан мәліметтерді форматтанған енгізудің scanf функциясы клавиатурмен терілген кодтартың оқылуын орындайды, оларды ішкі форматқа түрлендіріп, бағдарламаға береді.
Сондай-ақ программист форматты тармақтың спецификаиялары көмегімен кіріс кодтарының интерпретациялау ережелеріне әсер етуі мүмкін.
SCANF ФУНКЦИЯСЫНЫҢ ЖАЗУДЫҢ ЖАЛПЫ ФОРМАСЫ
scanf ("форматов тормақтары", адрес_объект_1, адрес_объект_2, ..., адрес_объект_n);
Клавиатурадан мәліметтерді форматтанған енгізудің scanf функциясы
Форматтар тармағы printf функциясына аналогті болады.
Объект адресі келесі ретпен: атауы_объект.
Форматтар тармағы және функция үшін аргументтер тізімі.
Бағдарлама мысалдары
scanf("%d", &m); /* Бүтін санды жазып, */ /* m айнымалы мәнін ешкім іздеген жоқ. */
scanf("%lf", &x1); /* Ввести значение переменной x1, */ айнымалыныңмәнін енгізу, оларда /* double типі бар. */
iostream.h библиотекалық файл
Си++ классты библиотеканы пайдалану кезінде, iostream.h библиотекалық файл пайдаланады, оның ішінде cin клавиатурасынан енгізу мәліметтерінің және cout дисплейдің экранына мәліметтерді шығарудың стандарттық ағындары анықталған, сонымен қатар сәйкес операциялар анықталған:
1) << - мәліметтерді ағынға жазу операциясы;
2) >> - мәліметтердің ағыннан оқылу операциясы.
Мысалы:
#include ; . . . . . . . . . cout << “\n Элементтер санын теріңіз: ”; cin >> n;
Бағдарлама 3
void main()
{
int a, b, c, z; // Төрт бүтін сандары үшін жады резервтеледі.
clrscr(); // шығару экранынан ақпарат жойылады.
cout << “Бұл бағдарлама Төрт бүтін сандары үшін жады резервтеледі”;
cout << “a, b и c айнымалыларға бармайды” << “ \сәйкес 2, 5, 7 сандары \n”; a = 2; b = 5; c = 7; cout << “Жадыға келесі ақпарат енгізілген:\n”; cout << “a = “ << a << “\nb = “ << b << “\nc = “ << c << “\n”; getch();
} // Клавишаның басылуы күтіледі.
Директиваны талқылайық
cout << “a = “ << a << “\nb = “ << b << “\nc = “ << c << “\n”;
Ол солдан оңға қарай орындалады:
“a = “ тырнақшасындағымәтіннің шығарылуы жүреді (экранда a = пайда болады);
а айнымалысындағы санның шығару мәні орындалады (экран бетінде a = 2);
курсордың жаңа тармаққа аудырылуы және тырнақшадағы мәтіннің шығарылуы орындалады (экран бетінде b =);
b айнымалысында санның шығару мәні орындалады (экран бетінде b = );
курсордың жаңа тармаққа аудырылуы және тырнақшадағы мәтіннің шығарылуы орындалады (экран бетінде с =);
3 бағдарламаларының жұмыс жасауы нәтижесінде нәтижелердің шығару экранында келесі ақпарат болады:
Бұл бағдарлама төрт бүтін сандары үшін жыдыды орнын резевтейді және a, b мен c айнымалыларына сәйкес 2, 5, 7 сандарын аударады. Жадыға келесі ақпарат енгізілген: a = 2 b = 5 c = 7
Бағдарлама 4
void main()
{
float x, y, z;
cout << “Нақты санды енгіз x = “;
cin >> x; cout << “Нақты санды енгіз y = “;
cin >> y; cout << “Сандар енгізілген: \nx = “ << x << “\ny = “ << y << “\n”;
z=( sin(x)*sin(x)+cos(y)*cos(y)) / (sin((x+y)/2.)+1.5) - exp(fabs(cos(x)) + sin(y));
z=z*log(fabs(x)+1)-sqrt(x*x+1);
cout << “\n Есептеу нәтижесі z= “ << z << “\n”; getch();
}
Салыстыру операциялары және логикалық операциялар
C тілінде салыстырудың келесі операциялары бар(кей әдебиеттерде ол қатынас операциялары:
> Үлкен
>= Үлкен немесе тең
< Кіші
<= Кіші немесе тең
!= Тең емес
== Тең.
Қатынас операциялары 1-ге тең операцияларды есептейді, егер қатынас ақиқатты болса немесе 0-ге тең мәнді есептейді, егер қатынас жалған болса.
Салыстыру операциялары пайдаланылатын өрнектерді есептеу нәтижелерін айнымалыға қосуға болады
Бағдарлама 1.
Бұл мысал салыстыру операцияларының әрекеттерін көрсетеді
void main()
{
int r; clrscr(); r = 3 > 8;
cout << “Операцияның нәтижесі 3 > 8 = ” << r << “\n\n” ;
r = 3 < 8;
cout << “Операцияның нәтижесі 3 < 8 = ” << r << “\n\n” ; r = 8 > 8;
cout << “Операцияның нәтижесі 8 > 8 = ” << r << “\n\n” ; r = 8 >= 8;
cout << “Операцияның нәтижесі 8 >= 8 = ” << r << “\n\n” ; r = 3 == 8;
cout << “Операцияның нәтижесі 3 == 8 = ” << r << “\n\n” ; r = 3 != 8;
cout << “Операцияның нәтижесі 3 != 8 = ” << r << “\n\n” ; r = 3 + 6 > 8;
cout << “Операцияның нәтижесі 3 + 6 > 8= ” << r << “\n\n” ; getch(); }
Бағдарламаны орындаудан кейін экранда мына жазу жазылады:
Операцияның нәтижесі 3 > 8 = 0
Операцияның нәтижесі 3 < 8 = 1
Операцияның нәтижесі 8 > 8 = 0
Операцияның нәтижесі 8 >= 8 = 1
Операцияның нәтижесі 3 == 8 = 0
Операцияның нәтижесі 3 != 8 = 1
Операцияның нәтижесі 3 + 6 > 8 = 1
Логикалық операциялар:
операция && – логикалық И;
операция || – логикалық немесе;
операция ! – логикалық НЕ.
IF ШАРТТЫ ОПЕРАТОРЫ
Жазудың жалпы формасы
if(< выражение>) <оператор 1>;
[else <оператор 2>;]
Егер өрнек ақиқатты болса, онда <оператор 1> орындалады, егер өрнк артық болса <оператор 2> (егер else опциясы бар болғанда ).
Оператор if салынған болуы мүмкін.
Мысал
if (key == 1)
printf("\n Алғашқы пункт таңдалған");
else if (key == 2)
printf("\n Екінші пункт таңдалған ");
else printf("\n Алғашқы және екінші пункт таңдалмаған ");
if операторды else опциясын пайдаланбай пайдалану мүмкін.
if оператордың екі формаларын қолданғанда, else опциясы соңғы if оператормен байланысады.
Мысал
if (key!= 1) if (key == 2)
printf( "\n Екінші пункт таңдалған");
else printf("\n Алғашқы және екінші пункт таңдалмаған ");
Егер <оператор1> немесе <оператор2> бірнеше оператордан тұрса, құрамды операторды пайдалану қажет (блок).
Мысал
if (key == 1)
{ n=n+1; m=l+r; } else { m=m-1; n=l-r; }
Бағдарлама
a, b екі саны берілген.
Екі санның арасынан максималды мәнді табу.
Егер a > b өрнегі ақиқат болса, онда максималды сан а саны болып табылады.
Егер a > b өрнегі жалған болса, онда максималды сан b саны болып табылады.
void main() { int a, b; clrscr();
cout << “Екі бүтін санды енгіз”; cin >>a >>b; // Клавиатурадан екі санды енгізу.
if (a > b) cout << “сандардың max “ << a << “, ” << b << “= “ << a << “\n”;
else cout << “сандардың max “ << a << “, ” << b << “= “ << b << “\n”;
getch(); }
Бағдарламада шартты операторларды пайдаланғанда,келесі конструкциялар мүмкін :
if { if {… } else {… } } else { if {… } else {… } }
SWITCH ТАРМАҚТАНУ ОПЕРАТОРЫ
if операторы тек екі вариант арасында ғана таңдауды жүзеге асыруға мүмкіндік береді. Екі варианттан біреуді таңдау үшін switch Для того, чтобы производить выбор одного из нескольких вариантов испол оператор пайдаланылады.
Switch жазудың жалпы формасы ( <бүтін өрнек> )
{ case <константті өрнек1>: <оператор1>; break;
case <константті өрнек2>: <оператор2>; break;
. . .
default: <оператор n+1>; }
default операторы жоқ болуы мүмкін.
Оператор келесідей орындалады:
1) switch операторының жақшаларында өрнек есептеледі;
2) алынған мән case опциясында белгілермен (константті өрнектермен) салыстырылады;
3) салыстыру берілген мәнге сәйкес болатын белгі табылмағанша жүргізіледі, содан кейін сәйкес тармақтың операторы орындалады;
4) егер сәйкес белгі табылмаса, онда default опциясындағы оператор орындалады.
Default-ке альтернативасы жоқ болуы мүмкін, онда ешқандай әрекеттер қолданылмайды.
break опциясы switch оператордан шығуын жүзеге асырады және одан кейін болатын операторға көшуін іске асырады.
break опциясының жоқ болы кезінде берілген белгімен белгіленгеннен бастап, default опциясындағы оперторларға дейін барлық операторлар орындалады. Константтік өрнектер (өрнектер, олардың операндалары константалар болады) бүтін типті болуы қажет (char қосқанда).
Мысал:
#include
void main()
{ int i;
cout<<"\nEnter the number";
cin>>i; switch(i)
{ case 1:cout<<"\nthe number is one";
case 2:cout<<"\n2*2="<
case 3: cout<<"\n3*3="<
case 4: cout<<"\n"<
default:cout<<"\nThe end of work"; } }
Мысал.
Аптаның күнін оның енгізілген нөмірі бойынша анықтайтын бағдарламаны әзірлеу.
Бағдарлама апта күнінің дұрыс енгізілмеген нөмерін сезіну қажет. main( )
{
int i;
printf("\ Аптаның күнінің нөмірін енгізіңіз: ");
scanf("%u", &i);
switch( i )
{
case 1: printf("\n Дүйсенбі."); break;
case 2: printf("\n Сейсенбі."); break;
. . .
case 7: printf("\n Жексенбі."); break;
default:
{
printf("\n Дұрыс енгізілмеген");
printf("Аптаның күнінің нөмірі.");
}
}
}
Бағдарлама. Меню шаблоны.
void main(void)
{ int k; clrscr(); cout << "\n\n Меню командалары:\n\n";
cout << "1 Команда\n";
cout << "2 Команда\n";
cout << "3 Команда\n";
cout << "4 Команда\n";
cout << "\nМеню командасын енгіз: ";
scanf("%d",&k); switch (k)
{
case 1 : cout << «Сіз 1-ші команданы таңдадыңыз";
getch();
break;
case 2 : cout << " Сіз 2-ші команданы таңдадыңыз ";
getch();
break;
case 3 : cout << " Сіз 3-ші команданы таңдадыңыз ";
getch();
break;
case 4 : cout << " Сіз 4-ші команданы таңдадыңыз ";
getch();
break;
default : cout << «Номері болатын меню командасы" << k << «жоқ\n"; } }
Үлгі :
#include "stdafx.h"
#include
#include
#include
using namespace std;
int main()
{
int nT;
float fV=0, fA=0.81, fC=2.6;
double dX=0.4;
cout << ("Engiziniz mani t...\n");
cin >> (nT);
switch (nT)
{
case 1:
fV=1-cos(dX);
break;
case 2:
fV=nT/(2*(nT+sin(fA)));
break;
case 6:
fV=pow(dX,1.0/2.0)+fC;
break;
default:
printf("Zhauaby jok\n");
break;
}
printf("v=%f\n",fV);
system("pause");
return 0;
}
Тапсырма
1. 1 кестеден нұсқа бойынша тапсырма алу және шарт операторларды пайдаланып бағдарлама жазу
2. 2 кестеден нұсқа бойынша тапсырма алу және тандау операторларды пайдаланып бағдарлама жазу. Қілттік сөзді default пайдалану
Кесте 1
№
| Мәні |
Берілген мәліметтер
|
|
|
a=2
b=1,5
c=1
d=3
e=0,5
|
|
|
c=-2
a=1,5
d=2
x=3
|
|
|
a=5
b=1,2
y= 0,6
|
|
|
d=2
a=3,5
x=3
i=2,3
|
|
|
=1
x=2,5
a=4
b=0,4
|
|
|
a=0,5
b=2
h=4
R=1,4
|
|
|
p=0,6
l=2
h=5
R=4
|
|
|
x=0,63
c=1,5
d=2
a=0,37
|
|
|
y=2,6
x=1,6
a=0,4
|
|
|
a=1,5
b=2
x=0,5
|
Достарыңызбен бөлісу: |