Cześć i witaj. W tej demonstracji chcę przedstawić rozwiązanie
naszego ostatniego wyzwania. Dlatego chcę przedstawić
rozwiązanie dla naszego programu w języku c, które zajmuje kilka
minut i konwertuje je na to, czym jest ta reprezentacja w dniach i
ile to jest lat.
Niekoniecznie praktyczny program, ale
zademonstruje kilka kluczowych pojęć, których
możecie się nauczyć głównie za pomocą operatorów arytmetycznych,
uzyskując dane wejściowe z klawiatury.
A także musisz użyć do tego operatora rzutowania, o którym być może
nie wspomniałem w wyzwaniu, ale miejmy nadzieję,
że to rozgryzłeś, ponieważ kiedy to robisz - nie musisz
używać operatora rzutowania, którego nie powinieneś
potrzebować początkowo myślałem, że rozwiązanie wymaga operatora modułu. Ale jeśli zrobisz moduł,
myślę, że zajmie to tylko 2
int.
Tak czy inaczej, zacznijmy. Zacznijmy od zimnych bloków i
stwórzmy projekt, przejdźmy przez podstawowe rzeczy, w których jesteśmy całkiem dobrzy w tym momencie.
Więc nie zamierzam się w to szczegółowo zagłębiać, możesz po prostu obejrzeć.
Ale mam zamiar stworzyć nowy projekt i będzie to projekt konsolowy i na
pewno będzie to c, a to, co
mam zamiar nazwać tym, znowu to, że zawsze chcesz mieć dobre, znaczące nazwy.
Powiem konwersja minut.
Jest to więc aplikacja do konwersji minut.
A teraz zamierzam tylko zmodyfikować nasz plik main. c plik.
Więc pozbądźmy się tego. I zamierzamy zachować instrukcje include.
I jak zawsze, będziesz chciał dodawać komentarze, upewnij się, że dodajesz komentarze, tylko
dlatego, że tego nie robię, nie oznacza, że nie powinieneś tego robić.
To standardowa praktyka. Robię to tylko ze względu na efektywność i czas, pomijam to.
To, co lubię robić na samej
górze programu, to wyczyścić moje zmienne, których potrzebuję, a następnie je zainicjować.
Zacznijmy więc w ten sposób. Utworzę zmienną całkowitą dla minut,
które użytkownik będzie wprowadzał. I mam zamiar podać podane minuty. Zainicjuję go na 0.
Mam zamiar tworzyć dublera latami. W rzeczywistości może to
być również długie, w zależności od tego, ile obliczeń chcesz wykonać, ponieważ w
rzeczywistości możesz uzyskać dość dużą liczbę dziesiętną.
Tak długo może być nawet lepszą opcją. Ale na razie
użyję podwójnego, zainicjuj to 0. 0 i dni równe temu
0. 0.
A teraz chcę uzyskać informacje od użytkownika.
Aby uzyskać dane wejściowe od użytkownika, pierwszą rzeczą, którą musisz zrobić, jest poinformowanie go, aby wprowadził dane wejściowe.
Więc mam zamiar wyświetlić dane wyjściowe z
informacją, że wprowadź liczbę minut.
I wstawi tam dwukropek i spację i
zakończy go średnikiem.
Następnie zamierzam uzyskać dane wejściowe.
Oto miejsce, w którym prawdopodobnie powiedziałbyś, że uzyskaj dane wejściowe od użytkownika jako komentarz.
W jaki sposób otrzymujemy dane od użytkownika? Używamy funkcji scanf.
Więc pamiętaj o tym od jakiegoś czasu, po prostu powiedz scanf, podobnie jak printf.
A pierwszym parametrem, chociaż argument, jest
typ danych, które chcesz wczytać, aby przekonwertować.
Pamiętaj, wszystko jest czytane jako ciąg lub tekst.
Musisz więc przekonwertować to na sposób, w jaki zamierzasz go przechowywać.
Więc umieścisz go w cudzysłowie, tak jak printf. Używasz specyfikatora formatu.
Tutaj. Powiem tylko, że chcę to zapisać jako ułamek dziesiętny.
Więc powiem, że d jest liczbą całkowitą,
a nie dziesiętną liczbą całkowitą, przepraszam.
Następnym argumentem jest zmienna, którą zamierzasz przechowywać.
W mam zamiar go przechowywać w ciągu kilku minut.
Teraz pamiętaj, że scan f i
tak naprawdę właśnie tam zeskanowałem, scanf dla
każdego typu danych z wyjątkiem ciągu,
musisz podać ampersand. Operator podrzędny adresu.
Więc musimy to zapewnić. Wczytujemy liczbę, więc musimy wykonać znak ampersand.
Pamiętaj o tym z wykładu. Następnie chcę dodać to ze średnikiem.
W tym momencie prawdopodobnie powinieneś przetestować.
Upewnij się, że możesz uzyskać dane wejściowe od użytkownika. I prawdopodobnie masz tylko printf, aby wyświetlić to, co wprowadziłeś.
Ale ponieważ wiem, że to prawda, zamierzam przejść dalej.
Będę musiał wykonać obliczenia w linii 15.
Przede wszystkim chcę przechowywać minuty w latach.
Więc co zrobię, to utworzę kolejną zmienną, o której
zapomniałem, która będzie przechowywać minuty w roku.
Ponieważ to ułatwi. Więc tutaj powiem tylko minuty i rok.
Zauważysz, że konwencja, której używam tutaj do nazywania zmiennych, to camelCase.
To miejsce, w którym masz małe litery dla
pierwszego totemu, a następnie każde następne słowo zamienia się wielką literą na pierwszy znak.
Nie wyjaśniłem tego wcześniej, więc pomyślałem, że o tym wspomnę.
Więc w pierwszym obliczeniu chcę ustawić minuty i rok, ponieważ
w ten sposób
mam obliczyć swoje lata. Tak więc minuty i lata faktycznie będą równe
- i lubię używać nawiasów tylko do uporządkowania, więc wszystko jest jasne. Dzięki temu jest bardziej czytelny.
Będzie to 60, ponieważ 60 to
liczba minut w godzinie. Pomnożę to przez liczbę godzin w ciągu dnia, czyli 24.
Pomnożę to przez liczbę dni w
roku, czyli 365.
A więc to obliczenie da mi, ile minut zajmuje jeden rok.
Teraz mogę na tej podstawie obliczyć swoje lata.
Więc tutaj, w następnym wierszu, mogę powiedzieć, że lata są równe - więc
używamy tutaj operatorów przypisania, równych.
A potem to, co robimy w tych nawiasach w wierszu
16, to gwiazdka, która jest mnożeniem. Tak całkiem schludnie.
Lata po prostu będą równe - i znowu chcę użyć nawiasów.
Wprowadzone minuty wykonane przez użytkownika podzielone przez
minuty w roku.
Więc jeśli wpiszesz 5000 minut i jest 20000 minut w roku,
5000 podzielone przez 20000 da ci, ile lat
jest, co byłoby 0-punktowe.
Aby obliczyć
dni, powiem tylko,
że wprowadzone minuty podzielone są
przez 60 i 60. 0,
ponieważ w ciągu godziny
jest 60 minut.
A kiedy mam godziny, mogę podzielić to przez liczbę dni,
która wynosi 24. 0.
Gdybym chciał, mógłbym to przeliczyć na inne obliczenia.
Ale znowu chcę się upewnić, że robimy to we właściwej kolejności.
Więc najpierw podzielę minuty wprowadź podzielone przez 60.
Nie musisz się tym martwić,
ponieważ robimy tutaj podział, więc asocjatywność będzie od lewej do
prawej i właściwie nie potrzebowałbym tych nawiasów. Ale zawsze lubię dodawać nawiasy, ponieważ dzięki temu rzeczy są bardziej czytelne.
Więc dodajmy to ostatnie.
To trochę zbędne. Nie potrzebuję tu nawet jednego. Po prostu
zostawmy to, tylko te pierwsze. A to powinno pokazać nasze dni.
Teraz, gdy wykonałem obliczenia i użyłem niektórych operatorów.
Chcę zrobić printf, aby po prostu wydrukować moje dane.
Tutaj powiem, wypisz najpierw minuty, procent
d minut
to w przybliżeniu procent f lat, a procent f dni.
A potem dodam nowy wiersz.
Więc to, co to robi, polega na tym, że używamy printf do wyświetlania
danych wyjściowych zmiennych, a symbole procentu pamiętają nasze specyfikatory znaczników.
Pierwszą rzeczą, którą chcę wydrukować, są minuty, więc muszę wstawić minuty po moim pierwszym przecinku, gdy jest on wprowadzany.
Drugi to rok, więc chcę powiedzieć lata, ponieważ to jest procent f lat.
A trzeci to takie dni.
Powinienem teraz skompilować i uruchomić, a oni powinni dokonać za mnie mojej konwersji.
Więc chodźmy dalej i budujmy. Nie mam poranków, żadnych błędów.
Biegnijmy i nie jestem nawet pewien, ile minut
trwa rok. Więc nie jestem pewien,
jak to przetestować, ale na początek poświęćmy 5000 minut.
Kiedy uruchamiam program, prosi mnie o podanie liczby minut, mam zamiar umieścić 5000.
A jeśli nie wprowadziłeś liczby, możesz mieć awarię,
ponieważ konwertujesz ją na liczbę w funkcji scanf.
Naciskam powrót, to mówi, że 5000 minut to w
przybliżeniu 0. 009513
lat i 3. 47222 dni,
co wydaje się mieć sens, ponieważ 60 minut na godzinę
pomnożone przez 24, to będzie mniej więcej 2400
na jeden dzień, czyli 2400
i 2400, nie 60 razy. Przepraszam, 60
razy 24 to mniej więcej 1200.
Więc 1200 idzie w 5000 ile razy dziennie
prawdopodobnie około 3. 4 dookoła.
Z grubsza wygląda to na poprawne.
Możesz więc uruchomić to wiele razy, ale wpisz kilka dużych liczb, co zauważysz.
Przechowujemy tutaj tylko dublety. Więc jeśli uruchomisz go i spróbujesz wprowadzić
zbyt dużą liczbę, powiedzmy 600 miliardów lub coś w
tym stylu, możesz się
pomylić - więc możesz mieć tutaj błędy. To pokazuje problemy z typami danych.
Więc przechowuję w int. Int ma tylko 8 bajtów. Wpisałem tę ogromną liczbę.
Tego nie można w nim przechowywać. Więc kiedy idę
to wydrukować, drukuje na zupełnie innym numerze 184298154.
Dzieje się tak, ponieważ to, co wpisuję, jest większe niż int.
Możesz więc zastanowić się, czy chcesz, aby ten program
był jeszcze bardziej precyzyjny i chcesz wprowadzić większe liczby, aby zmienić niektóre typy
danych, zmienić liczby całkowite na podwójne, a nawet podwoić na długie.
To znaczy 350 lat i 127000 dni.
A więc fajna, mała aplikacja do konwersji, która ponownie
próbuje zapewnić pewne zrozumienie
typów danych, a także operatorów.
Moglibyśmy mieć wiele różnych aplikacji do konwersji. Inną fajną aplikacją,
którą chcesz napisać, aby ćwiczyć, byłaby aplikacja Fahrenheit do
Celsjusza.
Napisz aplikację, która pozwoli użytkownikowi wprowadzić stopnie Fahrenheita, a następnie przekonwertować je na stopnie Celsjusza.
Mam na myśli wiele, wiele różnych scenariuszy, które wymyślasz. Ale to zmusi cię do korzystania z operatorów.
Moglibyśmy też zrobić tutaj
casting, gdybyśmy chcieli. Jeśli nam się to nie
podobało, dni były zbyt precyzyjne i może chcielibyśmy zmienić podwójną na int.
Chcemy, żeby było trochę mniej precyzyjne. Moglibyśmy tak naprawdę powiedzieć, aby rzucić
to na it, po prostu podając nawiasy, a
następnie wykonując int.
A to faktycznie zajęłoby tyle dni.
A jeśli jest to 3 dziesiętne. 549 czy coś, zamieniłoby to na 3.
Może to byłoby lepsze dla użytkownika, do ciebie.
Ale zachowajmy to na razie jako podwójne.
Ale tak się uczysz. Bawisz się programem, próbujesz różnych scenariuszy, próbujesz
różnych danych wejściowych, upewniasz się, że wszystko jest w porządku. Dziękuję Ci.