Pierwsze kroki

Ucz się na przykładzie

Jednym z najlepszych sposobów, aby nauczyć się programować w nowym języku, w wielu przykładowych programach. Najlepszym sposobem jest skopiowanie i wklejenie, z poniższych programów do pliku tekstowego i skompilowania go. Następnie wypróbuj eksperymenty. Rozszerzając te przykładowe programy, umożliwisz zapoznanie się z różnymi aspektami języka C++ i będziesz mieć więcej pewności, jeśli chodzi o pisanie programów .

Przykład 1. Uruchom kompilator

Jeśli jeszcze nie zostało to zrobione, skopiuj i wklej następujący klasyczny program do pliku tekstowego i skompilowania go. Dostępne są instrukcje kompilacji. tutaj.

Prawdopodobnie udało Ci się już znać szczegóły tego programu w samouczku, dlatego nie będziemy tu podawać poszczególnych opisów. Jest kilka informacji, należy jednak zauważyć, jeśli chodzi o czytelność. Dotyczy komentarzy i formatowania, które ułatwiają czytanie, zrozumienie i utrzymywanie programów.

  • Każdy tworzony przez nas program zaczyna się od komentarza w nagłówku, który zawiera nazwę o autorze, jego danych kontaktowych, krótkim opisie i sposobie użycia (w odpowiednich przypadkach). Każda funkcja zaczyna się od komentarza na temat jej działania i użytkowania.
  • Komentarze objaśniające, używając pełnych zdań, za każdym razem, gdy kod nie dokumentować ani udokumentować, np. jeśli przetwarzanie jest trudne, nieoczywiste, interesujące lub ważne.
  • Zawsze używaj nazw opisowych: zmienne są rozdzielane małymi literami przez _, jak w przypadku zmiennej moja_zmienna. W nazwach funkcji słowa są oznaczane wielkimi literami, jak w MyExcitingFunction(). Stałe zaczynają się od „k” i użyj wielkie litery do oznaczania słów, na przykład kDaysInWeek.
  • Wcięcie składa się z wielokrotności dwóch wartości. Pierwszy poziom to 2 spacje. jeśli dalej wymagane jest wcięcie. Stosujemy cztery spacje, sześć spacji itp.
// hello.cpp: Maggie Johnson
// Description: a program that prints the immortal saying "hello world"

#include <iostream>
using namespace std;

int main() {
  cout << "Hello World!" << endl;
  return 0;
}

Eksperymenty, które możesz wypróbować:

  • Najważniejsze jest upewnić się, że możesz skompilować i uruchomić ten program.
  • Zmodyfikuj powyższy program tak, aby wydrukował tekst „Hello World!”. 4 razy dla 6 wierszy, gdzie każdy jest wydrukowany w polu po 17 spacji. Używaj pętli for w tym celu. Kliknij tutaj, aby więcej informacji o formatowaniu danych wyjściowych za pomocą funkcji Cout. Kliknij tutaj, aby znajdziesz rozwiązanie.
  • Korzystając z ukończonego właśnie programu, dowiedz się, jak wydrukować wiadomość „Cześć” świecie!”. wyrównany do lewej w polach 17 spacji (domyślnie jest wyrównany do prawej). Kliknij tutaj, aby zobaczyć rozwiązanie.

Przykład 2. Uzyskiwanie informacji

Możesz łatwo wprowadzić tekst z klawiatury w języku C++ za pomocą narzędzia cin. Oto przykład:

// get_input.cpp: Maggie Johnson
// Description: Illustrate the use of cin to get input.

#include <iostream>
using namespace std;

int main() {
  int input_var = 0;
  // Enter the do while loop and stay there until either
  // a non-numeric is entered, or -1 is entered. Note that
  // cin will accept any integer, 4, 40, 400, etc.
  do {
    cout << "Enter a number (-1 = quit): ";
    // The following line accepts input from the keyboard into
    // variable input_var.
    // cin returns false if an input operation fails, that is, if
    // something other than an int (the type of input_var) is entered.
    if (!(cin >> input_var)) {
      cout << "You entered a non-numeric. Exiting..." << endl;
      break;
      // exit the do while loop
    }
    if (input_var != -1) {
      cout << "You entered " << input_var << endl;
    }
  } while (input_var != -1);
  cout << "All done." << endl;
  return 0;
}

