Site hosted by Angelfire.com: Build your free website today!
 

 


 
 


 

Установка компилятора Си


Основы языка Си я буду объяснять с расчетом на ДОСовский компилятор языка типа Borland C 3.1. Архив с ним весит немного и его можно скачать с моего сайта http://xakep.virtualave.net/.
После того, как скачал и распаковал компилятор, запусти среду для разработки программ. Допустим, ты его распаковал в D:\BC31. Тогда запускать надо D:\BC31\BIN\bc.exe
Далее над настроить директории - зайди в меню Options->Directories
Убедись, что пути указывают в те директории, в которые ты распаковал программу. После эти приготовлений можно приступать к программированию !

Начнем с примера программы на си :

1 #include <stdio.h>
2 void main(void)
3 {
4 int a,b,c;
5 a=3; b=4;
6 c=a*b;
7 printf("c=%d\n",c);
8 }

Строки я пронумеровал и ссылаясь на строку буду указывать её номер в круглых скобках.
Создай новый файл и набери в нем эту программу. Естественно без чисел в начале строки.

Объяснение :
Программа должна перемножать 2 числа и выводить результат на экран (программа под ДОС - в виндах все выводится тока в окна)

Теория - Программы на си состоят из функций. Все команды должны быть внутри функций. Как минимум должна всегда присутствовать главная функция (2). При старте программы исполняется именно она и с завершением её исполнения завершается исполнение всей программы.

Общее описание - Здесь мы объявляем одну функцию, которая не принимает аргументов и ничего не возвращает. Эта функция в программе явно нигде не вызывается. Её найдет сама система по имени (main) и вызовет при старте программы.

Построчное описание -
(1) «подключаем» библиотеку стандартного ввода/вывода, чтобы использовать из нее функцию вывода на экран в строке (7)
(2) начинается описание функции main. Перед именем функции пишем, какого типа значение функция будет возвращать. В данном случае - void, значит, функция ничего не будет возвращать. После имени функции в круглых скобках перечисляются параметры, которые функция будет принимать. Наша функция не принимает параметров. Ты спросишь - а почему именно так мы её объявили ? Объясняется просто - нам здесь не требуется передавать параметры функции и не требуется ничего возвращать. Результат работы функции выведет на экран.
(3) Начинается тело функции. Оно заключено в фигурные скобки. Вообще фигурные скобки используются для объединения последовательности команд.
(4) Объявляем переменные. Переменная - это кусок памяти для хранения данных, который имеет имя. Также каждая переменная имеет тип, т.е. мы заранее объявляем, какие именно данные мы собираемся в ней хранить. Это надо, чтобы система могла заранее зарезервировать кусок памяти нужного размера, т.к. разные типы данных имеют разные размеры. Здесь мы зараз объявляем 3 переменных одного типа - для хранения больших целых чисел (тип данных «int»).
(5) Заношу данные в переменные. Первое занесение данных называется «инициализацией» переменных. До инициализации в переменной может лежать что угодно. Обычная ошибка - считать, что там должен лежать ноль. Как видишь, не обязательно писать каждую команду на отдельной строке. Можно вообще всю программу в одну строку написать. Надо так форматировать текст программы. Чтобы его потом было удобно читать.
(6) Произвожу вычисление и заношу результат в третью переменную
(7) Вызываю функцию из библиотеки (1). Чтобы вызывать функцию, надо написать её имя и в круглых скобках через запятую записать передаваемые значения. Если ничего не передается, то просто пишутся пустые скобки. Здесь передается первым параметром строка - строки в Си записываются в двойных кавычках. Вторым параметром передаю число, лежащее в переменной «с». Работает printf следующим образом : она перебирает по одному символы из строки, переданной первым параметром и печатает их на экран. Но если она встречает спецсимвол, то его она не выводит на экран, а выполняет действие, которое этот спецсимвол задает. Обычно это не один спецсимвол, а последовательность спецсимволов. Здесь 2 таких последовательности. "%d" говорит printf'у, что 2-м параметром ему передано целое число и что в этом мете надо его вывести. "\n" означает перевод курсора в начало следующей строки.
(8) Конец функции main

Создаем ЕХЕ файл

1. Сохрани набранную программу под каким-нибудь именем (File->Save).
2. Билдишь ЕХЕшник (в BC 3.1 это клавиша F9). Он будет иметь то же имя, под каким ты сохранил исходняк.
3. Если в компилятор говорит, что есть ошибки - то их список появится в нижем окошке.
4. Выделяй строку с сообщением об ошибке и в окне с текстом программы компилятор подсветит то ошибку в тексте программы. Прочитай описание ошибки и исправь :-)
5. Если никак не получается - пиши, я помогу.
6. Когда ошибок нет - запускаешь программу не выходя из среды. Ctrl-F9
7. такая простая программка быстро выполнится и ты даже не заметишь что же она выдала на экран. Чтобы увидеть результат работы нажми Alt-F5.
8. Другой вариант запуска программы - без среды. Заходишь в Far/Norton/Win Commander. На крайняк запускаешь command.com :-) переходишь в директорию BorlandC. ЕХЕ файл будет иметь то же имя, под каким ты сохранил исходняк. Находишь его и запускаешь.

Задание

1. написать программу, которая вычисляет частное 2-х чисел. Т.к. частное скорее всего не целое число, то для хранения чисел и результата использовать тип int не следует. Надо использовать тип float. Он может хранить числа с запятой. Спец-последовательность для вывода функцией printf такого числа - "%f".
2. усовершенствовать программу : дать возможность пользователю вводить числа, которые программа будет делить. Для этого использовать функцию scanf. Вот команда, чтобы считать то, что вводит пользователь в переменную "a" типа float: scanf("%f",&a); Функция находится все в той же библиотеке stdio. Не забудь, прежде чем считывать вводимое пользователем число, написать ему на экране, что он сейчас должен ввести число.

Вопросы по теории

1. что такое переменная
2. что такое void
3. зачем нужны фигурные скобки
4. какая команда в программе на Си выполняется первой

Заглавна Форум Компилатори за C++