ბლუზები და მაისურები

Იგივე მნიშვნელობა. ერთი და იგივე რაოდენობის განმეორებით გაზომვამ შეიძლება სხვადასხვა მნიშვნელობების მიცემა.

ნიშნის თავად განსაზღვრებიდან უკვე ცხადია, რომ მისი მთავარი მახასიათებელია მისი თანდაყოლილი წარმომადგენლობითი ფუნქცია: იყოს რომელიმე (სპეციფიკური) ობიექტის მოცემულ ენაზე წარმომადგენლობა, ან შემცვლელი. Და ეს - მნიშვნელობანიშანი. ვერბალური ნიშნების მნიშვნელობა შეიძლება იყოს საგნები ფართო გაგებითსიტყვები - ყველაფერი, რისი ხაზგასმა და დასახელებაც შესაძლებელია, რაზეც რაღაცას ადასტურებენ ან უარყოფენ. უნდა აღინიშნოს, რომ მნიშვნელობები, უპირველეს ყოვლისა, ექსტრალინგვისტური რეალობის ობიექტებია - ბუნებრივი და სოციალური. სიტყვიერი ნიშნის კიდევ ერთი არსებითი მახასიათებელი მისი მნიშვნელობაა. მნიშვნელობაენობრივი გამოხატულება– ეს არის მასთან დაკავშირებული სიტყვიერი ფორმალიზებული ინფორმაცია, რომელიც საშუალებას გაძლევთ განასხვავოთ მის მიერ წარმოდგენილი ობიექტი (ან იმავე ტიპის ობიექტების ნაკრები) სხვა ობიექტებისგან. მაგალითად, სიტყვა "მთვარის" მნიშვნელობა - მისი ჩვეულებრივი გამოყენება - შეიძლება იყოს ისეთი დამახასიათებელი, როგორიცაა "დედამიწის ბუნებრივი თანამგზავრი"; გერმანული წინადადების „DerSchneeistwei“ მნიშვნელობა რუსულ ენაზე რეპროდუცირებულია წინადადებით „თოვლი თეთრია“; სიტყვა "ქურდობის" მნიშვნელობა არის "სხვისი ქონების ფარული ქურდობა" და ა.შ.

გაითვალისწინეთ, რომ ერთი და იგივე ობიექტისთვის (ან ობიექტების ნაკრებისთვის) შესაძლებელია განსხვავებული განმასხვავებელი მახასიათებლები. ეს ნიშნავს, რომ ორ განსხვავებულ გამონათქვამს შეიძლება ჰქონდეს განსხვავებული მნიშვნელობა, მაგრამ ერთი და იგივე მნიშვნელობა, მაგალითად, "ტოლკუთხა სამკუთხედი" და "ტოლგვერდა სამკუთხედი". იგივე მნიშვნელობის მქონე სიტყვებს (ან ფრაზებს) უწოდებენ ექვივალენტი.გარდა ამისა, ერთსა და იმავე სიტყვას შეიძლება ჰქონდეს რამდენიმე მნიშვნელობა და, შესაბამისად, გამოხატოს სხვადასხვა ცნება (მნიშვნელობა). ამ ფენომენს ე.წ პოლისემია. სიტყვების პოლისემია შეუსაბამოა სამეცნიერო და პროფესიულ კომუნიკაციაში.

მნიშვნელობა არის დამაკავშირებელი რგოლი სიტყვასა და მის მიერ აღნიშნულ საგანს შორის. ენობრივი გამოთქმისთვის მნიშვნელობის მინიჭება მნიშვნელოვანი ლოგიკური გზაა ენაში ახალი ტერმინების შემოტანისა და მასში უკვე არსებული სიტყვების მნიშვნელობების გარკვევისთვის.

როდესაც ვსაუბრობთ მნიშვნელობაზე, ჩვენ ვიგულისხმებთ სწორისიტყვებისა და ფრაზების მნიშვნელობა, განსხვავებით, მაგალითად არაპირდაპირიფიგურული ("თეთრი ოქრო", " შავი ოქრო", "დაფრინავს სიყვარულის ფრთებზე" და სხვა მეტაფორული გამონათქვამები, რომლებიც მიუთითებს ზოგიერთი საგნის, პროცესის, ფენომენის მხოლოდ გარკვეულ მსგავსებაზე სხვებთან). პირდაპირი მნიშვნელობა ასევე უნდა განვასხვავოთ "პირდაპირი" ან ეტიმოლოგიურიმნიშვნელობა ("გეოგრაფია" სიტყვასიტყვით ნიშნავს დედამიწის აღწერას, "ტყუილი" სიტყვასიტყვით ნიშნავს "საუბარს", "საუბარს" და ა.შ.).

რაც შეეხება მნიშვნელობას და მნიშვნელობას ლოგიკაში, ზოგადად მიღებულია, რომ ნიშნის მნიშვნელობა მისი მნიშვნელობის ფუნქციაა. ეს ხაზს უსვამს მნიშვნელობის განსაკუთრებულ როლს: ის ცალსახად მიუთითებს ნიშნით აღნიშნულ ობიექტზე, გონებრივად განასხვავებს მას მრავალი სხვასგან.

ნათელია, რომ საზოგადოებასაც და თითოეულ ინდივიდსაც უნდა ჰქონდეს სიტყვების გარკვეული მარაგი, რომლებიც დაკავშირებულია მათ მნიშვნელობებთან მნიშვნელობის შუამავლობის გარეშე. აქ ჩვენ გვაქვს სიტყვების გამოყენება, როგორც ნიშნები, რომელთა მნიშვნელობებთან კავშირი მყარდება სიტყვის წარმოთქმისა და მისი მნიშვნელობის ერთდროული სენსორული აღქმის პროცესში, მაგალითად, ფერი („წითელი“), სუნი, სივრცითი კონფიგურაცია. დანიშნული ობიექტი და ა.შ.