Eksperyment:

  • Jeśli wystąpi błąd danych wejściowych, strumień „przerwie” cin zwraca false, a program się zatrzyma. Ochrona przed takimi błędami jest bardzo ważna tak jak w programie powyżej. Co jednak, jeśli chcemy naprawić błąd, zamiast na zakończenie programu? Istnieją 2 etapy przywracania błąd:
    1. Usunięcie błędu za pomocą funkcji cin.clear().
    2. Usuń nieprawidłowe znaki ze strumienia. Można to zrobić na przykład za pomocą funkcji cin.ignore().

Wykorzystując te 2 kroki, napisz program, który odzyskuje błędne dane. Używaj Google może poszukać sposobów ich działania. Nasze rozwiązanie znajdziesz tutaj.

Przykład 3. Jakie dane generuje ten program?

#include <iostream>
using namespace std;

int main() {
  cout << " 1\t2\t3\t4\t5\t6\t7\t8\t9" << endl << "" << endl;
  for (int c = 1; c < 10; c++) {
    cout << c << "| ";
    for (int i = 1; i < 10; i++) {
      cout << i * c << '\t';
    }
    cout << endl;
  }
  return 0;
} 

Przykład 4. Rozkładanie składu ułatwia wszystko...

Czas zacząć pisać gry komputerowe! Pierwsze pytanie będzie trochę proste, ale to początek. Naszym zadaniem jest napisanie programu, który zdefiniuje zgadywanie, tę grę. Nasz program generuje losową liczbę od 0 do 100. Gracz musi: odgadnąć tajny numer. Program podaje podpowiedzi, np. „to za wysoka” albo „to jest za niskie” aż w końcu gracz zgadnie tajną liczbę.

Pracujemy nad tą grą w 3 krokach. 

  1. Dowiedz się, jak wygenerować liczbę losową w określonym zakresie wartości.
  2. Utwórz funkcję główną, która przetwarza jedno odgadnięcie z odtwarzacza i udostępnia wskazówki.
  3. Dodaj potrzebne elementy, aby można było zgadywać, dopóki gracz nie zgadnie numer.

Ten proces programowania jest nazywany rozkładem, co oznacza podział zadania. na podzadania, a każde z nich jest łatwe do wykonania.

Zaczynając od kroku 1, wyszukaj w Google, jak wygenerować liczbę losową w języku C++. Spróbuj wyszukać w „rand C++”. Tutaj znajdziesz .

W kroku 2. musimy otrzymać z odtwarzacza liczbę całkowitą (z uwzględnieniem odpowiednich sprawdza je w cin) i porównujemy go z tajnym numerem. Spróbuj i zapisz tę część gry, zanim sprawdzisz nasze .

Na koniec musimy dodać pętlę, która będzie zbierała odgadnięcia od gracza aż w końcu odgadną tajną liczbę. Po ukończeniu tej części zapoznaj się z naszym rozwiązaniem.

Rozkład danych to jedna z najważniejszych umiejętności, które musi opanować programista. Umiejętność podzielenia zadania na łatwe do wykonania części i wykonanie jednego jednocześnie jest kluczowa, bez względu na to, jak duży jest projekt. Oto kilka inne możliwości ćwiczenia rozkładu.

  • Wiele codziennych zadań daje okazję do nabycia umiejętności dekompozycji. Może Cię zaskoczyć, że Twój umysł działa właśnie w ten sposób.

    Na przykład: trzeba posprzątać naprawdę brudną kuchnię (np. dziewczynki właśnie upieły tort), dzielę zadania, aby opracować plan, i mieć pewność, że nie muszę od nowa pracować później. Nie chcę myć Jeśli na ladzie są różne rzeczy do posprzątania. zapewne później znów odpocząć. Może wystarczy dodać wszystkie składniki, najpierw na wylot; wrzucić wszystkie naczynia do zlewu; wyczyścić liczniki, mycie naczynia; a na koniec umyj podłogę. Istnieją inne sposoby, aby osiągnąć zamierzone wyniki to zadanie, ale jego rozmyślenie pomaga mi określić plan nie wymagają poprawek.

    Wykorzystaj codzienne zadania jako przykłady, aby rozwijać umiejętności dekompozycji. Kto wie, może dzięki temu możesz nawet pracować wydajniej w domu?

  • Największy wspólny dzielnik dwóch liczb całkowitych to największa liczba, której podzieli je po równo. Na przykład gcd(12; 18) = 6, gcd(–4; 14) = 2. Najbardziej efektywnym sposobem obliczania wartości gcd jest użycie algorytmu euklidesowego. Zapis program z funkcją obliczania gcd dla dwóch liczb całkowitych. Spróbuj wykonać funkcji bez rekurencji – pomoże to zrozumieć, jak algorytm Google.

    Precyzyjnie zdefiniuj swoje zadania podrzędne, np. znajdź kod funkcji euklidesowej algorytm; utworzyć dla algorytmu funkcję nierekurencyjną; itp. Tutaj znajdziesz .

