Агуулахын оператор. Сэтгэцийн оператор. Тайлбарын бүтэц. Ухаалаг оператор Navishto vikoristuvati ухаалаг оператор

Програм бичихийн тулд зөвхөн програмчлалын хэлийг мэдэх нь хангалтгүй. Эцсийн эцэст бүх зүйл зөв ажиллахын тулд бичсэн бүхний бүтцийг ойлгож, бүрэн ойлгох шаардлагатай. Өнөөдөр бид программ дахь сэтгэцийн операторын тухай ойлголтыг авч үзэх болно. Нэмж дурдахад операторын ажилладаг кодын шифрлэлтийн талаар хэрэгтэй мэдээлэл байх болно.

Визначення.

Мөн сэтгэцийн оператор нь бүх програмчлалын дизайны үндэс болдог. Энэ нь өөрөө томилогдсон тушаалуудыг оруулах боломжийг олгодог. Үнэн хэнийх нь оюун ухаанд хэрэгтэй вэ, эсвэл шууд тушаал нь користувачтай адил юм.

Галуз застосування.

Vikonanny баг эсвэл багуудын хувьд дуулах оюун ухаанд зориулсан Даня zastosovuєtsya. Эвгүй байдлаас болж зогсонги байдалд орох тохиолдол байдаг. Энэ нь хөтөлбөрийг тодорхойлдог гурван үндсэн бүтцэд шууд хуваагддаг.

Сэтгэцийн шилжилт.

Сэтгэцийн шилжилтийн оператор нь сонгох зарчмыг баримталдаг бөгөөд сэтгэлийн үнэнтэй шууд холбоотой байдаг. Тиймээс, программд хэд хэдэн шийдлийн сонголтыг зааж өгсөн тул оператор өөрөө сонгох боломжтой бөгөөд үүний дараа шууд үйлдэл хийх боломжтой. Буцах нь эсрэгээрээ биш юм. Логик илэрхийллийн үнэнийг оюун санааны код, if гэсэн үгийн дараа илэрхийлсэн утга байгаагаар баталгаажуулдаг. Энэ нь өөрөө ихэвчлэн янз бүрийн хэл дээр хэрэглэгддэг бөгөөд энэ нь сонголтын зөвийг харуулж байна. Хэрэв оюун ухаанд эхний зүйл нь илбэ хийхэд тохиромжгүй гэж заасан бол бид удахгүй болох бүх оруулгуудыг дараалан, дарааллаар шалгана. Энэ үйл явц амаргүй тул тайлангаа мэдэгдэнэ үү.

Ухаалаг операторуудын хэлбэрүүд.

Ийм төлөвлөгөөний зөвхөн гурван хэлбэр байдаг. Арьсны робот, дараа нь нэг гартай хамгийн энгийн операторыг харцгаая. Энэ бол кодын төгсгөлийг заадаг if команд бөгөөд үүний дараа дуусгах шаардлагатай командууд бичигдэж, төгсгөл нь кодын төгсгөлийг заадаг. Баг бүх замыг эхнээс нь дуустал туулахын тулд машин эхлээд кодонд өгөгдсөн оюун ухааны төрөл, хаашаа явах ёстойг шалгаж, машин төгсгөлд нь хүрэх хүртэл командын дараагийн хэсгийг дагаж эхэлдэг. , заасан төгсгөл. Төгсгөлийн үгийг заагаагүй ассемблерууд байдаг бөгөөд тэд зөвхөн тухайн үгэнд хамаарах бүх командыг анхааралтай бичдэг. Энэ бичих хэлбэр нь бас боломжтой цорын ганц хэлбэр байж болно.

Хоёр програмчлалын сонголттой илүү том нугалах сонголт. Энэ код нь дараагийн алхам шиг харагдаж байна: if гэсэн үг, дараа нь дараагийн үг, дараа нь үгийн дараа, дараагийн командын тушаал, одоо else команд бичигдсэн тул эхнийх нь явахгүй бөгөөд бүх зүйл дуусна. Хөтөлбөр дуусах хүртэл зогсонги байдалд орох шийдвэр гаргасан. Хэрэв эхний тархи бүтэлгүйтэж, эхний баг амжилтгүй болбол программ автоматаар нөгөөг нь ялна. Энэ алхам нь эхнийхээс илүү үр дүнтэй байдаг.

Гурав дахь сонголт бол олон тооны оюун ухааныг хамарсан хөгжил юм. Vіn бол сонгогдсон оюун ухаанаас бичих, дараа нь шаардлагатай тушаал, үүний дараа өөр оюун ухаан, хэрэв эхнийх нь явахгүй бол дараа нь өөр сэтгэлийг дагах тушаал, эс тэгвээс хэрэв өөр сэтгэлийг заадаг. оюун санааны тушаал.Хэрэв дараа нь гэсэн үгсийг бичиж болно, хэрэв шаардлагатай бүх тархи дуусвал сурвалжлагч тархиар өөр тушаал өгч, хэрвээ хэтэрсэн сонголтуудаас гарах арга байхгүй бөгөөд тушаалыг дуусгасны дараагаар хаагдана. төгсгөл гэдэг үг.

Оператор нь нүцгэн бүтцийг шүүрдэж, бүгдийг нь дараалан зурдаг. Эхний багаас дахин эхэлье.

Өгзөг дээр нь "Паскаль" кино байна.