ყველამ იცის ბუნებრივი ენის გამონათქვამების დაყოფა მეტყველების ნაწილებად. ლოგიკურ „გრამატიკაში“ არის მსგავსი დაყოფა, მაგრამ განსხვავებული საფუძველზე, კერძოდ, სიტყვებით (ან ფრაზებით) წარმოდგენილი აზროვნების ობიექტების ტიპზე.

პირველი ტიპის ობიექტები მოიცავს ცალკეულ ელემენტებს. ცალკეულ ობიექტებად განვიხილავთ შემეცნების ისეთ ობიექტებს, რომელთაგან თითოეულს აქვს ინდივიდუალური განსხვავება იმავე ტიპის ობიექტებისგან: რიცხვი 7, ქორწინება A.S. პუშკინი, მთვარე და ა.შ. ცალკეული ობიექტების შესაბამისი ენობრივი გამონათქვამების ლოგიკური კატეგორიაა მარტოხელა სახელები.მათი მნიშვნელობა არის მათთან დაკავშირებული ინფორმაცია, რაც შესაძლებელს ხდის ცალსახად განასხვავოს ეს ერთი ობიექტი იმავე ტიპის მრავალი ობიექტისგან. ასეთი სახელების მაგალითები: "პეტრე 1", "რუსეთის ფედერაციის ამჟამინდელი პრეზიდენტი", "რომანის ავტორი "ევგენი ონეგინი", "ნაცისტურ გერმანიაზე გამარჯვების 66 წლისთავის აღნიშვნა" და ა.შ. ცალკეული სახელები იყოფა აღწერილობითი (კომპლექსური)და შემდეგ არააღწერითი (მარტივი)სახელები. მარტივი (არააღწერითი) სახელების მაგალითებია სიტყვები "ევერესტი", "Y.A." გაგარინი“, რთული (აღწერითი) სახელების მაგალითებია „პირველი კოსმონავტი“, „ევროპის უდიდესი მდინარე“.

მეორე ტიპის ობიექტები არის ობიექტების თვისებები და მათ შორის ურთიერთობა. ჩვენ დავარქმევთ გამონათქვამებს, რომლებიც წარმოადგენენ ასეთ ობიექტებს ენაში უნივერსალიები. უნივერსალთა მაგალითები: სიტყვა „მაგიდა“ დებულებაში „ეს მაგიდა მრგვალია“; სიტყვა "ძმა" გამონათქვამში "ივანე პეტრეს ძმაა"; სიტყვა "დანაშაული" განცხადებაში "ქურდობა დანაშაულია". უნივერსალი ხასიათდება იმით, რომ მას შეუძლია შეასრულოს ორმაგი როლი წინადადებაში: 1) იყოს ლოგიკური „პრედიკატის“ ნაწილი, ე.ი. წარმოადგენენ ობიექტებს მიკუთვნებულ ნებისმიერ თვისებას ან ურთიერთობას, როგორც მაგალითში „ეს ცხრილი არის მრგვალი"; ამ ფუნქციაში ჩვენ ვუწოდებთ უნივერსალებს პრედიკატები; 2) იყოს ლოგიკური „სუბიექტი“, ე.ი. განაცხადში წარმოადგინეთ იმავე ტიპის ობიექტების გარკვეული ნაკრების თვითნებურად აღებული ობიექტი, რომელთაგან თითოეულს აქვს შესაბამისი თვისება, როგორც მაგალითში „ნებისმიერი დანაშაულისახიფათოა საზოგადოებისთვის“. ასეთ უნივერსალებს დავარქმევთ საგნები.

მესამე ტიპის ობიექტებია სიტუაციები (საქმეების მდგომარეობა). სიტუაციების შესაბამისი ენობრივი გამონათქვამების ლოგიკური კატეგორია შედგება თხრობითი წინადადებები.მაგალითად, სიტუაციის არსებობა, როდესაც ვოლგა მიედინება კასპიის ზღვაში, რეპროდუცირებულია წინადადებაში "ვოლგა მიედინება კასპიის ზღვაში", და სიტუაცია, სადაც სამკუთხედის კუთხეების ჯამი უდრის 180 ° -ს. წინადადებაში „სამკუთხედის კუთხეების ჯამი არის 2d“ და ა.შ. სიტუაციები შეიძლება იყოს მარტივი ან რთული, იმისდა მიხედვით, თუ რამდენად მარტივია თუ რთული წინადადებები მათზე. რთული წინადადებების მაგალითები და, შესაბამისად, სიტუაციები: „თუ რიცხვი იყოფა 6-ზე, მაშინ იგი იყოფა 2-ზე“; "იანი და მამამისი იმ დროს სახლში იმყოფებოდნენ."

წინადადების მნიშვნელობა არის წინადადება. განსხვავება განაჩენსა და წინადადებას შორის (როგორც განაჩენის ნიშნის ფორმა) ჩანს, როდესაც შევადარებთ ორ წინადადებას, რომლებიც სწორი თარგმანია ერთი ბუნებრივი ენიდან მეორეზე: ნიშნების სტრუქტურები განსხვავებულია, მაგრამ მათი მნიშვნელობა იგივეა. წინადადების მნიშვნელობადა არსებობს განაჩენი. ვინაიდან საუბარია ენის ლოგიკურ ანალიზზე, წინადადების მნიშვნელობა ითვლება რომელიმე აბსტრაქტულ ობიექტად. მართალიაან ტყუილი.ამრიგად, განცხადება "ვოლგა მიედინება კასპიის ზღვაში" აღნიშნავს სიმართლეს (რადგან ეს წინადადება ასახავს სიტუაციას, რომელიც ხდება რეალობაში), ხოლო განცხადება "ვოლგა მიედინება შავ ზღვაში" არის ტყუილი (რადგან ის არ შეესაბამება რეალობამდე).