Przykład 5: łamigłówki matematyczne

Jedną z potęgi komputerów jest to, że przeprowadzamy poszukiwania z użyciem brute-force rozwiązania problemu. Metoda prób i błędów sprawdza się w przypadku niektórych problemów. Komputery są szczególnie dobre w tego typu problemach. Weź pod uwagę to:

Konie kosztują 10 zł, świnie 3 zł, a króli tylko 0,50 zł. Rolnik kupuje 100 zwierząt za 100 dolarów. Ile zwierząt kupił? 

Istnieje niezwykle proste rozwiązanie tego problemu. Sprawdź, czy znajdziesz zanim obejrzysz go na nasze.

Oto kolejny, który możesz wypróbować:
Na ile sposobów możesz ułożyć 6 różnych książek na półce od lewej do prawej?

Tym razem podamy Ci rozwiązanie i umożliwimy Ci napisanie programu: 720)

Przykład 6: ciągi tekstowe do rozważenia

Co generuje następujący program?

#include <iostream>
using namespace std;

int main() {
  string str1 = "To be or not to be, that is the question";
  string str2 = "only ";
  string str3 = str1.substr(6, 12);
  str1.insert(32, str2);
  str1.replace(str1.find("to be", 0), 5, "to jump");
  str1.erase(9, 4);
  cout << str1 << endl;
  for (int i = 0; i < str3.length(); i++)
    cout << str3[i]; cout << endl;
}

Kliknij tutaj.

Przykład 7: Kolejne kroki z rozkładem – Twój pierwszy dzień pracy

Pracujesz na stanowisku sprzedawcy w firmie ExerShoe, która specjalizuje się wysokiej klasy butów do ćwiczeń w cenie około 225 USD za parę. Szef dał Ci trzy opcje wynagrodzenia. Musisz wybrać jedną z nich przed rozpoczęciem pierwszego dzień:

  1. proste wynagrodzenie w wysokości 600 USD tygodniowo;
  2. wynagrodzenie w wysokości 7,00 USD za godzinę plus 10% prowizji od sprzedaży;
  3. Bez wynagrodzenia, ale 20% prowizji i 20 zł za sprzedane buty

Jesteś ekspertem w zakresie programowania w C++ i potrafisz napisać program, który pomoże Ci wybrać najlepszą opcję wynagrodzenia.

Powszechnym podejściem do rozkładu w przypadku większego programu jest utworzenie główna funkcja, która ma postać zarysu rozwiązania problemu. Następnie: piszemy funkcje do wykonywania poszczególnych zadań.

Oto pierwsze zdania w programie głównym:

  GetInput(WeeklySales);
  CalcMethod1(WeeklySales);
  CalcMethod2(WeeklySales);
  CalcMethod3(WeeklySales); 

Sprawdź, czy możesz zastosować każdą z tych funkcji, zanim zapoznasz się z naszymi .

Przykład 8. Co jest dostępne gdzie?

Jakie są wyniki poniższego programu?

// scope.cpp, Maggie Johnson
// Description: A program to illustrate different scopes

#include <iostream>
using namespace std;

int a = 18;
int b = 6;

int function1(int a, int b) {
  return a - b;
}

int function2() {
  int c;
  c = a + b;
  return c;
}

int main() {
  int b = 12;
  int c = 0;
  a = function1(b, a);
  c = function2();
  cout << "a: " << a << " b: " << b << " c: " << c << endl;
}

Po znalezieniu odpowiedzi zapoznaj się z komentarzem w wersji skomentowanej przez nas.

Przykład 9. Przetwarzanie plików