Хамгийн ухаалаг операторыг ашиглахын тулд хамгийн алдартай програмчлалыг дагаж мөрдөөрэй. Бид хэнийг ч уучилж, эелдэг байж чадна. Уучлаарай, тэдгээрийг =, гэх мэт тэмдгээр тэмдэглэсэн болно.<, >Гэх мэтээр эвхдэгийг a>=y бол op:=Sqr(а-у) гэж бичээд хүлээн зөвшөөрөх боломжгүй үзүүлэлтүүдийг оруулна.

Перемикачийн тухай ойлголт.

Перемикач нь параметрийн зааврыг дагаж мөрддөг гинжин команд юм. Энэ нь зөвхөн нэгийг сонгохоос илүү дор хаяж хоёр тээглүүр шаарддаг. Дарсны тогтоосон параметрт оюун ухаан, бие даан дууны viconn холино. Ийм параметрүүдийг ашиглан хэлний үйлдлүүд нь тексттэй адилтгаж болно. Энэ команд нь бүх утгын төрлийг эргүүлэх эсвэл эргүүлэхийн тулд дээрх тайлбар дээр гарч ирнэ.

Операторын хөгжил.

Эхлээд сэтгэцийн оператор тушаалын үүрэг гүйцэтгэдэг байсан бөгөөд энэ нь шаардлагатай тэмдэг рүү цааш шилжих гэсэн үг юм. Тушаал хүчинтэй байсан бөгөөд энэ нь сонгогчоор гарч ирсэн бөгөөд шилжилтийн бүх үнэ цэнэ, оюун ухааны эргэлтийг хийсэн. Үүнийг хийсний дараа жагсаалтаас шошгоны дугаарыг тооцоолж, машин өгсөн дугаарыг шууд тооцоолж эхлэв. Энэ загварыг ижил төстэй байдлаар, жишээлбэл, BASIC болон Fortran дээр ашиглаж болно. Тооцооллын хувьд өөр барилга байгууламжийг аль хэдийн ашигласан хүмүүсээс үл хамааран энэ нь үр дүнтэй хэвээр байна.

Сэтгэцийн оператор бичих одоогийн загвар нь урьдчилан нугалж, тооцооллын цагт бага зэрэг өчүүхэн байх нь ойлгомжтой. Шаардлагатай хаягтай командуудын массивыг дараалан оруулдаг. Нэгээс нөгөөд шилжих нь тэмдгийн утгын тоог тооцоолох цагийн бие даасан байдлыг хангах болно.

Одоогийн хэл дээрх Перемикачийг шилжилтийн хүснэгт болгон ашиглаж болно. Машиныг зориулалтын фрагментууд руу шилжүүлэх командын хүснэгтийг үүсгэсэн. Команд нь том үсэг эсвэл swithc хэлбэрээр бичигдсэн байх ба зарим тохиолдолд хоёулаа нэгэн зэрэг бичигддэг.

Сэтгэцийн илэрхийлэлийг тооцоолох логик.

Логик ойлголтын шилжилт хөдөлгөөн нь шинж тэмдэг бүхий арьсаар хүлээн зөвшөөрөгдсөн логикоор өгөгддөг. Та хоёрыг шууд харж болно - гадна болон гадна. Эхлээд бүх тохиргоо, параметрүүдийг дараа нь шалгаж үзээрэй. Үгүй бол бүх параметрүүдийг харгалзан үзэх бөгөөд "үнэн" тэмдэглэгээ нь дараагийн командыг заана. ABO-тай ажилладаг.

"салаа".
Би бухимдаж байнаҮүнийг тооцоолох үйл явцын олон боломжит хувилбаруудаас аль нэгийг нь сонгосон алгоритм гэж нэрлэдэг. Арьс ширний зам гэж нэрлэдэг ухаалаг алгоритм.

Алгоритм нь юу болж байгааг тархины урвуу үйл ажиллагаа байгааг мэддэг. Оюун ухааныг шалгах хамгийн түгээмэл арга бол оюун ухааны оператор if ашиглах явдал юм.

хэрэв та бүрэн эсвэл тэгш бус салаа хэлбэрийг сонгох боломжтой бол.

Тэгш бус сэрээтэй үед Умоваүнэн тэгвэл Блокийн ажиллагаа1 vykonuetsya, якчо Умоватэгвэл хибно Блокийн ажиллагаа1 бүү эргэлз.

Дахин нэг сэрээ байна Умоваүнэн, тэгвэл тохирно Блокийн ажиллагаа1 , эс бөгөөс энэ нь дуусна Блок үйл ажиллагаа 2 .

Блокийн ажиллагаа нэг үйл ажиллагаанд нэгтгэж болно. Энэ тохиолдолд блокыг хязгаарласан хэлбэртэй нуман хаалга байх албагүй.

C дээр өгзөг:

1
2
3
4
5
6
7
8
9
10
11
12
13
14


#оруулна
int main()
{
int k; // Би үүнийг байнга хэлэх болно k
printf("k="); // Мэдэгдэл харуулна
scanf("%d", &k); // k утгыг оруулна
хэрэв (k >= 5) // хэрэв k>5
printf("%d >= 5", k); // "VALUES > = 5" харуулах
өөрөөр // өөрөөр
printf("%d< 5" , k); // "VALUE" харуулах< 5"
getchar(); getchar();
буцаах 0;
}


Виконаннигийн үр дүн

if хэллэгийг үүрлэж болно.

C дээр өгзөг:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