თითოეულ მეცნიერებას აქვს მისთვის დამახასიათებელი ტერმინები. შეგიძლიათ ისაუბროთ მათემატიკურ ტერმინებზე: „რიცხვი“, „გეომეტრიული ფიგურა“, „კომპლექტი“; არსებობს ფიზიკური ტერმინები, როგორიცაა "მასა", "ელემენტარული ნაწილაკი", "ელექტრული მუხტი"; ბიოლოგიაში ჩნდება ტერმინები "უჯრედი", "ორგანიზმი", "მემკვიდრეობა"; მედიცინაში - "სიმპტომი", "სინდრომი", "დაავადება"; იურისპრუდენციაში – „სამართლებრივი ნორმა“, „დანაშაული“, „ქურდობა“. ეს გამონათქვამები ქმნიან კატეგორიას აღწერილობითი ტერმინები(ლათინური აღწერა - აღწერა), რომელთაგან თითოეულის უკან დგას კონკრეტული ობიექტი, რაიმე თვისება ან იმავე ტიპის ობიექტების ნაკრები და ა.შ. ჩვენს ანალიზში აღწერითი ტერმინები სახელები და უნივერსალურია.

ნებისმიერი მეცნიერების ენაზე, გარდა აღწერითი ტერმინებისა, რომლებიც ახასიათებს საკუთარი საგნის არეალის ობიექტებს, გამოიყენება გამონათქვამები, რომლებიც გამოიყენება ყველა მეცნიერებაში. ეს მოიცავს ზოგიერთ ნაწილაკს და კავშირს, როგორიცაა "და", "ან", "თუ, მაშინ", "ეს ასე არ არის", "მაშინ და მხოლოდ მაშინ". ამ ტერმინების დახმარებით მარტივი დებულებებისაგან (განსჯებისაგან) ყალიბდება რთული (შედგენილი) განცხადებები. „ინტერდისციპლინარული“ ტერმინების ეს იგივე ჯგუფი მოიცავს გამოთქმებს „არის“ („არსი“), „ყველა“ („ყველას“), „ზოგი“ („არსებობს“), „არა“, რომელთა დახმარებით მარტივი მხოლობითი და მრავლობითი არის აწყობილი (ზოგადი და ცალკეული) განსჯა ისინი ქმნიან კატეგორიას ლოგიკური ტერმინები(ლოგიკური მუდმივები).

ლოგიკური ტერმინების გარეშე განსჯის გამოთქმა შეუძლებელია. ისინი განსაზღვრავენ მათ უკიდურესად ზოგად სტრუქტურას - ლოგიკური ფორმამათთან ასოცირდება ლოგიკური ურთიერთობები და ლოგიკის კანონები. ამ ტერმინებიდან ზოგიერთი ხანდახან გამოტოვებულია მოკლედ, როგორც განცხადებაში „ადამიანი მოკვდავია“. განაჩენების ლოგიკური ანალიზის დროს ჩვენ ვალდებულნი ვართ აღვადგინოთ ყველა ეს „ნაკლოვანება“, რაც საშუალებას გვაძლევს განვმარტოთ მათი ლოგიკური შინაარსი და გადავჭრათ საკითხი მათი ჭეშმარიტებისა თუ სიცრუის შესახებ. კერძოდ, ახლახან მოცემული განცხადება მიიღებს შემდეგ ფორმას: „ყველა ადამიანი მოკვდავია“. და მიუხედავად იმისა, რომ ასეთი რეკონსტრუქციისა და დასრულების შემდეგ ეს წინადადებები ზოგჯერ გარკვეულწილად მოუხერხებელი ხდება, მათ მიერ გამოთქმული აზრები იძენს სიცხადეს და გარკვეულობას.



ხმა აშშ (6)

არის თუ არა კომპილაციის გზა C/C++ ნუმერში დუბლიკატი მნიშვნელობების აღმოსაჩენ/აღსაკვეთად?

ხრიკი ისაა არის რამდენიმე ელემენტი, რომლებიც ინიციალიზებულია აშკარა მნიშვნელობებით .

ფონი:

მე მემკვიდრეობით მივიღე C კოდი, მაგალითად:

#define BASE1_VAL (5 ) #define BASE2_VAL (7 ) typedef num ( MsgFoo1A = BASE1_VAL , // 5 MsgFoo1B , // 6 MsgFoo1C , // 7 MsgFoo1D , //2_Es AL, // უჰ ოჰ ისევ 7... MsgFoo2B // ოჰ!

პრობლემა ის არის, რომ კოდის ზრდასთან ერთად და როგორც დეველოპერები ამატებენ მეტ შეტყობინებებს MsgFoo1x ჯგუფში, ის საბოლოოდ ავსებს BASE2_VAL-ს.

ეს კოდი საბოლოოდ პორტირებული იქნება C++-ზე, ასე რომ, თუ არის მხოლოდ C++ გადაწყვეტა (თარგის მაგია?) კარგია - მაგრამ გამოსავალი, რომელიც მუშაობს როგორც C, ასევე C++-ზე უკეთესია.

ამ შედგენის დროის შესამოწმებლად რამდენიმე გზა არსებობს, მაგრამ ისინი შეიძლება ყოველთვის არ მუშაობდეს თქვენთვის. დაიწყეთ ტოკენის მნიშვნელობის "token" ჩასმით MsgFoo2A-მდე.