Przetwarzanie plików w C++ jest wykonywane przy użyciu fstream. Aby zapisać plik w pliku, zadeklarować obiekt typu Instream i otworzyć go za pomocą parametru „out” i trybu uzyskiwania zgody. Sprawdź to w poniższym przykładzie.

// file.cpp, Maggie Johnson
// Description: An illustration of file processing
#include <fstream>
#include <iostream>
using namespace std;

int main() {
  char first_name[30], last_name[30]; int age;
  char file_name[20];
  // Collect the data.
  cout << "Enter First Name: "; cin >> first_name;
  cout << "Enter Last Name: "; cin >> last_name;
  cout << "Enter Age: "; cin >> age;
  cout << endl << "Enter the name of the file: "; cin >> file_name;

  // Create an ofstream called People, open the stream for output.
  ofstream People(file_name, ios::out);
  // Write the output to the stream.
  People << first_name << endl << last_name << endl << age << endl; return 0;
} 
  • Zobacz, czy potrafisz otworzyć właśnie utworzony plik i wyświetlić danych.Oto nasze rozwiązanie.
  • Sprawdź, czy można zmodyfikować ten program tak, aby użytkownik mógł wprowadzać wiele i rejestrowania danych za pomocą pętli. Chcemy również odczytywać wszystkie dane, jednocześnie.Oto nasze rozwiązanie.

Teraz możesz wypróbować kilka ćwiczeń z projektami.

Jak to jest być inżynierem oprogramowania w Google?

Przeczytaj, jak wygląda praca w Google na tym witrynie.

Ćwiczenia i projekty