#CRT_SECURE_NO_АНХААРУУЛГА-г тодорхойл // ашиглах боломжтой scanf
#оруулна
#оруулна
int main() (
int түлхүүр;
систем("chcp 1251");
систем("cls"); // Консолын цонхыг цэвэрлэ
printf();
scanf("%d", &түлхүүр);
хэрэв (түлхүүр == 1) // энд түлхүүр = 1
хэвлэхf( "\nVibrano эхний зүйл"); // Мэдэгдэл харуулна
өөр бол (түлхүүр == 2) // үгүй ​​бол түлхүүр = 2
хэвлэхf( "\nӨөр зүйл сонгогдлоо"); // Мэдэгдэл харуулна
өөрөөр // өөрөөр
printf(); // Мэдэгдэл харуулна
getchar(); getchar();
буцаах 0;
}

Виконаннигийн үр дүн





if хэллэгийн үүрлэсэн хэлбэрийг хасах үед else сонголт нь үлдсэн if хэллэгтэй холбогдоно. Та else сонголтыг тэргүүлэх if хэллэгтэй холбох шаардлагатай үед дотоод сэтгэлийн мэдэгдэл буржгар гарт гарч ирнэ.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

#CRT_SECURE_NO_АНХААРУУЛГА-г тодорхойл // ашиглах боломжтой scanf
#оруулна
#оруулна // Використаны функциональ системийн хувьд
int main() (
int түлхүүр; // түлхүүрийг бүхэлд нь дууга
систем("chcp 1251"); // Оросын консол руу очно уу
систем("cls"); // Консолын цонхыг цэвэрлэ
хэвлэхf( "1 эсвэл 2 дугаарыг оруулна уу:");
scanf("%d", &түлхүүр); // Өөрчлөх түлхүүрийн утгыг оруулна уу
хэрэв (түлхүүр != 1) ( // хэрэв түлхүүр 1-тэй тэнцүү биш бол
if (key == 2) // учир нь түлхүүр нь 2-оос дээш настай
хэвлэхf( "\nӨөр зүйл сонгогдлоо"); // Мэдээллийн хураангуй
} // Хэрэв түлхүүр нь 1 биш, 2 биш бол юу ч харагдахгүй
өөр // үгүй ​​бол түлхүүр нь 1-ээс дээш настай
хэвлэхf( "\nVibrano эхний зүйл"); // Мэдээллийн хураангуй
getchar(); getchar();
буцаах 0;
}


Виконаннигийн үр дүн





Гурвалсан үйл ажиллагаа

Гурвалсан сэтгэцийн үйл ажиллагааЭнэ нь 3 аргументыг авч, эхний операндын заасан логик илэрхийллийн утгаас хамааран өөр болон гурав дахь операндыг эргүүлнэ. Хэлний гурвалсан үйлдлийн синтакс

Умова? Вираз1: Вираз2;


Энэ нь юу гэсэн үг вэ? Умова, дараа нь гурвалсан үйлдэл эргэлддэг Вираз1, өөр тохиолдолд - Вираз2 .

Сэтгэцийн үйлдлүүд шиг гурвалсан үйлдлүүдийг үүрлэж болно. Оруулах ажиллагааны хувьд дугуй гарыг ашигладаг.

Гурвалсан үйлдлүүдийн илүү сайн жишээг нэг дороос танд хүргэж болно

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

#CRT_SECURE_NO_АНХААРУУЛГА-г тодорхойл // ашиглах боломжтой scanf
#оруулна
#оруулна // Використаны функциональ системийн хувьд
int main() (
int түлхүүр; // түлхүүрийг бүхэлд нь дууга
систем("chcp 1251"); // Оросын консол руу очно уу
систем("cls"); // Консолын цонхыг цэвэрлэ
хэвлэхf( "1 эсвэл 2 дугаарыг оруулна уу:");
scanf("%d", &түлхүүр); // Өөрчлөх түлхүүрийн утгыг оруулна уу
түлхүүр == 1? хэвлэхf( "\nVibrano эхний зүйл") :
(түлхүүр == 2 ? printf( "\nӨөр зүйл сонгогдлоо") :
хэвлэхf( "\nЭхний болон бусад зүйлсийг сонгоогүй"));
getchar(); getchar();
буцаах 0;
}

Шилжүүлэгч оператор (олон сонголтын оператор)

if мэдэгдэл нь хоёр сонголтоос сонгох боломжийг танд олгоно. Хэд хэдэн сонголтын аль нэгийг сонгохын тулд та if хэллэгийг ашиглах хэрэгтэй. Энэ аргын тусламжтайгаар та шилжүүлэгч операторыг ашиглаж болно.

Бүртгэлийн маягт

шилжүүлэгч (Цилий Вираз)
{
Тогтмол1 тохиолдол: Блокийн ажиллагаа1;
завсарлага;
Тогтмол2 тохиолдол: Блокийн ажиллагаа2;
завсарлага;
. . .
case Constant: Блокийн ажиллагаа;
завсарлага;
анхдагч: Боловсруулах үйл ажиллагааны блок;
завсарлага;
}

Шилжүүлэгч операторыг дараах байдлаар бичнэ.

  • тооцоолно ЦилийВираз шилжүүлэгчийн мэдэгдлийн гар дээр;
  • Устгах үед утгууд нь тэмдэглэгээтэй нийцдэг ( Тогтмолууд ) тохиолдлын сонголтуудад бүхэл тооны вирусын тооцоолсон утгатай тохирч буй тэмдэг олдох хүртэл зэрэгцүүлэх ажлыг гүйцэтгэнэ;
  • санал нэг байна Блокийн ажиллагаа хэрэг;
  • Хэрэв тохирох тэмдэг олдохгүй бол энэ нь харагдана Угаах үйл ажиллагааны блок өгөгдмөл сонголт дахь тайлбар.