typedef num (MsgFoo1A = BASE1_VAL, MsgFoo1B, MsgFoo1C, MsgFoo1D, MsgFoo1E, MARKER_1_DONT_USE, /* არ გამოიყენოთ ეს მნიშვნელობა, მაგრამ დატოვეთ აქ */. MsgFoo2A = BASE2_VAL, MsgFoo2B) FOO;

ახლა ჩვენ გვჭირდება გზა იმის უზრუნველსაყოფად, რომ MARKER_1_DONT_USE< BASE2_VAL во время компиляции. Есть два распространенных метода.

უარყოფითი ზომის მასივები

შეცდომა უარყოფითი ზომით მასივის გამოცხადებისას. ცოტა მახინჯად გამოიყურება, მაგრამ მუშაობს.

ექსტერნი IGNORE_ENUM_CHECK [MARKER_1_DONT_USE > BASE2_VAL? - თერთმეტი ];

თითქმის ყველა შემდგენელი, რომელიც ოდესმე დაწერილია, წარმოქმნის შეცდომას, თუ MARKER_1_DONT_USE მეტია BASE_2_VAL-ზე. GCC აფურთხებს:

ტესტი. c: 16: შეცდომა: მასივის ზომა 'IGNORE_ENUM_CHECK' უარყოფითია

სტატიკური მტკიცებები

თუ თქვენი შემდგენელი მხარს უჭერს C11-ს, შეგიძლიათ გამოიყენოთ _Static_assert. C11 მხარდაჭერა არ არის ყველგან, მაგრამ თქვენმა შემდგენელმა შეიძლება მხარი დაუჭიროს _Static_assert-ს, მით უმეტეს, რომ C++-ში შესაბამისი ფუნქცია ფართოდ არის მხარდაჭერილი.

_Static_Assert (MARKER_1_DONT_USE< BASE2_VAL , "Enum values overlap." );

GCC გამოსცემს შემდეგ შეტყობინებას:

ტესტი. c : 16 : 1 : შეცდომა : სტატიკური მტკიცება ვერ მოხერხდა : "მთლიანი მნიშვნელობების გადახურვა." _Static_Assert (MARKER_1_DONT_USE< BASE2_VAL , "Enum values overlap." ); ^

სხვა მიდგომა შეიძლება იყოს ისეთი რაღაცის გამოყენება, როგორიცაა gccxml (ან უფრო მოსახერხებელია pygccxml) ხელით შემოწმების კანდიდატების იდენტიფიცირებისთვის.

მე არ ვიცი არაფერი იმის შესახებ, თუ რა ავტომატურად შეამოწმებს enum-ის ყველა წევრს, მაგრამ თუ გსურთ შეამოწმოთ, რომ მომავალი ცვლილებები ინიციალიზატორებში (ან მაკროებზე, რომლებსაც ისინი ეყრდნობიან) არ იწვევს კონფლიქტებს:

შეცვლა (0) (შემთხვევა MsgFoo1A: შესვენება; შემთხვევა MsgFoo1B: შესვენება; შემთხვევა MsgFoo1C: შესვენება; შემთხვევა MsgFoo1D: შესვენება; შემთხვევა MsgFoo1E: შესვენება; შემთხვევა MsgFoo2A: შესვენება; შემთხვევა MsgFoo2B: შესვენება;)

შემდგენლის შეცდომას გამოიწვევს, თუ რომელიმე ინტეგრალური მნიშვნელობის ხელახლა გამოყენება მოხდება და შემდგენელთა უმეტესობა კი გეტყვით, რომელი მნიშვნელობა (რიცხვითი მნიშვნელობა) იყო პრობლემა.

მე არ მჯერა, რომ არსებობს ამის გამოვლენის გზა თავად ენით, იმის გათვალისწინებით, რომ არის წარმოუდგენელი შემთხვევები, როდესაც გსურთ, რომ ორი enum მნიშვნელობა იყოს იგივე. თუმცა, ყოველთვის შეგიძლიათ დარწმუნდეთ, რომ ყველა აშკარად მითითებული ელემენტი სიის ზედა ნაწილშია:

typedef ნომერი (MsgFoo1A = BASE1_VAL, // 5 MsgFoo2A = BASE2_VAL, // 7 MsgFoo1B, // 8 MsgFoo1C, // 9 MsgFoo1D, // 10 MsgFoo2A = BASE2_VAL, // 7 MsgFoo1B, // 8 MsgFoo1C, // 9 MsgFoo1D, // 10 MsgFoo1D

სანამ მინიჭებული მნიშვნელობები ზედა ნაწილშია, არანაირი შეჯახება არ ხდება, თუ რაიმე მიზეზით მაკროები არ გაფართოვდებიან იგივე მნიშვნელობებამდე.

როგორც წესი, ეს პრობლემა გადაიჭრება თითოეული MsgFooX ჯგუფისთვის ბიტების ფიქსირებული რაოდენობის მიწოდებით და იმის უზრუნველსაყოფად, რომ თითოეული ჯგუფი არ გადაიტვირთება, ის გამოყოფს ბიტების რაოდენობას. ბიტების რაოდენობის გამოსავალი კარგია, რადგან ის საშუალებას აძლევს ბიტ-ბიტი ტესტირებას განსაზღვროს შეტყობინებების რომელ ჯგუფს მიეკუთვნება. მაგრამ ამისთვის არ არის ჩაშენებული ენის ფუნქცია, რადგან არსებობს ლეგიტიმური შემთხვევები enum-ისთვის, რომელსაც აქვს ორი იგივე მნიშვნელობა:

typedef enum (ნაცრისფერი = 4, //ნაცრისფერი უნდა იყოს იგივე ნაცრისფერი = 4, ფერი = 5, //ასევე აზრი აქვს ზოგიერთ შემთხვევაში couleur = 5) FOO;

მიუხედავად იმისა, რომ ჩვენ არ გვაქვს სრული ასახვა, თქვენ შეგიძლიათ მოაგვაროთ ეს პრობლემა, თუ შეძლებთ აღადგინოთ enum მნიშვნელობები.

ეს სადღაც წერია:

რიცხვი E(A=0,B=0);

სხვაგან ჩვენ ვაშენებთ ამ მექანიზმს:

შაბლონი< typename S , S s0 , S ... s >struct first_not_same_as_rest : std :: true_type (); შაბლონი< typename S , S s0 , S s1 , S ... s >struct first_not_same_as_rest : std :: integral_constant< bool , (s0 != s1 ) && first_not_same_as_rest < S , s0 , s ... >::value>(); შაბლონი< typename S , S ... s >struct is_distinct : std :: true_type (); შაბლონი< typename S , S s0 , S ... s >struct is_distinct : std :: integral_constant< bool , std :: is_distinct < S , s ...>:: მნიშვნელობა && first_not_same_as_rest< S , s0 , s ... >::value>();

მას შემდეგ რაც გექნებათ ეს აპარატურა (რაც მოითხოვს C++11-ს), ჩვენ შეგვიძლია გავაკეთოთ შემდეგი:

static_assert(is_distinct< E , A , B >::ღირებულება, "გამოვლენილია E-ში დუბლიკატი მნიშვნელობები");

და კომპილაციის დროს ჩვენ უზრუნველვყოფთ, რომ არ არსებობს ორი ელემენტი.

ეს მოითხოვს O(n) რეკურსიის სიღრმეს და O(n^2) შემდგენლის მიერ კომპილაციის დროს გაშვების დროს, ასე რომ, ძალიან დიდი რიცხვებისთვის ამან შეიძლება გამოიწვიოს პრობლემები. AO(lg(n)) და O(n lg(n)) მუშაობენ ბევრად უფრო დიდი მუდმივი ფაქტორით, შეიძლება გაკეთდეს ჯერ ელემენტების სიის დახარისხებით, მაგრამ ამაში კიდევ ბევრია.

C++1y-C++17-ისთვის შემოთავაზებული enum კონვერტაციის კოდით, ეს შესაძლებელი იქნება ელემენტების განმეორების გარეშე.

აქ უკვე გამოქვეყნებული არცერთი პასუხი არ მომეწონა, მაგრამ რაღაც იდეები მომცეს. ყველაზე მნიშვნელოვანი მეთოდი არის ბენ ვოიტის პასუხის გამოყენება switch განაცხადის გამოყენებაზე. თუ გადამრთველში რამდენიმე შემთხვევას აქვს ერთი და იგივე ნომერი, თქვენ მიიღებთ კომპილაციის შეცდომას.

რაც ყველაზე სასარგებლოა ჩემთვის და, ალბათ, ორიგინალური პოსტერი, არის ის, რომ ის არ საჭიროებს რაიმე C++ შესაძლებლობებს.

საკითხების გასარკვევად, მე გამოვიყენე აარონპსის პასუხი: როგორ ავიცილოთ თავიდან საკუთარი თავის გამეორება C++ ჩამოთვლისა და მონაცემთა დამოკიდებული სტრუქტურის შექმნისას?

ჯერ განსაზღვრეთ ის სადმე სათაურში:

#define DEFINE_ENUM_VALUE (სახელი , მნიშვნელობა ) სახელი = მნიშვნელობა , #define CHECK_ENUM_VALUE (სახელი , მნიშვნელობა ) შემთხვევის სახელი : #define DEFINE_ENUM (სახელი_სახელი, მნიშვნელობები_მნიშვნელობები) \ typedef enum ( enum_მნიშვნელობები) NUM_E #define CHECK_ENUM (რიცხვის_სახელი, რიცხვის_მნიშვნელობები) \ void ნომრის_სახელი ## _ტესტი (ბათილია) ( გადამრთველი (0) ( რიცხვის_მნიშვნელობები (CHECK_ENUM_VALUE); ) )

ახლა, როცა უნდა გქონდეთ აღრიცხვა:

#define COLOR_VALUES (GEN) \ GEN (წითელი, 1) \ GEN (მწვანე, 2) \ GEN (ლურჯი, 2)

და ბოლოს, ეს ხაზები საჭიროა ფაქტობრივი ჩამოთვლისთვის:

DEFINE_ENUM (ფერი , COLOR_VALUES ) CHECK_ENUM (ფერი , COLOR_VALUES )

DEFINE_ENUM ქმნის enum მონაცემთა ტიპს. CHECK_ENUM ასრულებს ტესტირების ფუნქციას, რომელიც მოიცავს ყველა ჩამოთვლის მნიშვნელობას. CHECK_ENUM-ის შედგენისას კომპილერი ავარიულად იშლება, თუ თქვენ გაქვთ დუბლიკატები.

გავაანალიზოთ არსებული მდგომარეობა.

პირველ რიგში, მოდით გავარკვიოთ, რატომ გამოიწვია ერთი და იგივე სიმაღლის გაზომვის სხვადასხვა ხერხმა განსხვავებული შედეგი.

ერთი შეხედვით, პირველი მეთოდი ყველაზე საიმედოა. შენობის ზედაპირზე ვსვამთ ლენტას და ვადგენთ საჭირო სიმაღლეს. უფრო დეტალური ანალიზი აჩვენებს, რომ ეს არ არის მთლად სიმართლე. ირკვევა, რომ შენობას მცირე დახრილობა აქვს, ხოლო კედელს იმ ადგილას, სადაც გაზომვები ხდება, აქვს გარკვეული გამრუდება - ამოზნექილია და ქუჩისკენ. ეს ნიშნავს, რომ ჩვენ ვზომავდით არა შენობის სიმაღლეს, არამედ სიმაღლესთან დაკავშირებულ კედლის სიგრძეს.

მეორე მეთოდი არის არაპირდაპირი გაზომვა. ბურთის დაცემის დროის გაზომვის შემდეგ, ჩვენ ვიანგარიშებთ სიმაღლეს ცნობილი ფორმულის გამოყენებით თავისუფალი ვარდნა: h = gt 2/2. ამჯერად გაზომვა ნამდვილად სიმაღლეზეა. მაგრამ დაგვავიწყდა, რომ ბურთი ჰაერში მოძრაობს და, შესაბამისად, გარემოს წინააღმდეგობას განიცდის. ამრიგად, ფორმულით გამოთვლილი მნიშვნელობა ასევე არ არის შენობის სიმაღლის ნამდვილი მნიშვნელობა.

მესამე განზომილება, ისევე როგორც მეორე, არაპირდაპირია. სიმაღლე განისაზღვრება გეომეტრიული მოსაზრებებით: მართკუთხა სამკუთხედში მოპირდაპირე ფეხის სიგრძე უდრის მიმდებარე ფეხის სიგრძისა და კუთხის ტანგენტის ნამრავლს. ჩვენს შემთხვევაში სიმაღლე ერთი მხარის როლს ასრულებს, ხოლო ლაზერიდან შენობამდე მანძილი მეორეს. ამჯერად ჩვენ დაგვანებეს იდეალურად ჰორიზონტალური ზედაპირის დაშვება, რომელზეც შენობა დგას. შედეგი - ისევ გავზომეთ სიდიდე, რომელიც არ არის სიმაღლე, მაგრამ ახლა სხვა მიზეზით.

ასე რომ, თითოეულ მეთოდში არის რამდენიმე მუდმივი ფაქტორები(თითოეულ შემთხვევაში საკუთარი და შეიძლება იყოს რამდენიმე მათგანი), რაც იწვევს გარეგნობას სისტემატური შეცდომაგაზომვები ამ მეთოდით. ყოველ ჯერზე, როდესაც ერთი და იგივე რაოდენობის მნიშვნელობა იზომება იმავე პირობებში, სისტემატურ შეცდომას აქვს იგივე მნიშვნელობა. თუ ეს ფაქტორები მხედველობაში მიიღება შესაბამისი კორექტივების შემოღებით, მაშინ შეიძლება მიუახლოვდეს გაზომილი სიდიდის რეალურ მნიშვნელობას და შემდეგ გაზომვის შედეგებს. სხვადასხვა გზები(სისტემატური შეცდომის შესწორებების გათვალისწინებით) შეიძლება საკმაოდ ახლოს აღმოჩნდეს. ამრიგად, პრინციპში, სისტემატური შეცდომების გათვალისწინება და გამორიცხვაც კი შეიძლება , თუმცა ამის გაკეთება პრაქტიკაში შეიძლება საკმაოდ რთული იყოს.

ახლა შევეცადოთ გავარკვიოთ, რატომ შეიძლება გამოიწვიოს ერთი და იგივე სიმაღლის განმეორებითი გაზომვები იმავე მეთოდის გამოყენებით (ინსტრუმენტების იგივე ნაკრების ჩათვლით) სხვადასხვა მნიშვნელობებამდე. ეს დაკავშირებულია რიგთან ფაქტორები, რომლებიც მოქმედებენ შემთხვევით. განხილულ მაგალითში შეიძლება იყოს მცირე მექანიკური ვიბრაციებინიადაგი, შენობები და მოწყობილობები, თერმული ეფექტები, რომლებიც დაკავშირებულია კედლის ხაზოვანი ზომების ცვლილებასთან და გამოყენებული მოწყობილობებთან და ა.შ. საბოლოოდ, კიდევ არის ადამიანური ფაქტორიდაკავშირებულია მიმდინარე პროცესების აღქმასთან და ამ აღქმაზე რეაქციასთან. შედეგად, ერთი და იგივე რაოდენობის განმეორებითმა გაზომვამ შეიძლება გამოიწვიოს სხვადასხვა მნიშვნელობების გამო შემთხვევითი შეცდომები. გაზომვიდან გაზომვამდე შემთხვევითმა შეცდომამ შეიძლება შეცვალოს მისი ნიშანიც და სიდიდეც. ზემოქმედების შემთხვევითი ხასიათის გამო ასეთი შეცდომის სიდიდის წინასწარ პროგნოზირება შეუძლებელია .



ჩვენი ანალიზი ბადებს ლოგიკურ კითხვებს:

1. რა არის გაზომილი სიდიდის „ჭეშმარიტი“ მნიშვნელობა?

2. როგორ წარმოვადგინოთ გაზომვის შედეგები შეცდომების გათვალისწინებით?

ვინაიდან ეს კითხვები ეხება არა მხოლოდ განხილულ მაგალითს, არამედ

და ნებისმიერი სხვა გაზომვა, ჩვენ გადავალთ განზოგადებებზე და ზოგადი რეკომენდაციების შემუშავებაზე.

მოცემული კონკრეტული მაგალითი აჩვენა ზოგადი ქონებანებისმიერი გაზომვის დამახასიათებელი, – ნებისმიერ გაზომვას თან ახლავს შეცდომები .

ეს თვისება საბოლოოდ განპირობებულია იმით, რომ ნებისმიერი გაზომვა გულისხმობს გაზომვის პროცედურის მონაწილეთა გარკვეულ ურთიერთდაკავშირებულ ჯაჭვს: დამკვირვებელი – საზომი მოწყობილობა – გაანალიზებული ობიექტი – „გარე გარემო“.

ამ ჯაჭვის ელემენტები დაკავშირებულია დიდი რაოდენობით ურთიერთქმედებითა და მოძრაობებით. გაზომვის პროცესში შეიძლება ექვემდებარებოდეს გაანალიზებულ ობიექტს, საზომ მოწყობილობას და დამკვირვებელს სხვადასხვა გავლენა(მათ შორის ორმხრივი), რაც გავლენას ახდენს გაზომვის შედეგზე.

რა თქმა უნდა, თუ ჩვენ შევამცირებთ გავლენებს, რომლებიც უშუალოდ არ არის დაკავშირებული გაზომვის პროცედურასთან და შევეცდებით გავითვალისწინოთ შეუმცირებელი ზემოქმედება, მაშინ ჩვენი გაზომვების სიზუსტე გაიზრდება. მაგრამ აბსოლუტურად ზუსტი გაზომვა პრინციპში შეუძლებელია. და ეს დიდწილად განპირობებულია თავად გაზომილი რაოდენობების ბუნებით.



თუ, მაგალითად, გვინდა აბსოლუტურად ზუსტად გავზომოთ ლითონის ღეროს სიგრძე, აღმოვაჩენთ ბროლის გისოსის ფუნდამენტურად შეუქცევადი (თუმცა ძალიან მცირე) ვიბრაციების არსებობას. არ არსებობს ჯოხის აბსოლუტურად ზუსტი "ჭეშმარიტი" სიგრძე. ის მუდმივად იცვლება შემთხვევით, გადახრის ამა თუ იმ მიმართულებით ზოგიერთი ყველაზე ხშირად წარმოქმნილი მნიშვნელობიდან. ჩვენ შეგვიძლია ავიღოთ ეს მნიშვნელობა, როგორც სიგრძის „ნამდვილი“ მნიშვნელობა და შემდგომში ვიმოქმედოთ მასთან, როდესაც ვსაუბრობთ ღეროს სიგრძეზე, ან გამოვიყენოთ ეს მნიშვნელობა ნებისმიერი გამოთვლებისთვის, მაგალითად, ღეროს მოცულობის დასადგენად.

ასეთი ვითარება გვხვდება ბევრ სხვა განზომილებაში. თავად გაზომილი სიდიდეები შეიძლება შეიცვალოს შემთხვევით, რაც, როგორც ზემოთ აღინიშნა, ამ რაოდენობების ფიზიკური ბუნებით არის განპირობებული. ამრიგად, ჩვენ წინაშე ვდგავართ შემთხვევითი ფაქტორების ფუნდამენტური შეუმცირებლობა . მათი შემცირება შესაძლებელია, მაგრამ მათი სრულად აღმოფხვრა შეუძლებელია. აქედან გამომდინარე, გაზომვის შედეგების წარდგენისას, ჩვენ უნდა მივაწოდოთ ინფორმაცია სიდიდის „ნამდვილი“ მნიშვნელობის შეფასების შესახებ, გაზომვის შემთხვევითი შეცდომების გათვალისწინებით. (იმ პირობით, რომ სისტემატური შეცდომა გამოირიცხება ან შესაბამისი შესწორების სახით იქნება გათვალისწინებული). ცხადია, რომ ასეთი ინფორმაციის ყველაზე სრულად წარმოდგენა შესაძლებელია მრავალი გაზომვის შედეგების საფუძველზე.

არც ისე იშვიათია რუსულად. ძალიან ხშირად, ერთი და იგივე სიტყვა შეიძლება გამოყენებულ იქნას სრულიად განსხვავებული ობიექტებისა თუ ფენომენების დასასახელებლად ან/და დასახასიათებლად. ასეთ სიტყვებს აქვს ერთი ძირითადი მნიშვნელობა - ორიგინალური, პირდაპირი და ერთი (ან მეტი) - გადატანითი, გადატანითი, მეტაფორული. ეს უკანასკნელი ჩვეულებრივ წარმოიქმნება რაიმე მახასიათებლის, მსგავსების ან ასოციაციის საფუძველზე.

ორაზროვანი არსებითი სახელების მაგალითები

არსებით სახელებს შორის შეგიძლიათ იპოვოთ სიტყვების მრავალი მაგალითი ორმაგი მნიშვნელობა. აქ არის მხოლოდ რამდენიმე მათგანი:

სიტყვა პირდაპირი მნიშვნელობა ფიგურალური მნიშვნელობა
Ბილეთი თვითმფრინავის ან მატარებლის ბილეთი, თეატრის ან კინოს ბილეთი. საგამოცდო ბილეთი.
კრესტი ინსტრუმენტი თმის სავარცხელი, სავარცხელი. ტალღის ან მთის ქერქი.
სიტყვა მეტყველების ერთეული. ლიტერატურული ჟანრი. მაგალითად, "იგორის კამპანიის ზღაპარი".
ხელი Სხეულის ნაწილი - მარჯვენა ხელი, მარცხენა ხელი.
  • პირის პოზიცია, პოზიცია - ”ის ჩემი მარჯვენა ხელია”.
  • „ხელწერა“, შესრულების მანერა, ცნობადი ავტორის შეხება – „დიდი ხელოვანის ხელი“.
  • Ფიზიკური ძალა- "მძიმე ხელი"
ფუნჯი ხელი არის სხეულის ნაწილი მაჯიდან თითების წვერებამდე. ხელსაწყო საღებავებით შეღებვისთვის.
Სამუშაო ფიზიკური შრომა, ძალისხმევა, ადამიანის ოკუპაცია. ფიზიკური შრომის თვალსაჩინო შედეგია "კარგი სამუშაო!"
ფურცელი ხეზე ამოსული ფოთოლი. ფურცელი, რვეული ან ლანდშაფტის ფურცელი.
ფესვი ხის ფესვი. ხის ნაწილი, რომელიც მიწისქვეშაა.
  • რიცხვის მათემატიკური ფესვი. მაგალითად, 4-ის ფესვი არის 2.
  • რაიმე ფენომენის ან მოვლენის მიზეზი არის „ბოროტების ფესვი“, „პრობლემის ფესვი“.
მოვალეობა ერთი პირის მიერ მეორეს დაპირებული თანხა ან მატერიალური ღირებულება, სესხის აღების შედეგი. რაღაცის მორალური სურვილი, მორალური მოვალეობა.

ეს არ არის მთელი სია. ყველაფრის შედგენა, ალბათ, უბრალოდ შეუძლებელია, რადგან რუსულ ენაში თითქმის იმდენი ორმაგი მნიშვნელობის სიტყვაა, რამდენიც ერთმნიშვნელოვანი.

ორაზროვანი ზედსართავი სახელების მაგალითები

სხვადასხვა ობიექტი შეიძლება არა მხოლოდ ერთი სიტყვით იყოს დასახელებული, არამედ დახასიათებაც. აი ასეთი სიტყვების რამდენიმე მაგალითი:

სიტყვა პირდაპირი მნიშვნელობა ფიგურალური მნიშვნელობა
Ფოლადი დამზადებულია ფოლადისგან. მაგალითად, ფოლადის დანა. ძალიან ძლიერი, ურყევი - "ფოლადის ნერვები".
ოქრო დამზადებულია ოქროსგან - "ოქროს საყურეები", "ოქროს ყელსაბამი". ძალიან ღირებული, კეთილი, გამორჩეული მორალური თვისებებით - "ოქროს კაცი", "ოქროს შვილი", "ოქროს გული".
Მძიმე წაღება დიდი რიცხვიფიზიკური ძალისხმევა - "შრომისმოყვარეობა". იმის შესახებ, რაც სხვებისთვის ძნელად ასატანია - " რთული ადამიანი"," მძიმე ხასიათი."
თეთრი თეთრი - "თეთრი თოვლი", "თეთრი სია". ლექსი რითმის გარეშე არის "ცარიელი ლექსი".
შავი შავი - "შავი თვალები", "შავი მარკერი". გაბრაზებული, სარკასტული, მგრძნობიარე თემების უხეში შეხება - "შავი იუმორი", "შავი კომედია".

ისევ და ისევ, სია არასრულია. გარდა ამისა, ორმაგი მნიშვნელობის მქონე სიტყვების სიაში შედის ზედსართავი სახელები, რომლებიც ერთდროულად აღწერენ ფერებს, სუნს და/ან გემოს: ფორთოხალი, ჟოლო, ლიმონი, ქლიავი და ა.შ.

ორაზროვანი ზმნების მაგალითები

სამოქმედო სიტყვებს ასევე შეიძლება ჰქონდეს ერთზე მეტი მნიშვნელობა:

სიტყვა პირდაპირი მნიშვნელობა ფიგურალური მნიშვნელობა
დაჯექი დაჯექი სკამზე, სავარძელში, ცხენზე. ჩაჯექი მატარებელში (არა პირდაპირი მნიშვნელობით დაჯექი მატარებლის სახურავზე, არამედ გადატანითი მნიშვნელობით - დაიკავე შენი ადგილი მასში).
ჩამოდი/გადი შეგიძლიათ მატარებლიდან გადმოხვიდეთ, სასურველ გაჩერებაზე ჩამოხვიდეთ ან მაღაზიაში წახვიდეთ. "წადი/გაგიჟდი".
სცემეს გაფიცვა. „გაზაფხული შადრევანივით მოედინება“, „ცხოვრება გაჩაღდა“.
გაჭრა გაყავით ნაჭრებად დანით ან სხვა ბასრი პირით. გამოიწვიეთ უსიამოვნო შეგრძნება - "სინათლე თვალებს გტკივა", "ხმა მტკივა ყურებს".

ყველაზე ხშირად, ორმაგი მნიშვნელობის მქონე სიტყვები მშობლიური რუსული სიტყვებია. ნასესხები ტერმინებს ჩვეულებრივ ერთი მნიშვნელობა აქვთ.

განსხვავებები ჰომონიმებისგან

ძალიან მნიშვნელოვანია ორმაგი მნიშვნელობის მქონე სიტყვების გამოყოფა ჰომონიმებისგან: სხვადასხვა სიტყვები, რომლებიც ერთნაირად იწერება. პოლისემანტიკურ სიტყვებს აქვთ პირდაპირი, ძირითადი მნიშვნელობა და გადატანილი მნიშვნელობა გარკვეული ატრიბუტის მიხედვით. ჰომონიმებს აქვთ ყველა დამოუკიდებელი მნიშვნელობა. „სახელური“ (კარი) და „სახელური“ (წერა) ჰომონიმებია, რადგან მათ შორის კავშირი არ არის. მაგრამ სიტყვა "სატელიტს" აქვს მრავალი მნიშვნელობა - ზეციური სხეულისახელწოდებით "სატელიტი", რადგან ის მოძრაობს პლანეტის გარშემო, როგორც ადამიანის თანამგზავრი.