Te ćwiczenia aby dowiedzieć się więcej o podstawowej obsłudze C++. Nie podajemy rozwiązań tych ćwiczeń i projektów, ponieważ chcielibyśmy wspólnie z innymi uczniami Google Cloud.

  1. Piłka do krykieta na trawie sypia w stosunku do bieżącej temperatury. Przez dodanie 40 do liczby świerszczeń krykieta w ciągu minuty, a następnie podzielenie ta wartość przez 4 daje nam temperaturę. Napisz program, który pobiera jako dane wejściowe liczbę sygnałów w ciągu minuty i wyświetla bieżącą temperaturę. Dla: przykład,
    Number of chirps: 120
    The temperature is: 40.0 degrees. 
  2. Napisz program, który obliczy Twoją końcową ocenę z kursu programowania. którą przyjmujecie. Oto schemat oceniania:
    Final grades will be based on the following:
    40% Assignments   15% Midterm Examination
    35% Final Examination
    10% Class Participation Grade 

    Twój program powinien poprosić użytkownika o podanie 4 wyników projektu: części semestralnej, oceny końcowe i oceny z sekcji. Następnie obliczamy i drukujemy wynik końcowy. Aby wykonać obliczenia, uśredniasz wyniki z 4 projektów łącznie i pomnóż wynik przez 0,4 (40%). Następnie mnożysz wynik semestralny do 0,15, wynik końcowy o 0,35, a ocenę udziału - 0,1. Potem dodaj do siebie wszystkie wyniki tych mnożeń.

    Korzystaj z funkcji wszędzie, gdzie możesz w tym programie. Możesz utworzyć funkcję aby uzyskać dane wejściowe, przekazując jako parametr wyświetlany ciąg z wyjaśnieniem. Oto przykładowy przebieg:

    Enter the score for the first assignment. 75
    Enter the score for the second assignment. 85
    Enter the score for the third assignment. 82
    Enter the score for the fourth assignment. 94
    Enter the score for the midterm. 81
    Enter the score for the final. 89
    Enter the score for the section grade. 100
    The final grade is: 86.9
  3. W miarę jak stopery elektroniczne stają się tańsze i dokładniejsze, nie może zawierać niewiarygodnych pomiarów czasu. Napisz program pobiera jako dane wejściowe przedział czasu podany w sekundach i zwraca liczbę godzin, minut i sekund. Na przykład
    Number of seconds: 3662
    Hours: 1
    Minutes: 1
    Seconds: 2     
  4. Przed napisaniem programu należy dokonać rozkładu następujących elementów. Gdy tylko jest to możliwe, używaj funkcji do tworzenia dobrze zorganizowanych programów.

  5. Załóżmy, że chcemy wydrukować baner dla następujących elementów:

    „ZABLOKOWANY DŹWIĘK JEST ZWIĄZANY Z TYMI, KTÓRYCH TO ZAWIERA”.

    Litery powinny być dość duże, bo to jest baner:

    FFFFF
    F
    FFF
    F
    F
    
    EEEEE
    E
    EEE
    E
    EEEEE
    
    ip.

    Jest to dobre rozwiązanie do rozstrzygania problemów. Zapewne zauważyłeś, że zamiast umieść wszystkie słowa kluczowe w głównej funkcji, będzie to znacznie wygodniejsze w różnych funkcjach. Moglibyśmy więc użyć funkcji „printE” funkcja i „printZ” i tak dalej.

    Napisz program z funkcjami, które tworzą baner zawierający słowo lub wyrażenie o wielu powtarzanych literach. Możliwości:

    FREEZY BREEZE MAKES FLEAS
    SNEEZE TWEETLE BEETLE PADDLE BATTLE
    SIX SICK CHICKS KICK
    SUE SEWS SUE'S SOCKS
    BEN BENDS BIM'S BROOM 
  6. Oto „magiczna liczba” problem: poproś użytkownika o wpisanie trzycyfrowego liczba, której pierwsza cyfra jest większa od ostatniej. Program się odwróci i odejmij zwrot od pierwotnej liczby. I na koniec, odwróć wynikową liczbę i dodaj ją do postaci odwrotnej. Na wyjściu efekt końcowy. Pierwotna liczba wpisana przez użytkownika musi być liczbą całkowitą typ (nie trzy znaki). Zastanów się, jak napisać funkcję, która pobiera całkowita jako dane wejściowe i zwraca odwrotność tej liczby. Przykład:
    input number: 901
    reverse it: 109
    subtract: 901 - 109 = 792
    reverse it: 297
    add: 297 + 792 = 1089   
  7. Prawo wymaga, aby producenci żywności określali daty ważności na swoich produktach, ale w prawie istnieje luka: nie wymaga ona datę ważności, która ma konkretną formę. Można ją więc zapisać suahili i wciąż mogą być legalne.

    Trzecia kuzynka Ralpha Nadera, Nadine, jest samozwańczym szpiegem ds. jakości żywności. Dowiedziała się, że wielu producentów artykułów spożywczych zaczęło kodować daty ważności produktów, aby klienci nie wiedzieli, jaka jest ich ważność i wielu różnych rzeczy.

    Kodowanie pozwala jednak sprzedawcom określać daty ważności jeśli z jakiegoś powodu chcą to zrobić.

    Jedna z popularnych metod kodowania:

    • zakoduj miesiące od stycznia do grudnia jako „A” do „L”
    • zakoduj każdą cyfrę daty jako „Q” do „Z”
    • zakodować rok jako „A” do „Z” co oznacza od 1 do 26, co jest następnie dodano do 1995 r.

    Nadine znalazła szczególnie wątpliwy bochenek chleba z datą: ARZM. Napisz program, który określi datę.

  8. To liczbowa analogia do znanej sztuczki karcianej. Poproś użytkownika o wpisanie trzycyfrowy numer. Pomyśl o liczbie jak ABC (gdzie A, B i C to trzy cyfr). Teraz znajdź pozostałe pozostałe liczby ABC, BCA i CAB w przypadku dzielenia przez 11. Te reszty nazywamy X, Y, Z. Dodaj je jako X+Y, Y+Z, Z+X. Jeśli któraś z sum jest nieparzysta, zwiększ lub zmniejsz ją o 11 (zależnie od tego, która z tych operacji zakończy się liczbą dodatnią, niż 20; (jeśli suma wynosi 9, zgłoś to i zatrzymaj ten proces). I na koniec, podziel każdą sumę na pół. Otrzymane cyfry to A, B, C. Zapis programu, który implementuje ten algorytm.

Zastosowanie: Wizualizacja muzyki z animacją

Inżynierowie oprogramowania tworzą szeroką gamę, często interesujących i innowacyjnych aplikacji. W każdym module tego kursu przedstawiamy inną aplikację, która umożliwia programistom które pomogą Ci zrozumieć wszystkie obszary, w których i inżynierowie.

Tutaj znajdziesz Aplikacja, która została stworzona do wizualizacji muzyki.