Өгөгдмөл хувилбар нь өдөр бүр байж болох тул та өдөр тутмын үйл ажиллагаагаа дэмий үрэх шаардлагагүй болно.
Сонголт завсарлага; Шилжүүлэгч мэдэгдлээс гарч, түүнийг дагасан оператор руу шилжих нь үр дүнтэй байдаг. Завсарлага сонголт нь энэ шошготой тэмдэглэгдсэнээс эхлээд анхдагч сонголтын хэллэгээр төгссөн бүх мэдэгдлийг агуулна.

Тохиолдлын сонголтууд нь бүхэл тоон төрлийн байж болно (тэдгээр нь тэмдэгт байж болно).

Ухаалаг операторуудОюун санаанаасаа хамааран эдгээр болон програмын бусад хэсгийг засварлахыг танд зөвшөөрнө үү. Жишээлбэл, програм нь ярианы хувьсагч x ба z-г ашигладаг бөгөөд даалгаврын үе шат бүрт z=max(x, y)-ийг тооцоолох шаардлагатай бол үр дүн нь z:= даалгаварын операторын үр дүн болно. x эсвэл томилох оператор z :=y. x ба y хувьсагчийн үлдсэн утгууд нь урьд өмнө тодорхойгүй байсан боловч тооцооллын явцад тодорхойлогддог тул програм нь зөрчлийг томилох оператор руу шилжүүлэх ёстой. Гэсэн хэдий ч тэдний нэг нь үнэхээр дуусч магадгүй юм. Тиймээс, хөтөлбөрт ямар тохиолдолд өөр оператор сонгох шаардлагатай байгаа тухай тэмдэглэл байх болно.

Энэ илэрхийлэлийг x>y харгис харьцаагаар байгалийн жамаар томъёолж болно. Энэ хамаарал нь x ба y-ийн яг утгуудад хүчинтэй тул (энэ нь үнэн утгыг авдаг) тооцоололд z:=x операторыг сонгох шаардлагатай. Өөр тохиолдолд z:=y операторыг сонгох шаардлагатай (х=y-ийн хувьд энэ нь ижил оператор тул z:=y операторын сонголт нь зөв үр дүнг өгөх болно).

Хэлэлцэж буй ижил төстэй тооцооллын процессыг бий болгохын тулд хэл дээр програмчлал байдаг ухаалаг операторууд. Үүнийг дахин харцгаая тархины операторПаскаль:

хэрэвБ тэгээд S1 өөр S2

Энд хэрэв(якшо), тэгээд(тэдгээр) би өөр(өөрөөр бол) үйлчилгээний үгээр, У- Илүү логик илэрхийлэл, гэхдээ S1і S2- Операторууд.

Паскаль хэл дээрх ийм сэтгэцийн операторын томьёог S1 эсвэл S2 операторуудын аль нэгнийх нь тэмдэг болгон бууруулсан бөгөөд энэ нь дараагийнхаас өмнө багтсан болно: хэрэв оюун ухааны операторт заасан бол түүнийг нэгтгэнэ (логик илэрхийлэл В. үнэн утгыг авна), дараа нь S1 операторыг залгаж, нөгөө тохиолдолд S2 операторыг холбоно.

z = max(x, y) -ийг тооцоолох үндсэн ажлыг шийдвэрлэх алгоритмыг маягтаар зааж өгч болно. Паскалийн сэтгэцийн оператор

хэрэв x>y тэгээд z:= x өөр z:=y

Алгоритм боловсруулахдаа тооцоолох үйл явцын эхний үе шатанд зөвхөн оюун ухаанаа өөрчлөх шаардлагатай байдаг бөгөөд хэрэв энэ нь өөрчлөгдөхгүй бол энэ үе шатанд бүх зүйлийг орхих шаардлагагүй байдаг. өдөр. Ийм нөхцөл байдлын хамгийн энгийн жишээ бол хувьсагчийн урсгалын утгыг энэ утгын үнэмлэхүй утгаар солих явдал юм: x<0, то необходимо выполнить оператор присваивания x:= - x; если же x>=0, тэгвэл яг x-ийн утгыг өөрчлөхгүйгээр алдаж болно. Энэ үе шатанд ямар ч үйлдлийг дуусгах шаардлагагүй.

Ийм нөхцөлд Паскаль хэл дээр сэтгэцийн оператор бичих хэлбэрийг гараар богиносгодог.

хэрэвБ тэгээдС

Виконаннигийн дүрэм богиносгосон Паскалийн сэтгэцийн операторилэрхий: якчологик илэрхийллийн утга үнэн, Тэр S операторыг холбосон; В өөрөөрӨөр арга хэмжээ байхгүй.

Та хооронд оюун санааны операторт Pascal програмчлалын байна тэгээді өөр, мөн дараа нь өөрСинтакс нь дор хаяж нэг оператортой байж болно. Хэрэв тодорхой (эсвэл гэрээгүй) оюун ухаанаар үйлдлүүдийн дарааллыг тодорхойлох шаардлагатай бол тэдгээрийг нэг агуулахын оператор болгон нэгтгэх шаардлагатай. операторын нум дээр энэ үйлдлийн дарааллыг зохион байгуул эхлэх... төгсгөл (энэ бол чухал!). Жишээлбэл, x дээр< y надо поменять местами значения этих переменных, то тархины операторПаскалийн удахгүй болох ёслолд бичигдэх болно:

хэрэв x тэгээдэхлэх r:=x; x:=y; y:=r төгсгөл

Богиночилсан хэлбэр байгаа эсэх Паскалийн сэтгэцийн операторОнцгой байдлын үед маш болгоомжтой байхыг шаарддаг. Жишээлбэл, ухаалаг оператор

хэрэв B1 тэгээд хэрэв B2 тэгээд S1 өөр S2

хоёр өөр тайлбарыг зөвшөөрдөг бололтой:

  • сарлаг Паскалийн шинэ сэтгэцийн оператороюун ухаан

хэрэв B1 тэгээд эхэл
хэрэв B2 тэгээд S1 төгсгөл
өөр S2

  • сарлаг Паскалийн товчилсон оператороюун ухаан

хэрэв B1 тэгээд эхэл
хэрэв B2 тэгээд S1 өөр S2 төгсгөл

Паскалийн дүрмийн цаана өөр нэг тайлбар бий. арьсан үгийг хүндэл өөрэхний үгтэй төстэй тэгээд. Боломжит зүсэлт, үл ойлголцлын өвөрмөц байдлын үүднээс ийм бүх тохиолдолд гадил жимсний хэлбэрийг тодорхой харахыг зөвлөж байна. Паскалийн сэтгэцийн оператороператорын өрөөнд нум авах арга.

Паскал сонгох оператор

Паскал сонгох операторҮргэлжлүүлэх боломжтой олон програмын аль нэгийг сонгох боломжийг танд олгоно. Сонголтод нөлөөлдөг параметр нь сонголтын түлхүүр юм - ямар ч дараалсан төрлийн.

Паскалийн сонголтын операторын бүтэц дараах байдалтай байна.

Кейс<ключ_выбора>-ийн
<список_выбора>
Төгсгөл

Энд case, of, else, end– нөөцлөгдсөн үгс (vыpadok, өөрөөр хэлбэл, төгсгөл);

  • <ключ_выбора>- Ордин төрлийн вирус;
  • <список_выбора>- нэг буюу хэд хэдэн загварын төрөл:
    • <константа_выбора>: <оператор>;
  • <константа_выбора>- viraz-тэй ижил төрлийн тогтмол
    • <ключ_выбора>;

<операторы>- Илүү олон Паскал операторууд.

Паскал сонгон шалгаруулах оператор ийм байдлаар ажилладаг. Вирусын үнэ цэнийг эхнээс нь тооцдог<ключ_выбора>, дараа нь дарааллаар<список_выбора>Тооцоолсон утгатай тэнцүү тогтмолыг ол. Олдсон тогтмолыг дагаж байгаа операторыг сонгох ба дараа нь сонгосон оператор ажлыг дуусгана. Сонголтын жагсаалтад сонголтын түлхүүрийн тооцоолсон утгатай тохирох тогтмол утга байхгүй бол утгыг else үгийн дараа орох операторуудад дамжуулна. Өөр хэсэг<оператор_иначе>орхигдуулж болно, дараа нь шаардлагатай тогтмолыг сонгох жагсаалтад юу ч байхгүй тул шаардлагатай үйлдлүүдийг сонгоход юу ч байхгүй бөгөөд сонгох оператор зүгээр л ажлаа дуусгадаг.

Жишээлбэл, жилийн өдрийн дугаарыг дэлгэцэн дээр харуулах програмыг нэгтгэж үзье.

Wikoristanny Case-аас өгзөг хөтөлбөр

dni_nedeli програм;
Var n: байт;
Эхлэх
Readln(n);
Кейс n -ийн
1: writeln("Даваа гараг");
2: writeln("Мягмар");
3: writeln("дунд");
4: writeln("дөрөв");
5: writeln("Баасан");
6: writeln("Бямба гараг");
7: writeln("долоо хоног");
өөр writeln("тоотой өдөр", n,"nі");
  Төгсгөл;
Төгсгөл.

Сонгох жагсаалтын бүх тогтмолууд өөр байж болно гэдгийг санаарай.

Сонгон шалгаруулалтын жагсаалтын аль ч операторыг комагаар тусгаарласан нэг биш, олон сонголтын тогтмолыг оноож болно. Тухайлбал, “y” эсвэл “Y” тэмдэгтүүдийн аль нэгийг оруулснаар дэлгэц дээр “So” гарч ирэх, “n” эсвэл “N” оруулахад “Ni” гэсэн үг гарч ирэхэд програм эхэлнэ.

Використантай програмуудын жишээ Олон өөрчлөлттэй тохиолдол

Var ch: char;
Эхлэх
Readln(ch);
Кейс ch of
N, n: writeln("Тийм");
Y, y: writeln("Ні");
Төгсгөл;
Төгсгөл.

Мэдээжийн хэрэг, авч үзсэн ихэнх програмуудыг нэмэлт оролт эсвэл дараалан өргөжүүлсэн сэтгэцийн операторуудаар бичиж болно, гэхдээ ижил төстэй ажлуудад операторын сонголт илүү хялбар байдаг. Сэтгэцийн операторын сонголтын операторын гол ач холбогдол нь оюун ухааны операторт оюун ухааныг нэг нэгээр нь шалгадаг бөгөөд түлхүүрийн утгыг сонгох операторт сонголт нь аль нэг боломжуудыг шууд илэрхийлдэг.

Лабораторийн робот

Сэдэв дээр: " Оюун санааны оператор хэрэв - өөр "


1. Зориулалтын синтакс

Оюун санааны оператор if-else нь одоогийн программуудын энэ цэг дээр бий болсон оюун ухаанд суурилсан програмуудын роботуудыг шууд сонгоход үйлчилдэг.

Сэтгэцийн операторыг бүртгэх ердийн маягт

хэрэв ( <условие>)

<блок операторов 1>;

<блок операторов 2>;

