Як навчитися програмувати на C: 12 кроків

Мова C-одна зі старих мов програмування. Він був розроблений в 70-х роках минулого століття, але все ще залишається досить потужним засобом завдяки тому, що відноситься до низькорівневих засобів програмування, що використовують осмислені скорочення слів для позначення різних команд. Вивчення мови C також є відмінною базою для переходу до вивчення більш складних мов, а отримані тут знання будуть корисними практично у всіх мовах програмування і допоможуть вам втягнутися в самостійну розробку додатків. Щоб приступити до вивчення цієї мови, ознайомтеся з інформацією даної статті.

Частина1З 6:
Підготовка

  1. Скачайте і встановіть компілятор. мову С необхідно компілювати за допомогою програми, яка буде інтерпретувати код мови в машинні сигнали. Компілятори зазвичай бувають безкоштовними і доступні для різних операційних систем.
    • Для Windows спробуйте використовувати Microsoft Visual Studio Express або MinGW.
    • Для Mac одним з кращих компіляторів вважається XCode.
    • Для Linux найбільш популярнийGCC.
  2. Вивчіть основи.мова C-одна зі старих і досить потужних мов програмування. Він був призначений для операційної системи Unix, але був розширений і перенесений практично на всі операційні системи. Сучасним втіленням мови С є мова C++.
    • Мова C, в основному, складається з функцій, а в цих функціях можна використовувати змінні, умови і цикли, щоб зберігати інформацію і управляти даними.
  3. Ознайомтеся з найпростішим кодом. Подивіться на код найпростішої програми нижче, щоб ознайомитися з тим, як деякі складові мови взаємодіють один з одним, і зрозуміти принцип дії самої програми.
    #include &#lt;stdio.h&#gt;
    
    Int Main() 
    {
        Printf(" Здрастуй, світ!\n");
        Getchar();
        Return 0;
    }
    
    [1]
    • Команда#include виконується ще до запуску програми і запускає бібліотеки, які містять необхідні вам функції. У наведеному вище прикладі stdio.h дозволяє використовувати в Програмі функції printf() і getchar().
    • Командаint main() повідомляє компілятору про запуск основної функції "main", яка після закінчення поверне певне ціле число. Всі програми на C використовують функцію "main".
    • Фігурні дужки{} говорять про те, що весь їх вміст є частиною функції. В даному випадку, вони означають, що вміст дужок є частиною функції"main".
    • Функціяprintf() відображає на екрані користувача вміст круглих дужок. Наявність лапок гарантує, що вміст дужок буде вважатися текстом. Керуюча послідовність \n говорить комп'ютеру перенести курсор в наступний рядок.
    • Крапка з комою; позначає кінець рядка. Більшість рядків коду на C слід закінчувати цим знаком.
    • Командаgetchar() говорить комп'ютеру очікувати натискання кнопки, перш ніж робити що-небудь далі. Це дуже корисно, так як багато операційних систем виконують програму і потім негайно закривають вікно. В даному ж випадку програма не завершується до тих пір, поки не буде натиснута кнопка.
    • Командаreturn 0 вказує на завершення програми. Зверніть увагу, що функція "main" відноситься до функцій int. Це означає, що вона повинна повернути певне значення після завершення програми. Нуль " 0 " вказує на правильно виконану програму, а будь-яке інше число говорить про помилку.
  4. Спробуйте скомпілювати програму.наберіть свій код в редакторі коду і збережіть його файлом формату"*.c". Скомпілюйте його в компіляторі. Для цього зазвичай потрібно натиснути кнопку "Build"або " Run".
  5. Обов'язково коментуйте створюваний код. Коментарі-це частина коду, яка не піддається компіляції, але дозволяє пояснити, що саме відбувається в програмі. Вони корисні для нагадування самому собі про призначення коду і пояснення принципу його роботи іншим розробникам, які, можливо, будуть вивчати цей код.
    • Щоб написати коментар В C, поставте косу риску із зірочкою/* на початку пояснювального тексту і зірочку з косою рискою */ в його кінці.
    • Коментуйте всі базові складові вашого коду.
    • Коментарі можна використовувати для швидкого виключення з роботи окремих частин коду без їх видалення. Просто укладіть в коментар той код, який хочете відключити, і скомпілюйте програму. Якщо ви хочете повернути код, просто видаліть теги коментарів.

