Єдина Країна!

Головне меню

Наша кнопка

Українські уроки про ІТ

Друзі

Підтримка української армії



Вступ у С
Написав Igos   
Понеділок, 28 травня 2012 19:18
Переглядів: 11426

Першу річ, яку ви повинні зробити перед тим як почати працювати в С,повинні переконатись, що маєте компілятор. Ви спитаєте що таке компілятор?Компілятор перетворює програму яку ви написали у виконувану для того, щоб ваш комп'ютер міг зрозуміти і запустити її.Якщо ви обираєте компілятор на власний розсуд ,то краще всього використовувати  Code::Blocks with MinGW.Якщо ви на  Linux,ви можете використовувати  gcc  та якщо ви на  Mac OS X,ви можете використовувати XCode. Якщо цього ще не зробили ,то встановіть компілятор він знадобится для іншої частини навчальної програми.

 

Введення в С

Кожна повна програма С починаєтся з функції під назвою  "main". Функція простий набір команд, які роблять "що-небудь". Головна функція завжди викликається коли програма вперше виконуєтся. Від головної функції, ми можемо викликати інші функції,які будуть прописанні нами або іншими програмістами, або використовуючи вбудованні функції мови. Щоб мати доступ до стандартних функцій, які включаються з вашим компілятором, вам треба включити заголовок  #include directive (укр. #включити директиву). Що це робить? Бере все у вашому заголовку і вставляє у вашу програму. Давайте роздивимся робочу програму

 

#include stdio.h
int main() {
   printf( "I am alive!  Beware.\n" );
   getchar();
   return 0;
}

Давайте подивимся з чого вона складається. Директива #include "препроцесорна", яка говорить компілятору помістити код від заголовка так званий  stdio.h  перед  тим, як фактично створити виконувану програму. Включаючи файли в заголовку, ви можете отримати доступ до багатьох різних функцій--таких як printf, так і getchar, що входять в stdio.h.Крапка з комою використовуєтся для закінчення багатьох команд в С.

Інша важлива річ це рядок int main(). Цей рядок говорить компіляру, що ця функція називаєтся main і ця функція повертає ціле число ,тобто int. Фігурні дужки ({ and }) позначають початок і закінчення функції і інших блоків коду. Якщо ви програмували в  Pascal, ви знаєте їх як  BEGIN  і  END. Навіть якщо ви не програмували в Паскалі, це хороший аналог для  запамятовування їх значення.

Printf функція - стандартний шлях в С для виводу на екран. Лапки говорять компілятору , що ви хочете вивести рядок символів так як він записаний. Послідовність \n  фактично відносится як один символ, який  створює новий рядок(ми говоритимемо детальніше про це пізніше);до певного часу , тільки пам'ятайте,  що є декілька таких послідовностей, які можна вставити в рядок, але фактично вони не відображаються printf і що '\n' - одна з таких послідовностей. Фактичний ефект '\n' – перемістити ваш курсор на екрані до наступної лінії . Зверніть увагу на крапку з комою : вона додається в кінці усіх рядків, як наприклад виклики функції в C.

Наступна команда - getchar(). Це виклик іншої функції : очікує поки користувач натисне ENTER перед тим, як зчитати символи.  Ця лінія включаєтся, тому що багато компілятів відкривають нове консольне вікно, запускають програму,  а потім закривають вікно перед тим як ви зможете побачити результат. Ця команда тримає вікно від закриття, програма не робить цього, очікуючи поки ви не натиснете Enter. Цей рядок дає час подивитись як працює програма.

Нарешті  у кінці програми, ми повертаємо значення з  main до операційної системи, користуючись оператором return. Це повернення дуже важливе ,оскільки це може бути використане для того, щоб повідомити чи ваша програма працює. Повернене значення 0 означає успішне виконання програми.

Завершальна дужка закриває  функцію. Ви повинні попробувати скомпілювати цю програму і запустити її. Ви можете вирізати і вставити код у файл, зберігаючи як файл .c .Якщо ви користуєтесь компілятором командного рядка, як наприклад Borland C++ 5.5, ви повинні прочитати інструкцію компілятора  відносно компіляції.

Ви повинні розібратися і поекспериментувати з  функцією  printf для написання простих С програм.

Пояснення вашого Коду

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

Коли ви вчитеся програмувати, також корисно коментувати секції коду для того, щоб подивитися, як це впливає на програму .

Користування змінними

Ви уже маєте вміти написати програму, яка б виводила певне повідомлення на екран, а код був прокоментований. Це чудово, але як щодо взаємодії з користувачем? На щастя програма також може приймати дані ззовні.

Перед тим, як ви спробуєте отримати введені дані, ви повинні мати місце для зберігання своїх даних. У програмуванні введені дані та  інформація зберігаються в змінних . Є декілька різних видів змінних; коли ви говорите компілятору, що ви оголошуєте змінну, ви повинні включати тип даних разом з ім'ям змінної. Декілька основних типів включають char, int і float. Кожен тип може зберігати різні види даних.

Змінна типу char зберігає один символ,змінні типу int зберігає цілі числа (цифри без десяткових розрядів) і  змінна типу float зберігає цифри з десятковими розрядами. Кожен з цих типів зміних--char, int, і float – ключові слова ,якими ви користуєтесь коли оголошуєте змінну. Деякі змінні використовують більше пам'яті  комп'ютера, щоб зберігати їхні змінні.

Це може здатися дивним, нащо мати декілька типів змінних, коли здається, що деякі типи надлишкові. Але користуювання правильними змінними  може бути важливий для створення вашої програми, тому що деякі змінні вимагають більше пам'яті, ніж інші.

Перед тим як ви зможете користуватись змінною ви повинні повідомити компілятор про це і повідомити про її "тип". Щоб оголосити змінну, ви користуєтесь синтаксисом <variable type> <name of variable>;. Наприклад, основний опис змінної, виглядає як цей:

int myVariable;

Зауважте, що ми використовуєм крапку з комою у кінці рядка. Хоча ми не викликаємо функцію, крапку з комою все ще потрібно у кінці "виразу". Цей код створив змінну myVariable; зараз ми маємо можливість користуватися myVariable далі у програмі.

Дозволено оголошувати кілька змінних того ж типу в тому ж рядку; кожну  треба відокремити комою. Якщо ви намагаєтеся користуватися невизначеною змінною, ваша програма не працюватиме і ви отримаєте повідомлення про помилку.

Тут є деякі приклади опису змінної :

int x;
int a, b, c, d;
char letter;
float the_float;

Поки ви можете мати кілька змінних того ж типу, ви не можете мати кілька змінних з тим же ім'ям. Більше того, ви не можете мати змінних і функцій з тим же  ім'ям.

Завершальне обмеження на змінні це те, що описи змінної повинні бути перед іншими видами виразів "блоці коду"(блок коду - тільки сегмент коду { and }). Так в C ви повинні оголосити усі ваші змінні перед тим, як ви зробите що-небудь ще:

Неправильно

 

#include 
int main()
{
    /* Неправильно!  Спочатку мусить 
бути оголошена змінна */
    printf( "Declare x next" );
    int x;

    return 0;
}

Правильно

 

#include 
int main() 
{
    int x;
    printf( "Declare x first" );

    return 0;
}

 

Зчитування введених змінних

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

 

#include 

int main()
{
  int this_is_a_number;

  printf( "Please enter a number: " );
  scanf( "%d", &this_is_a_number );
  printf( "You entered %d", this_is_a_number );
  getchar();
  return 0;
}

 

Ми бачимо що #include і головну функцію; які повинні бути в кожній програмі, яку ви намагаєтесь запустити , #include  дає нам доступ до printf (також як і до scanf). (Оскільки ви, можливо, здогадалися io в stdio.h означає  "input/output"; std тільки означає "стандарт").