Виконаннигийн үед Якшчо<условие>Програм нь хяналтыг шилжүүлдэг нь үнэн<блоку операторов 1>мөн эхний операторт хилийн хооронд if-else бүтцийг өгсөн. Үүнтэй хамт<блок операторов 2>бүү эргэлз. Үгүй бол ямар ч байсан<условие>hybno, vikonivatsya<блок операторов 2>, А<блок операторов 1>алгассан. Өндөр түвшний блок диаграмм


If-else хэллэгийн синтакс дахь гаруудын хэлбэрийг текстэн дэх 1, 2-р блокуудыг харагдуулахын тулд ашигладаг.Хөтөлбөрийн кодыг уншихад хялбар болгохын тулд хааж, нээгддэг гарыг өргөтгөж үзээрэй. Буржгар гарны дунд текстийг тэмдэглэхийн тулд баруун гараа өсгийн байрлал руу шилжүүлэх шаардлагатай.

Үнэн хэрэгтээ if-else хэллэгт "үнэн" эсвэл "худал" (үнэн - худал) утгыг үүсгэдэг зарим логик илэрхийллүүд байж болно. Бүхэл ба идэвхтэй тоог тэгшлэх хамгийн энгийн үйлдлүүдийн утгыг агуулсан хүснэгтийг доор харуулав

өгзөг 1.Цельсийн хэмжүүрээр TC (°C) хэмийг Кельвиний хэмжүүрээр T K (K) хэмд шилжүүлэх программ бичих шаардлагатай. TC утгыг хэрэглэгч гараас оруулна.

Шийдвэр. Vikorist-ийн өөрчлөлтийн томъёо нь T K = T C - T 0 de T 0 = -273 ° C - үнэмлэхүй тэг температур юм. Оруулсан T C нь T 0-ээс бага учир буруу байна.

// – Цельсийн Кельвинс –

#оруулна // дамжуулах I/O

#оруулна // консолын оролт гаралтын хувьд (авах)

#pragma argused

floatT0 = -273; // T0 дуугарч, эхлүүлсэн

floatTc, Tk; // чанга яриа Tc ба Tk

cout<<» VvediteTc=»; // выводим приглашение

cin>>Tc; // Powered by Tc

хэрэв ( Tc < Т 0) // оюун ухаанаа шалгаарай

cout<<» Tc < T0!»; // условие истинно, выводим на

} // анхааруулгын тухай мэдэгдлийн дэлгэц

Tk = Tc-T0; // Умова хибна, розраховуйэмо

cout<< «Tk =» << Tk; // Tk и выводим на экран

getch(); // Түлхүүрийг дарах хүртэл тайрч авна

буцаах 0; // Програмаа дуусгах

Дараах кодыг бичээд, хөрвүүлж, програмаа өөрийн дансанд ажиллуул. T C-ийн өөр өөр утгатай ажлын үр дүнг дагаж мөрдөнө.

2. Богино бичлэг хийх сонголтууд

Програмчлагдсан үед үүссэн оюун ухаанд үйлдэл хийх шаардлагатай нөхцөл байдал өдөр бүр байдаг (жишээлбэл, банкны нягтлан бодогчоос буруу гаралтын өгөгдлийг арилгах үед та програмыг өөрчлөх, гарах тухай мэдэгдлийг харах болно). Заримдаа C++ программуудад else блок бүхий оюун ухааны операторын товчлолын оруулга байж болно. Ийм оруулгын албан ёсны хэлбэр нь

хэрэв ( <условие>)

<блок операторов>;

Энд оюун санааны үнэнд хүрсний дараа эмчилгээг буржгар гарт операторуудын блок руу шилжүүлдэг. Сэтгэл зөөлөн байвал блок алгасдаг. Энэхүү блок диаграмм нь нэг "гар" -ын урд хэсэгт хуваагдана.


Хэрэв if эсвэл else блокуудын аль нэг нь зөвхөн нэг оператороос бүрддэг бол өөр сонголт хурдан гацах болно. Энэ төрөл нь блокыг зааглах хэлбэрийн гаргүй байх боломжийг олгодог.

хэрэв ( <условие>)

оператор 1;

оператор 2;

Энд 1 ба 2-р операторууд нь зөвхөн нэг эгнээний энгийн арифметик үйлдлүүд төдийгүй оролт-гаралтын операторууд төдийгүй олон эгнээний нарийн төвөгтэй бүтэц, жишээлбэл, бусад (үүрлэсэн) операторууд эсвэл давталтын операторууд байж болно, эдгээрийг доор авч үзэх болно. юу?

3. Оруулсан операторууд

Оюун санааны операторуудыг тэдний хэрэгжүүлж буй програм хангамжийн алгоритмаас хамааран нэг нэгээр нь хөрөнгө оруулалт хийж болно. Тэдний "хөрөнгө оруулалтын" хангалттай түвшинг зөвшөөрдөг.

Хэрэв нэг if-else хэллэгийг нөгөөд оруулсан бол эхний хэллэгийг нөгөөд оруулна Би тайлбарлая, зөвхөн хэрэв эсвэл өөрөөр биш. Зэргэлдээх блокуудыг байнга давхцуулах нь хүлээн зөвшөөрөгдөхгүй.

Дээрх аппликейшн нь нөгөө рүү оруулах хувь нэмрийг оруулах операторуудын аль нэгийг (том үсгээр харуулсан) агуулдаг. Б) дотоод операторын else блок нь гадаад операторын if болон else блокуудтай ихэвчлэн давхцаж байгааг уучлаарай.

өгзөг 2.Користувач гарнаас a, b, c гэсэн гурван бүхэл тоог оруулна. Дэлгэц дээр аль болох олон тоог харуулах шаардлагатай.

Шийдвэр. Дараагийн блок диаграмм дээрх уншилтыг хамгийн их тохируулах боломжтой алгоритмуудын нэг.


Уг схемийг нэмэлт if-else хэллэгүүдийг ашиглан программчлан хэрэгжүүлж болно

// - 3 тооноос хамгийн томыг нь сонгоно -

#оруулна

#оруулна

#pragma argused

int main (int argc, char* argv)

хөвөх a, b, c; // Бид гурван өөрчлөлтийг зарлаж байна

cout<< «Vvedite a –»; // вводимзначения a, b, c

cout<< «Vvedite b –»;

cout<< «Vvedite c –»;

хэрэв (a>b) // хэрэв a > b

хэрэв (a> c) // хэрэв a> c

cout<<» max = «<

өөрөөр // өөрөөр, тэгвэл. якчо а<= с

cout<<» max = «<

өөрөөр // өөрөөр, тэгвэл. якчо а<= b

хэрэв (b>c) // хэрэв b > c

cout<<» max = «<

өөрөөр // өөрөөр, тэгвэл. якчо б<= а

cout<<» max = «<

getch(); // Аливаа товчлуур дарах хүртэл хатаана

Түүний алгоритм болон програм хангамжийн хэрэгжилтийн блок диаграммыг зур. Гурван тооны хамгийн багыг олохын тулд алгоритм болон програмын кодыг өөрчил.

4. Агуулахын логик

if-else хэллэгийн сэтгэхүйг хоёр тоон утгыг энгийн тэгшитгэх байдлаар илэрхийлж болно. Жишээлбэл, математикт "а" хэлбэрээр бичигдсэн өргөн тархсан оюун ухаан ч гэсэн.< b < c». Запись означает, что значение b лежит в диапазоне между значениями a и c. В программе такие условия должны быть переформулированы с использованием простых операций сравнения и логических операций «И», «ИЛИ», «НЕ»

Зокрема, вираз "а< b < c» сформулируем как «a меньше b, и b меньше c». На С++ это будет записано как (a

Хэрвээ

өгзөг 3.Хоосон даамын самбар дээр цагаан ломбард (n, m) байрлалд, хар бишоп (k, l) байрлалд байна. Энд эхний координат нь тоглоомын үе шатны дугаар, нөгөө нь эгнээний дугаар юм (энэ нь 1-ээс 8 хүртэлх зайд өөрчлөгдөнө). Гурав хүртэлх хувилбарыг ашиглан одоогийн нөхцөл байдлыг үнэл

Пишак халдлагад өртөж байна

Заан халдлагад өртөж байна,

Заан, цурхай хоёр гай болж байна.

Шийдвэр. Ломбард өөртэйгөө хамгийн ойр байрлах хоёр байрлал руу диагональ урагш довтлох боломжтой, харин бишоп эсрэг чиглэлд диагональуудыг нь зөрчиж дайрдаг гэдгийг санацгаая. Одууд оюун ухаанаа томъёолж чаддаг

· “((k = n+1) ABO (k = n-1)) I (l = m+1)” - пишийн бишоп руу дайрах,

· “(k+l = n+m) АВО (к-л = н-м)” - бишопын ломбард руу дайрах,

· орон гэргүй хүмүүсийн хувьд өөр өөр тоо.

// - Шахын найруулга -

#оруулна

#оруулна

int main (int argc, char* argv)

cout<<«Koordinaty beloi peshki:«<

cout<<» vvedite n –»;

cout<<» vvedite m –»;

cout<<«Koordinaty chernogo slona:«<

cout<<» vvedite k –»;

cout<<» vvedite l –»;

if(((k==n+1)||(k==n‑1))&&(l==m+1)) // бишоп руу дайрвал

cout<

if((k+l==n+m)||(k-l==n-m)) // ломбард руу дайрсан

cout<

өөрөөр // халдлага байхгүй

cout<

Бид Pascal програмчлалын хэлийг үргэлжлүүлэн ашигладаг. Энэ нь хэрхэн ажилладаг алгоритмын дизайныг харцгаая umova (rozgaluzhennya). Энэхүү нийтлэл нь шинэхэн програмистууд болон компьютерийн шинжлэх ухааны уншигчдад зориулагдсан болно. Дараах статистик нь мэдлэгээ бататгаж, өөрийгөө баталгаажуулахад тусална.

Оюун санааны алгоритмын загвар нь эдгээр нөхцөл байдалд сонгогддог, хэрэв бид сонголттой тулгарвал: үүнийг энэ замаар эсвэл өөрөөр хий.

Умова үсэрч байна:

  1. Неповне
  2. Повне

Неповна Умова

Байгалийн бус оюун ухааны блок диаграмм дараах байдалтай байна.

Неповна Умова

ЯКШО ТЭГВЭЛ ЗӨВ ГЭЖ БОД ВИКОНАЯ ДИЯ, өөрөөр ҮЗЭХ ЮМ БАЙХГҮЙ

Паскаль хэлээр алгоритмын загвар дараах байдалтай байна.

Хэрэв оюун ухаан байвал үйлдэл хийх;

Үүний дараа ямар үнэ цэнэтэй гэж та бодож байна вэ? ХЭРВЭЭүнэхээр ТЭГВЭЛ.

Юу нь болохгүй байгаа юм бэ?

Умова бол үнэн эсвэл худал байж болох вираза юм. Умова логик операторуудыг ашиглах үүрэгтэй <, >, =, <=, >=, <>(холбоотой биш).

Жишээлбэл:

хэрэв a=7 байвал writeln("Сайн уу!");Төгсгөл.