Частина2З 6:
Використання змінних

  1. Зрозумійте принцип роботи зі змінними.змінні дозволяють збирати і зберігати дані, отримані в результаті обчислень в самій програмі або за допомогою призначеного для користувача введення. Перш ніж змінні можна буде використовувати, їх слід позначити. Це можна зробити різними способами.
    • Серед найбільш часто використовуваних змінних слід назвати змінніint, char і float. Кожна з них зберігає різні типи даних.
  2. Дізнайтеся, яким чином в програмі оголошуються змінні.змінні слід позначити, або "оголосити", перш ніж їх можна буде використовувати в програмі. Оголосити змінну можна вказівкою використовуваного типу даних і назви змінної. Наприклад, правомірні всі зазначені нижче приклади:
    Float X;
    Char Name;
    Int A, B, C, D;
    
    • Зауважте, що у вас є можливість оголошувати відразу кілька змінних в одному рядку, якщо всі вони відносяться до одного типу. У такому випадку назви змінних просто відокремлюються комами.
    • Як і більшість рядків у C, кожен рядок з оголошенням змінної слід закінчувати крапкою з комою.
  3. Зрозумійте, де в коді можна оголошувати змінні.змінні для зручності рекомендується оголошувати на початку кожного блоку коду (тієї частини, яка укладена у фігурні дужки {}). Якщо ви спробуєте оголосити змінну пізніше її першого використання в коді, то програма не буде працювати правильно.
  4. Використовуйте змінні для зберігання введених користувачем даних.тепер, коли ви вже знайомі з принципами роботи змінних, можна спробувати написати просту програму, яка буде зберігати введені користувачем дані. Для неї буде потрібно ще одна функція scanf. Ця функція здійснює пошук введених даних для присвоєння конкретних значень змінним.
    #include &#lt;stdio.h&#gt;
    
    Int Main()
    {
      Int X;
    
      Printf( "Введіть число:" );
      Scanf( "%d", &#amp;X );
      Printf( "ви ввели %d", X );
      Getchar();
      Return 0;
    }
    
    • Специфікатор формату"%d" говорить функції scanf вважати ціле десятеричне число, введене користувачем.
    • Префікс&#amp; перед назвою змінноїx повідомляє функціїscanf , де можна буде знайти значення змінної, щоб її змінити, і зберігає введене ціле значення.
    • Заключна командаprintf зчитує значення введеної змінної і відображає його користувачеві.
  5. Навчіться керувати змінними.для управління введеними вами змінними можна використовувати математичні вирази. При цьому для математичних виразів найважливіше запам'ятати відмітну особливість, що одиничний знак дорівнює = присвоює значення змінної, а подвійний знак дорівнює = = порівнює значення по обидва боки від цього знака, для перевірки на відповідність один одному.
    X = 3 * 4; /* присвоює "x" значення 3 * 4, або 12 */
    X = X + 3; /* додає 3 до вихідного значення "x" і присвоює їй нове значення */
    X == 15; /* перевіряє, чи дорівнює змінна "x" п'ятнадцяти * /
    X &#lt; 10; / * перевіряє, чи є значення " x " меншим, ніж десять * /
    

Частина3З 6:
Створення умов

  1. Зрозумійте основу створення умов в мові С. на умовних операторах побудовано більшість програм. Вони являють собою вирази, які перевіряються на істину (TRUE) або брехню (FALSE) і в залежності від результату визначають подальші дії. Найпростіший оператор умови-це оператор if.
    • Параметри TRUE і FALSE в мові C працюють інакше, ніж в інших мовах програмування, до яких ви, можливо, звикли. Істинний результат TRUE завжди повертає число, відмінне від нуля. Якщо ви робите порівняння і результат виявляється істинним( TRUE), то програма повертає значення "1". Якщо результат помилковий (FALSE), то повертається значення "0". Знання цієї особливості допоможе вам зрозуміти принцип обробки виразів з оператором IF.
  2. Вивчіть базові оператори умови. умовні вирази будуються на застосуванні математичних операторів, які порівнюють значення. Нижче наведено список найбільш часто використовуваних операторів умови.
    &#gt; /* більше ніж * /
    &#lt; / *менше ніж * /
    &#gt;= / * більше або дорівнює * /
    &#lt;= / * менше або дорівнює * /
    == / * дорівнює * /
    != / * не дорівнює * /
    


    10 &#gt; 5 TRUE
    6 &#lt; 15 TRUE
    8 &#gt;= 8 TRUE
    4 &#lt;= 8 TRUE
    3 == 3 TRUE
    4 != 5 TRUE
    
  3. Складіть базовий приклад рядка з умовою IF. Оператор умови IF можна використовувати для того, щоб визначати, що програма повинна робити після оцінки виконання або невиконання умови. Цей оператор можна поєднувати з іншими умовними виразами для створення потужної багатоваріантної послідовності дій, але на даному етапі спробуйте записати легкий приклад, щоб спочатку просто познайомитися з використанням умов.
    #include &#lt;stdio.h&#gt;
    
    Int Main()
    {
      If ( 3 &#lt; 5 )
        Printf( "3 is less than 5");
        Getchar();
    }
    
  4. Використовуйте вираз ELSE / ELSE IF для того, щоб розширити задаються умови.можна розширити вираз з оператором IF, застосувавши вирази ELSE і ELSE IF, які будуть обробляти різні результати. ELSE вступає в дію тоді, коли перевірка виразу оператором if повертає брехню (FALSE). ELSE IF дозволяє включити в один рядок перевірку на виконання різних умов IF для певних ситуацій. Розгляньте вказаний нижче код програми, щоб зрозуміти, як взаємодіють всі ці параметри.
    #include &#lt;stdio.h&#gt;
    
    Int Main()
    {
      Int Age;
    
      Printf( "будь ласка, введіть свій поточний вік:" );
      Scanf( "%d", &#amp;Age );
      If ( Age &#lt;= 12 ) {
        Printf( " ти все ще дитина!\n" );
      }
      Else If ( Age &#lt; 20 ) {
        Printf( " Добре бути підлітком!\n" );
      }
      Else If ( Age &#lt; 40 ) {
        Printf( " ви все ще молоді серцем!\n" );
      }
      Else {
        Printf( " з роками приходить мудрість.\n" );
      }
      Return 0;
    }
    
    [2]
    • Програма зчитує введення користувача і проводить його через ряд послідовних умовних перевірок. Якщо введене число відповідає першій умові, то на екран виводиться перший виразprintf. Якщо перша умова не виконується, то перевірка переходить до кожної чергової умови ELSE IF, поки не буде виявлено істинний результат. Якщо ж жодна з таких умов не виконується, то інформація обробляється останнім виразом ELSE в кінці програми.

Частина4З 6:
Вивчення роботи з циклами

  1. Зрозумійте принцип роботи циклів. цикли-один з найважливіших аспектів програмування, так як вони дозволяють повторно запускати окремі блоки коду до тих пір, поки не буде виконано певну умову. Це дозволяє спростити програмну запис повторюваних дій і позбавляє вас від необхідності кожен раз писати нові умови, коли ви хочете, щоб програма щось зробила.
    • Існує три основних типи циклів: FOR, WHILE і DO...WHILE.
  2. Застосовуйте цикл FOR.це найпопулярніший і корисний з циклів. Він продовжує виконувати задану функцію, поки встановлені в FOR умови не будуть виконані. Цикли FOR вимагають вказівки трьох умов: ініціалізованої змінної, умови, яка повинна бути виконана, і способу оновлення значення змінної. Якщо вам не потрібні всі три цих умови, вам необхідно залишити Пробіл з крапкою з комою на їх місці, в такому випадку цикл буде вічним.[3]
    #include &#lt;stdio.h&#gt;
    
    Int Main()
    {
      Int Y;
    
      For ( Y = 0; Y &#lt; 15; Y++){
        Printf( "%d\n", Y );
      }
      Getchar();
    }
    
    • У вищевказаній програмі початкове значення змінноїy дорівнює нулю, а цикл триває до тих пір, поки значення змінної залишається меншим, ніж 15. Кожен раз, коли на екран виводиться нове значення y, воно збільшується на одиницю і цикл повторюється. Як тільки змінна y виявиться рівною 15, цикл завершиться.
  3. Застосовуйте цикл WHILE.цикли WHILE простіше, ніж цикли FOR. У них задається тільки одна умова і цикл працює до тих пір, поки ця умова виконується. Тут у вас немає необхідності ініціалізувати або оновлювати змінну, але це можна зробити в основній частині коду самого циклу.
    #include &#lt;stdio.h&#gt;
    
    Int Main()
    {
      Int Y;
    
      While ( Y &#lt;= 15 ){
        Printf( "%d\n", Y );
        Y++;
      }
      Getchar();
    }
    
    • Командаy++ додає одиницю до значення змінноїy при кожному виконанні циклу. Як тільки змінна y стає рівною 16 (зверніть увагу, що цикл повинен виконуватися до тих пір, поки змінна менше або дорівнює 15), цикл припиняється.
  4. Застосовуйте циклDO...WHILE. Даний цикл дуже корисний в тих випадках, коли операції циклу необхідно провести, принаймні, один раз. У циклах FOR І WHILE умова перевіряється на самому початку, тобто при отриманні помилкового результату задається умовою операція пропускається і не здійснюється. Цикл DO...WHILE перевіряє виконання умов в самому кінці, що дозволяє виконати дії циклу мінімум один раз.
    #include &#lt;stdio.h&#gt;
    
    Int Main()
    {
      Int Y;
    
      Y = 5;
      Do {
        Printf("Цикл працює!\n");
      } While ( Y != 5 );
      Getchar();
    }
    
    • Цей цикл відобразить передбачене повідомлення, незважаючи на те, що перевірка умови виявиться помилковою. Зміннаy задана рівною п'яти, а цикл повинен повторюватися в тому випадку, коли змінна не дорівнює п'яти, тому відбувається вихід з циклу. Повідомлення відображається на екрані один раз, так як умова перевіряється тільки в самому кінці.
    • Умова WHILE в циклі DO...WHILE слід закінчувати крапкою з комою. Це єдиний цикл, який вимагає наявності в кінці крапки з комою.

Частина5З 6:
Використання функцій

  1. Зрозумійте основи застосування функцій. функції являють собою автономні блоки коду, які можна викликати в різних ділянках програми. Вони полегшують повторення коду і допомагають спростити розуміння принципів роботи самої програми і подальше її зміна. Функції можуть включати в себе всі згадані вище прийоми, і навіть інші види функцій.
    • Рядокmain() на самому початку всіх зазначених прикладів є функцією, як і рядок GETCHAR()
    • Функції важливі для ефективної організації коду і полегшення його читання. Правильно користуйтеся функціями, щоб раціонально побудувати свою програму.
  2. Почніть з оголошення функцій. функції найкраще оголошувати на самому початку програми, щоб позначити їх призначення до того, як ви приступили до написання програмного коду. Базовий синтаксис для функцій виглядає як " return_название функції (аргумент 1, аргумент 2 і так далі);". Наприклад, щоб задати функцію, яка складає два числа, необхідно скласти наступний код:
    Int Add ( Int X, Int Y );
    
    • Так ви оголосите функцію, яка підсумовує два цілих числа (x і y), а потім повертає суму у вигляді цілого числа.
  3. Увімкніть функцію в програму.раніше оголошену функцію можна використовувати для створення Програми, що використовує два вводяться користувачем числа і складає їх між собою. Така програма дозволить продемонструвати роботу функції " add " і зрозуміти, як з її допомогою можна управляти введеними даними.
    #include &#lt;stdio.h&#gt;
    
    Int Add ( Int X, Int Y );
    
    Int Main()
    {
      Int X;
      Int Y;
    
      Printf( "введіть два числа, які слід скласти:" );
      Scanf( "%d", &#amp;X );
      Scanf( "%d", &#amp;Y );
      Printf( "сума введених чисел становить %d\n" , Add( X, Y ) );
      Getchar();
    }
    
    Int Add ( Int X , Int Y )
    {
      Return X + Y;
    }
    
    • Зверніть увагу, що оголошення функції все ще знаходиться у верхній частині програми. Він повідомляє компілятору, чого очікувати при виклику функції і що саме вона повинна повернути у вигляді результату. Це необхідно тільки в тому випадку, якщо ви хочете викликати функцію нижче по тексту програми. Запрограмувати функціюadd() можна до функції main(), і результат буде тим же без оголошення.
    • Фактичний функціонал конкретної функції визначається в кінці програми. Функціяmain() збирає числові дані від користувача, а потім направляє їх у функцію add() для обробки. А функція add () передає готовий результат назад функції main()
    • Коли функціяadd() вже оголошена, її можна викликати в будь-якому місці програми.

Частина6З 6:
Подальше вивчення мови

  1. Підшукайте книги з програмування на мові C. дана стаття охоплює лише основи мови, які лежать на поверхні можливостей Програмування на C і всієї пов'язаної з цим інформації. Хороша книга допоможе вам вирішити виникаючі проблеми і позбавить вас від чималого головного болю в процесі подальшої роботи з мовою.
  2. Вступите в різні спільноти програмістів.існує безліч спільнот як в мережі, так і в реальному світі, присвячених програмуванню на всіх можливих мовах. Пошукайте що-небудь на кшталт "об'єднання програмістів на C", щоб обмінюватися прикладами кодів та ідеями. Незабаром ви помітите, що багато чого почерпнули за допомогою спільноти.
    • По можливості відвідуйте хакатони. Це події, на яких команди програмістів і індивідуальні розробники за обмежену кількість часу повинні створити програму і знайти для неї певне рішення, проявивши при цьому чималу кмітливість. Так можна зустрітися з великою кількістю хороших програмістів, а самі хакатони проводяться регулярно по всьому світу.

Ще почитати: