ZAMYLA CHAN: გილოცავთ წლის დამთავრების თქვენი პირველი რამდენიმე C პროგრამებს. მე ვიცი, რომ თქვენი პირველი foray შევიდა C სინტაქსი შეიძლება daunting. მაგრამ გარწმუნებთ, წლის ბოლოს რა თქმა უნდა, თქვენ გექნებათ შევხედოთ პირველი რამდენიმე დავალებები და დაასრულებს მათ წუთებში. ახლა, როდესაც თქვენ მიღების უფრო იცნობს ერთად სინტაქსის, მოდით მისაღებად Caesar. In კეისრისა შესახებ წარადგენენ მთელი რიცხვი გასაღები როგორც ბრძანების არგუმენტი, მაშინ შევა ბარის ტექსტური შეტყობინება ბრძანებათა ზოლში. პროგრამა შემდეგ encipher ტექსტის და ბეჭდვითი მათი ciphertext გაგზავნა. Enciphering for ცეზარ საკმაოდ მარტივია. გადაიტანოს ყოველ წერილში, მათ ძირითადი ტექსტი, რომელსაც გასაღები. შედეგად, ასევე, საკმაოდ არასაიმედო. მაგრამ განხორციელების ცეზარ გააცნობს გვაძლევს ASCIIMath და მასივი მონაცემები სტრუქტურებში. მივიღებთ, რათა უფრო რთული ciphers მოგვიანებით. ერთად Caesar გასაღები 2, წერილში in ძირითადი ტექსტი იქნება მიერ წარმოდგენილი ასო C ciphertext რადგან C არის ორი ასო შემდეგ ა B იქნება რომელიც წარმოდგენილია D და C-ე მიმართ ბოლოს ანბანი, W არის მიერ წარმოდგენილი Y და X ზ მაგრამ Y ჯერ არ ორი ასო შემდეგ, ასე ciphers მართავს გარშემო ანბანი. Y მარტივი ტექსტის ამდენად მიერ წარმოდგენილი ამ ciphertext და Z ბ მას შეუძლია დაეხმაროს ნახატის ცეზარ Cypher მოსწონს უწყვეტი დამწერლობა საჭე. დან encipher მათი ტექსტი, შესახებ შევა ორი არგუმენტები შევიდა ბრძანება ხაზი - . / Caesar მოჰყვა გასაღები. როგორც ყოველთვის, ჩვენ ვერ ვენდობით შესახებ სრულიად შესვლის შეტანის რომლებიც აზრი ჩვენი პროგრამა. ასე რომ, ჩვენ უნდა შეამოწმოს მათი ბრძანების ხაზი შეყვანა. ნაცვლად გამოყენებით int მთავარი ბათილად, ჩვენ გამოყენებით int, მთავარ int argc, სიმებიანი argv. მთელი ცვლადი argc წარმოადგენს რიგი არგუმენტები შევიდა ბრძანების მითითებით. და argv არის მასივი, ან ვფიქრობ, რომ ეს სიაში, რა არგუმენტები გავიდა სისტემაში ასე რომ, ცეზარ, როგორ უნდა შეამოწმოს მომხმარებლის input? ასევე, ისინი უნდა იყოს მხოლოდ შესვლის ორი ბრძანება ხაზი არგუმენტები - . / Caesar და გასაღები. ასე რომ, თუ argc არ არის 2, ეს ნიშნავს, რომ მათ არც დაავიწყდა გასაღები და მხოლოდ შევიდა. / caesar, ან არ შევიდა მრავალჯერადი გასაღებები. თუ ეს იმ შემთხვევაში, მაშინ თქვენ გვინდა ბეჭდვა ინსტრუქციები და გასვლა პროგრამა. ისინი უნდა შევეცადოთ ერთხელ ბრძანების ხაზი. მაგრამ მაშინაც კი, თუ argc 2, თქვენ უნდა თუ არა ისინი გაძლევთ სწორი გასაღები. იყიდება ცეზარ, საჭიროა მთელი რიცხვი. მაგრამ argv არის მასივი strings. როგორ ხელმისაწვდომობის, რომ გასაღები? სწრაფი შევხედოთ მასივების - მონაცემთა სტრუქტურები, რომ გამართავს მრავალჯერადი ღირებულებები იგივე მონაცემების ტიპის. შესვლის არიან ნულოვანი ინდექსირებულ, რაც იმას ნიშნავს, რომ პირველი ელემენტი ინდექსი ნულოვანი და ბოლო ელემენტს წარმოადგენს ინდექსი ზომა მინუს 1, სადაც ზომა არის რიგი ელემენტების მასივი. თუ მე გამოაცხადა ახალი სიმებიანი მასივი საფოსტო ყუთი სიგრძის 3, ვიზუალურად, მას ასე გამოიყურება. სამი კონტეინერი სიმებიანი , გვერდით. წვდომის ნებისმიერი ელემენტის, ამას სახელი საქართველოს მასივი, შემდეგ კი მიუთითებს იმაზე, ინდექსი კვადრატულ ფრჩხილებში. აქ, მე მინიჭების ღირებულება ყოველი ელემენტის, ისევე როგორც მე ყველაფერს გააკეთებს ნებისმიერი სხვა სიმებიანი განსხვავებულია. ასე რომ, რათა შეამოწმონ ჩვენი ბრძანების ხაზი არგუმენტები, რიგში, ჩვენ უნდა გავაკეთოთ არის ხელმისაწვდომობის მარჯვენა ელემენტს argv მასივი. თუ მომხმარებლის შევიდა. / Blastoff გუნდი სარაკეტო შევიდა ტერმინალში, argv 0 აკეთებთ იყოს. / blastoff. argv იქნება გუნდი და Arg2 იქნებოდა სარაკეტო. ახლა, ჩვენ შეუძლია ჩვენი გასაღები, ჩვენ მაინც უნდა დარწმუნებული ვარ, რომ ეს სწორი. ჩვენ უნდა გარდაქმნას იგი მთელი რიცხვი. მაგრამ ჩვენ შეგვიძლია არა მხოლოდ მიცემული მოსწონს ჩვენ გავაკეთეთ ადრე. საბედნიეროდ, რომ Y ფუნქციის ზრუნავს ამ ჩვენთვის და კიდევ დააბრუნებს 0 თუ სიმებიანი არ შეიძლება მოაქცია შევიდა რიცხვი. ეს მდე თქვენ, თუმცა, მართალი გითხრათ შესახებ, თუ რატომ არ მოდით პროგრამის გაგრძელება. მაღაზიის შედეგია, რომ Y in მთელი რიცხვი, და იქ თქვენ გაქვთ თქვენი გასაღები. შემდეგი ნაწილი მარტივია. მოთხოვნა მათი ძირითადი ტექსტი, რაც იქნება მონაცემთა ტიპის სიმებიანი. საბედნიეროდ ჩვენთვის, ყველა inputted strings მოქმედებს. ახლა, როდესაც ჩვენ გვაქვს ყველა საჭირო შეტანის ეხლა შესახებ, დროა ჩვენთვის encipher მათი გაგზავნა. კონცეფცია Caesar მარტივია საკმარისი გასაგებია. მაგრამ როგორ ჯერ თქვენს კომპიუტერში ვიცი, რომელიც წერილების შედეგად მოსული ერთმანეთს? აქ არის ის, სადაც ASCII მაგიდასთან მოდის შემოსული ყველა ხასიათი აქვს მთელი რიცხვი ნომერი არის. Capital არის 65. Capital B არის 66. ამას არის 97. მხედრულ ბ არის 98. მაგრამ პერსონაჟების არ შემოიფარგლება უბრალოდ ანბანურ ნომრები. მაგალითად, @ სიმბოლო არის ASCII ნომერი 64. სანამ საქმე მთელი ტექსტი, მოდით თითქოს ჩვენ უბრალოდ უნდა გადაიტანოს ერთი ხასიათი. ასევე, ჩვენ მხოლოდ გვინდა გადაიტანოს ფაქტობრივი წერილები ძირითადი ტექსტი, არ ასო, ან ნომრები. ასე რომ, პირველი, რაც ჩვენ გვინდა შეამოწმოს არის თუ არა ხასიათი არის ანბანი. ფუნქციის isalpha აკეთებს ეს ჩვენ და დააბრუნებს ლოგიკური - ჭეშმარიტი, თუ პერსონაჟი არის წერილი, ცრუ თუ სხვა რამ. ორი სხვა სასარგებლო ფუნქცია isupper და islower, ერთად თვითმმართველობის განმარტებითი სახელები. ისინი TRUE თუ მოცემული ხასიათი არის ზედა ან ამას, შესაბამისად. მას შემდეგ, რაც ისინი Booleans, ისინი სასარგებლო გამოიყენოთ როგორც პირობებს. თუ isalpha ბრუნდება ასეა, თქვენ უნდა გადაიტანოს, რომ ხასიათი გასაღები. მოდით ღიაა ASCIIMath და გავაკეთოთ ზოგიერთი ASCII მათემატიკის. გამოყენება ძალიან ჰგავს გამოყენება ამისთვის ცეზარ და იღებს გასაღები ზე ბრძანების მითითებით. თუ მე აწარმოებს ASCIIMath 5, როგორც ჩანს, რომ დაამატოთ 5 და ეს მაძლევს წერილი ვ და ჩვენებისას ASCII ღირებულება. მოდით შევხედოთ პროგრამა. ალბათ საინტერესოა, სწორედ აქ, ამიტომ წერილი რიცხვი, როდესაც ეს აშკარად, ასევე, წერილში. გამოდის, რომ გმირები და რიცხვებით არის ურთიერთშემცვლელნი. გამოსული წერილი ერთ ციტატა ნიშნები, მთელი შენახვა შეუძლია ASCII ღირებულება კაპიტალი ა ფრთხილად, თუმცა. თქვენ უნდა ერთ ტანსაცმელი. გარეშე ერთ გაცემა ნიშნების, შემდგენელი რომ ვეძებოთ ცვლადი დაასახელა და არა ხასიათი. მერე დავამატებთ წერილი და გასაღები, შენახვისა თანხა int ცვლადები შედეგი. მიუხედავად იმისა, რომ შედეგი არის მონაცემთა ტიპის მთელი რიცხვი, ჩემი printf განაცხადი იყენებს % C placeholder for სიმბოლოს. ასე რომ, პროგრამა ბეჭდავს ხასიათი ასოცირდება რიცხვი შედეგი. და რადგან ჩვენ ნაბეჭდი რიცხვი ფორმა, ასევე გამოყენებით% d, ჩვენ ვხედავთ ნომერი ასევე. ასე რომ, ახლა თქვენ ხედავთ, რომ ჩვენ მკურნალობა გმირები და მთელი რიცხვები, და პირიქით. მოდით ტესტი out ASCIIMath რამდენიმე უფრო გამოყენებით 25 როგორც გასაღები. მივიღებთ წერილი z. ახლა ჩვენ ვცდილობთ 26. ჩვენ გვინდა ამ წერილს, მაგრამ ნაცვლად მივიღებთ მარცხენა bracket. ასე რომ, ცხადია, მხოლოდ და დასძინა გასაღები წერილი ამას არ გააკეთებს. ჩვენ უნდა გაერკვნენ, ფორმულა გადაიტანოთ გარშემო ანბანი, არა ჩვენი მაგალითად დასაწყისში გააკეთა. ფორმულა კეისრის ცვლის ასეთია. გ შეადგენს ჟ პლუს ლ modulo 26. გახსოვდეთ, რომ modulo არის სასარგებლო ოპერაცია, რომელიც გვაძლევს დარჩენილი გამყოფი ერთი რიცხვი მიერ სხვა. მოდით გამოიყენოს ეს ფორმულა ბარის ტექსტის წერილი გასაღები 2. ASCII ღირებულება Y არის 89, რომელიც გვაძლევს 91 modulo 26, რაც უდრის 13 - ნამდვილად არ ASCII ღირებულება საქართველოს, რაც 67. იუმორის ჩემთვის არის და გადაადგილება დაშორებით ASCII ფასეულობები ანბანურ ინდექსი სად არის ნულოვანი და Z არის 25, რაც იმას ნიშნავს, რომ Y არის 24. 24 პლუს 2, modulo 6, გვაძლევს 26, modulo 26, 0, რომელიც ანბანურ მაჩვენებელს. ასე რომ, ეს ფორმულა, როგორც ჩანს, მიმართოს ანბანურ მაჩვენებელს წერილი და არა მისი ASCII ღირებულება. მაგრამ თქვენ იწყება ASCII ღირებულებებს. და ბეჭდვა ciphertext ხასიათი, თქვენ უნდა თავისი ASCII ღირებულება ასევე. ეს მდე თქვენ, მაშინ, გაერკვნენ როგორ უნდა გადახვიდეთ წინ და უკან. მას შემდეგ გაერკვნენ უფლება ფორმულა ერთი ხასიათი, ყველა უნდა გავაკეთოთ არის გამოიყენოს იგივე ფორმულას ყველა წერილი ძირითადი ტექსტი - მხოლოდ იმ შემთხვევაში, რომ წერილი არის ანბანურ, რა თქმა უნდა. და მახსოვს, რომ თქვენ უნდა შეინარჩუნოს იმ შემთხვევაში, ზედა ან ქვედა, რომ ის, სადაც isUpper და isLower ფუნქციები ზემოთ აღინიშნა მოვა მოსახერხებელია. ალბათ ორი ფორმულები - ერთი ზედა წერილების და ერთი ამას. ასე რომ isUpper isLower დაგეხმარებათ დადგინდეს, რომელიც ფორმულა მიმართოს. როგორ ვრცელდება თქვენს ფორმულა ყველა ერთ პერსონაჟს სიმებიანი? ისე, სიმებიანი მხოლოდ მასივი სიმბოლოს. ასე რომ, შეგიძლიათ თითოეული ხასიათი დაჯგუფება მეტი ყოველ პერსონაჟს სიმებიანი in for ციკლი. რაც შეეხება მდგომარეობას თქვენს for მარყუჟის ფუნქციის strlen, სიმებიანი სიგრძე, მოვა მოსახერხებელია. იგი იღებს ამ სიმებიანი როგორც შემავალი და დააბრუნებს ხანგრძლივობა, რომ მხოლოდ. დარწმუნდით, რომ მოიცავს სწორი ბიბლიოთეკა გამოყენება სიმებიანი სიგრძის ფუნქცია. და აი თქვენ გაქვთ თქვენი ciphertext. ჩემი სახელი Zamyla. და [ვსაუბრობ CODE].