Өөрчлөлтийн утгыг оруулсны дараа анэг 7 , дараа нь бид дэлгэцэн дээрх үгийг харах болно Витання!Хэрэв тийм биш бол дэлгэц дээр юу ч харагдахгүй.

Өөр нэг жишээг харцгаая:

var a:integer; readln(a) эхлэх; хэрэв a=7 байвал writeln("Сайн уу!"); writeln("Төгсгөл хүртэл");Төгсгөл.

Бид 7 дугаарыг оруулахад дэлгэцэн дээр юу харагдах вэ? Побачимо:

Витання!
Зустрича хүртэл

10-ын тоог оруулахад дэлгэцэн дээр юу харагдах вэ?

Зустрича хүртэл

Яагаад ийм? Чому Зустрича хүртэл ямар ч залуугийн дэлгэцэн дээр гарах уу? Баг

writeln("Төгсгөл хүртэл");

битгий санаа зовХэрэв-Тэгээд бүтэц рүү

var a:integer; readln(a) эхлэх; хэрэв a=7 байвал writeln("Сайн уу!"); writeln("Төгсгөл хүртэл"); / / оюун ухаан цэнхэр өнгөөр ​​гэрэлтдэгТөгсгөл.

Гомдолтой үйлдлүүд If-Then бүтцийн өмнө байхаар үүнийг яаж хийх вэ?

Үүнийг ийм нэрээр зохицуулах шаардлагатай байна операторын гар: эхлэх ... төгсгөл;

var a:integer; readln(a) эхлэх;

хэрэв a=7 бол Эхлэх writeln("Сайн уу!");

Writeln("Үндэслэл рүү");
Төгсгөл;

Төгсгөл.
Одоо бид 10-ын тоог оруулбал дэлгэцэн дээр өөр юу ч байхгүй болно.

Эвхэгддэг (эвхэгддэг) оюун ухаан

Заримдаа би сайхан сэтгэлтэй байдаг. Энэ нугалахад логик холбоосыг ашигладаг: болонэсвэл өөр эсвэл.

  • Якщо ми використовуйемо болон,тэгвэл бүх энгийн оюун ухаан үнэн бол сэтгэлийн агуулах үнэн болно.
  • Якщо ми використовуйемо эсвэл,тэгвэл эгэл оюун ухаан үнэн байхыг хүсэвээс сэтгэлийн агуулах үнэн болно.

Жишээлбэл:

a>7і а<15 Паскаль хэл дээр бүртгүүлнэ үү

(a>7) ба (а<15)

tobto. Гэм буруутай сэтгэлийг гомдоох нь тэр дороо шийдэгдэх бөгөөд ингэснээр сэтгэлийн агуулах үнэн болно.

(a=7) эсвэл (a>15)

Оюун санааны агуулах нь үнэн байх болно, учир нь: эсвэл a=7, эсвэл a>17.

Завдання:

If-Then бүтцийг ашиглан оруулсан гурван тооны хамгийн их дундажийг ол.

Шийдвэр

var a, b, c:бүхэл тоо; readln(a) эхлэх; readln(b); readln(c); хэрэв (a>b) ба (a>c) тэгвэл writeln("тоо", a, "хамгийн их"); хэрэв (b>a) ба (b>c) тэгвэл writeln("тоо", b, "хамгийн их"); if (c>a) ба (c>b) then writeln("тоо", c, "хамгийн их");Төгсгөл.

Повна Умова

Бүхэл бүтэн схем дараах байдлаар харагдаж байна.

IF umova ТЭГВЭЛ diu_1 БУСДАА diu_2;

  • Якшчо сэтгэл нь үнэн, дараа нь үгийн ард зогсох үйлдэл дуусна Дараа нь.
  • Якшчо Умова хибна, дараа нь үгийн ард зогсох үйлдэл дуусна Өөрөөр.

Та яаж жүжиглэдэг, яаж шийддэг, энэ талаар ямар бодолтой байдаг, ямархуу байдаг вэ? — Операторын зэвсгийг ялж байна.

хэрэв Умова тэгээд Эхлэх дия; дия;............... Төгсгөл өөрЭхлэх дия; дия; ................ Төгсгөл;

(өөрийн өмнө цэг тавьж болохгүй)

Бие даасан ялагчийн танхим:

  1. Худалдан авалтын дүнг нэмж оруулсан болно Акарбованцив. Якшчо А 1000 гаруй рубль, дараа нь 15% -иар буурах төлөвтэй байна. Дэлгэц дээр хямдралтай худалдан авалтын дүн эсвэл хөнгөлөлт эдлэх боломжгүй худалдан авалтын талаарх мэдээллийг харуулна.
  2. Энэ нь дөрвөлжин гадас, дөрвөлжин хэлбэртэй харагдаж байна. Ач холбогдол:
    • Дөрвөлжинд хэр их багтах вэ?
    • Хэдэн квадрат багтах вэ?
  3. Ач холбогдол, чи бол тоо юм Адугаарын огноо б
  4. Гараас оруулсан тоо (-5;3) интервалд байгаа эсэхийг шалгана уу.
  5. Хоёр оронтой тоо өгөгдсөн. Ач холбогдол:
    • чи шинэ дугаар 3 хүртэл оруулна уу
    • чи шинэ дугаар хүртэл оруулна уу А
  6. Энэ нь a, b, c хоёр талтай трикупус гэсэн үг юм
  7. Гурван өөр тоо өгсөн. Тэдний дунд ач холбогдол, сарлагийн саваг (эхний, бусад, гурав дахь)
    • ихэнх нь
    • хамгийн багадаа
    • є дунд

(жагсаалтыг удахгүй шинэчлэх болно)

Ажиллахгүй