Ключове слово int оголошує this_is_a_number як ціле число.

Ці речі починають ставати цікавішими: scanf працює, беручи рядок і деякі змінні, модифіковані з &. Рядок говорить scanf, які змінні шукати: помічаємо, що ми маємо рядок, що містить тільки "%d" -- це говорить scanf функції про зчитування в ціле число. Другий аргумент scanf - змінна, що отримує дані. Ми  дізнаємося більше про що тут йдется пізніше,  але перш за все scanf треба знати, де змінна збережа  для того, щоб змінити її значення. Використання & перед змінною дозволяє вам отримувати його розташування і дає scanf значення зміної. & дає функції scanf напрям до змінної.

Коли програма запущена,кожен виклик  scanf перевіряє свій власний вхідний рядок, щоб подивитися, які види вводу треба очікувати, а потім зберігає значення в змінній.

printf також містить те '%d'-- як scanf, так і printf користуються тим же форматом для позначення значень, вкладених в рядки. В цьому випадку, printf приймає перший аргумент після рядка, this_is_a_number, і обробляє  це як один з типів "format specifier". В цьому випадку, printf обробляє this_is_a_number як ціле число на основі специфікованому формату.

Так що ж це значить обробка числа як ціле? Якщо користувач спробує ввести десяткове число, вона буде урізане (тобто, десятковий компонент числа буде проігноровано), коли зберігатиметься у змінній. Спробуйте ввести  послідовність символів або десяткове число, коли ви запустите приклад програми, відповідь буде залежати від введення і виводу.

Звичайно, незалежно від того, який тип ви використовуєте змінні нецікаві без можливості їх зміни. Кілька операторів використовувалися зі змінними: *, -, +, /, =, ==,>, <. * Множення, / ділення, - віднімання і + додає. Це, звичайно, важливо розуміти, щоб змінити значення змінної всередині програми важливо використовувати знак рівності. У деяких мовах знак рівності порівнює значення лівого і правого значень, але в C == використовується для виконання цього завдання. Знак рівності як і раніше надзвичайно корисний. Він встановлює значення змінної зліва  знака рівності відповідному значенню праворуч від знака рівності. Оператори, які виконують математичні функції повинні бути використані по праву сторону знаку рівності для того, щоб привласнити результат змінній ліворуч.

Декілька прикладів:

 

a = 4 * 6; /* (Зверніть увагу на коментарі) a тепер 24 */
a = a + 5; /* a рівна своєму значенню плюс 5 */
a == 5     /* Не 
задає a значення 5. А просто порівнює зі значенням 5.*/ 

 

Інші форми == це не спосіб привласнити значення змінній. Він перевіряє, чи змінні рівні. Це дуже корисно в багатьох областях C, наприклад, ви часто будете використовувати == в таких конструкціях, як умовні оператори та цикли. Ви можете здогадатися, як < і > функціонують. Вони більше і менше певного значення.

Наприклад:

 

a < 5  /* Порівняння чи змінна менша п'яти */
a > 5  /* Порівняння чи змінна більша п'яти */ 
a == 5 /* Порівняння чи змінна рівна п'яти */ 

 

Перекладено з www.cprogramming.com


( 10 Проголосувало )
Коментарі
Добавити новий
Віктор   |2012-07-20 09:14:45
Продовження буде?
Адміністратор   |2012-07-20 13:01:18
avatar людина, яка обіцяла перекладати статті по C
більше не пише, на жаль..

конкретно не
скажу чи буде продовження, якщо хтось
візьметься за подальший переклад, то курс
продовжиться...

сам працюю в іншому
напрямку
Залишити коментар
Ім`я:
e-mail:
 
Тема:
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Введіть цей настирливий код
Русская редакция: www.freedom-ru.net & www.joobb.ru

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 

Підписка

Хто онлайн?

Немає
На даний момент 20 гостей на сайті

Український рейтинг
TOP.TOPUA.NET