KONUŞMACI 1: suyun bahsedelim. Bu sorunun, biz anlatmak için kullanıcı isteyin Bize ne kadar dakika içinde kendi duş ve sonra eşdeğer hesaplamak su şişesi sayısı kendi duş kullanılan. Yani to-do en nelerdir Bu sorun için? İlk olarak, istediğiniz gidiyoruz uyarır ve daha sonra doğrulamak için Kullanıcı bize verdiği girişi. biz bu biz sağlamak kez geçerli kullanıcı girişi var, Biz hesaplamak için gidiyoruz şişe su eşdeğer sayısı Kullanıcı sırasında vardı kendi duş, sonra konum bunları anlatacağım Bu sayıyı yazdırarak. Yani ilk duralım Görev, isteyen ve doğrulama kullanıcı girişi. Bunun için biz yazdık bir Aradığınız için fonksiyon CS50 Kütüphanesi'nde bulunan get_int. get_int kullanıcı girişi sağlar bir tamsayı, herhangi bir pozitif sayılar, böylece negatif sayılar, ya da sıfır kabul edilir. Fakat kullanıcı başka bir şey girerse, yani harf veya rakamdan herhangi bir kombinasyonu veya ondalık sayılar, daha sonra Kullanıcı yeniden istenir ve fonksiyon şey kabul etmeyecektir Kullanıcı onlara bir tamsayı verir kadar. Peki get_int kullanırım? Eğer çalışma alanını açarsanız ve haydi integer.c adında bir dosya oluşturun aşağıdakileri yazın. Karma etiket cs50.h. içerir Bu get_int için gerekli olan Bir CS50 kütüphane fonksiyonu vardır bu yüzden dahil hashtag gerekir için kendi beyanı işlevi kullanmak için. Ve sonra benim main Ben sadece gidiyorum işlev sadece işlev get_int aramak için. Yani bu çalışmasına izin ve nasıl çalıştığını görmek. Ben zaten derlenmiş, bu yüzden haydi ettik Sadece devam edin ve bu programı çalıştırın, ./integer. Burada bir istemi var ve Burada değer nerede girişi var. Ben sadece bazı tamsayı koymak demek 50, bir program excepts ve sonlandırılıyor ve o var. Ama ben yeniden çalıştırmak ve söylemek Başka bir giriş bir şey. Belki merhaba dünya. Böylece bir tamsayı değil Program yeniden denemek beni isteyecektir. en tekrar deneyelim belki ondalık bu sefer. 0.5, yine değil, bir tamsayı yani Program bunu kabul etmeyecektir ve yeniden denemek için bana anlatacağım. Yani o başka bir numara vereyim. Program bunu kabul eder, çıkar ve biz bitti. Yani şimdi bir işlevi var bize ve garanti veriyor Kullanıcı bir girişleri bu tamsayı, ama nasıl biz Aslında takip tamsayı kullanıcı tarafından girilen? Eh, biz yapacağız tüm mağaza bir değişken bu değer, n söylüyorlar. Yani bir tamsayı n bildirirseniz, ve ben, get_int bu değeri Daha sonra n sonra saklamak ne olursa olsun Girilen kullanıcı değer. Pekala, şimdi biz sağlamış ettik kullanıcı bize bir tamsayı verecektir ve biz takip için biliyorum tamsayı, ama unutmayın, tamsayılar olumlu hem de olumsuz vardır. Bu yüzden gerçekten mantıklı değil Bu sorunun kapsamında Kullanıcı bir duş alır negatif 12 dakika söylüyorlar. Bu yüzden kullanıcı emin olmak gerekir aslında bize pozitif bir tamsayı verir. Şimdi biz sadece bir yok Bunun için tek bir işlev, bu yüzden biz gidiyoruz kendimiz oluşturmak için. Bu yüzden sürekli olarak istiyoruz kullanıcı istemi onlar bize pozitif bir tamsayı vermek kadar. Ben sürekli o şey yapıyorum eğer Bu bir döngü, bir tekrarı benzer bu. Kullandığımız yapılardan biri bu yüzden c tekrarı ve döngüler uygulamak Bir süre döngü. Yani while döngüsü olarak Burada gösterilen, yürütecek döngü gövdesi olarak ne olursa olsun Verilen koşul değerlendirir sürece true. En kısa sürede bu koşulu olarak Daha sonra, yanlış olarak değerlendirilir Program devam edecek olursa olsun döngü gövdesi sonra gelir. döngüler gidiyor süre Yani CS50 gerçekten yararlı olabilir. Ancak bu, özellikle durumda, biz olduğunuzu biliyorum en azından kullanıcı istemi olacak bir kez ve daha sonra sadece döngü gerekirse. Yani burada biz gelmek özel yapı ve o süre çok benzer loop do-while döngüsü denir. Yani do-while döngüsü yürütür döngü gövdesi, en az bir kez ve o zaman bakar Bu idam gerekip gerekmediğini Bir süre döngüsü yerine, hangi durumunu kontrol edecek ve daha sonra cesedi yürütün. Yani do-while döngüsünde ne olabilir yapmak bir tamsayı için kullanıcı istemi ise, ve daha sonra geçersiz ya da değil olmadığını kontrol edin. Geçersiz ise, o zaman yaparız kullanıcı soran işlemi yineleyin Sonra bizi başka bir tamsayı vermek, ve bu tamsayı geçerli olduğu zaman, biz devam edeceğiz ne olursa olsun sonradan geliyor. Şimdi fark edeceksiniz tamsayı n beyanı biraz farklıdır ne önceki örnekte önce yaptığı ve bunun nedeni de kapsamı göstermektedir. biz içinde tamsayı n ilan olsaydı do-while döngüsünün gövdesinin, o zaman erişmek mümkün olmaz Bu Kıvırcık dışında n bu değeri döngünün gövdesini gösteren parantez. Ama biz aslında erişmek istiyoruz Daha sonra bizim programda n değeri. Tamam, şimdi en bahsedelim Bu durum ne olması gerektiğini. Biz sadece reprompt istiyoruz Kullanıcı sürece n geçersiz olduğu. Yani kendinize düşünmek geçersiz ne bir tamsayı değeri gibi görünecektir ve sonra bir Boole oluşturmak ifadesi olduğunu ifade etmek. Biz neredeyse bizim alt görev bitirdik teşvikiyle ve kullanıcı girişini doğrulayarak. Yani bu biraz yapalım biraz daha kullanıcı dostu ve kullanıcıya biraz ver Biraz daha bilgi ne biz onları isteyen ediyoruz. Yani kişi başına, kullanıcı istemi izin spec dize dakika. Yani printf ifadeleri kullanarak, yapmak Bu tam olarak eşleşmesi emin olun. Pekala. Yani şimdi geçerli bir kullanıcı var giriş, pozitif bir tamsayıdır kaç dakika değeri Onlar duş geçirdi. Peki ne var hesaplamak için şişe eşdeğer sayısı. Burada yapmak için olabilir gidiyoruz ne ilk başta size çok açıktır, ve sorun değil. Ne yapmak istiyoruz biz ise pratik başlamak istiyorum desen tespit fikri ve soruna yönelik formüller geliştirmek. Bu yüzden spec başına anlatıldı Duşta o bir dakika yaklaşık eşdeğerdir su 12 şişe. Öyleyse iki dakika olur 24 eşdeğer, ve beş dakika olur 60 eşdeğer. Yani şimdi düşünüyorsanız Bunu var, o zaman atalım Eğer gelebilir görmek Bir desen veya formülle dediğimiz varsa, ifade etmek n Suyun dakika, kaç şişe n'nin cinsinden ifade edilir? Yine olsa bile bu İlk bakışta basit olabilir, Daha sonra biz almak ne zaman daha karmaşık sorunlar Biz içine almak istiyorum gidiyoruz belirleme uygulaması desen ve gelişmekte olan formüller Bunları anlamaya. c erişime sahip Standart aritmetik işlemler, toplama, çıkarma, çarpma ve bölme. Bu yüzden onu bırakacağım Şimdi anlamaya ifade etmeyi şişe eşdeğer sayısı Kullanıcı tüketilen onların duş sırasında. Pekala, biz neredeyse bitti. Biz onların girişi için kullanıcı istendiğinde ettik, biz geçerli giriş olduğunu sağladık, ve sonra biz dışarı nasıl çözdüğün eşdeğer hesaplamak için onlar tüketilen şişe sayısı. Bunu yapmak için son şey çıkışı olan şişe eşdeğer sayısı ve umarım teşvik Onlara biraz su tasarrufu için. değer olacak çıktısı Bir printf ifadesi olabilir. Ben sana o ben söylemek istedim Örneğin, üç hayvan var, Bir printf ifadesi kullanabilir Bu şuna benzer. Ben yeni bir üç hayvan var ve güzel biçimlendirme için hattı. Şimdi istemiyoruz sadece sert kod şeyler. sayısını söylemek benim Evcil hayvan zamanla değişir. Sonra faydalanmak için gidiyorum Benim printf açıklamada tutucular. Yani burada benim sayı bir tam sayıdır. Bu yüzden bir yer tutucu yapmak için gidiyorum % I kullanarak bir tamsayı için. Ben dize yazmak için gidiyorum, ve sonra dize sonra Sonra bir virgül ve yazma Ben Yazdırmak istediğiniz değişken. Bu değer basılacaktır Yani Bu tutucu,% i yerine. Sen, tutucuları kullanabilirsiniz iyi bir% f yüzen için. Ayrıca, birden çok olabilir bir dize yer tutucuları. Örneğin, bazı numaranız varsa Köpekler ve kediler bazı sayıda, Ben burada ve daha sonra iki tutucuları koymak Sırasıyla benim iki değişken. Yani şimdi yazdırmak nasıl biliyor değişkenler saklanan değerler, çok son şey yapmak biz sağlamaktır kesin biçimde değerini yazdırmak şartnamede belirtilen. Bunun üzerine, biz istendiğinde ettik kullanıcı ve giriş valide. Daha sonra eşdeğer hesaplanır ettik su şişesi sayısı onların duş sırasında tüketmek, ve biz onlara bu değeri çıkışı var. Ve böylece, biz su tamamladık. Benim adım [? Zamila?] bu CS50 olup.