Новосибирский Государственный Университет
Опубликован: 26.08.2005 | Доступ: свободный | Студентов: 17104 / 2711 | Оценка: 4.07 / 3.55 | Длительность: 13:11:00
ISBN: 978-5-9556-0057-4
Лекция 1:

Общее знакомство

Лекция 1: 123 || Лекция 2 >

Исходные и выполняемые файлы

Приведем простенькую программу на языке Си:

#include <stdio.h>
int main( )
{
	printf("Добро пожаловать!\n");
	return 0;
}

Все конструкции языка мы рассмотрим в последующих лекциях. Если эту программу оттранслировать, то получим файл с выполняемой программой. В результате работы этой программы на дисплей будет выведено предложение: "Добро пожаловать!". Наша программа, несмотря на свою лаконичность и простоту, для компьютера является совершенно бессмысленным набором символов, так как он не понимает директив #include или printf. Компьютер понимает только специальный язык, называемый машинным кодом, т.е. набор последовательностей двоичных цифр, например 101000101. Если мы хотим, чтобы компьютер выполнил программу, мы должны осуществить перевод (трансляцию) кода, написанного на Си ( исходного ) в ее код (машинный). В результате этих действий будет получен выполняемый файл. Процесс перевода (трансляции) удалось переложить на сам компьютер. Программы, переводящие исходный код в машинный код, называются компиляторами. Детали процесса перевода зависят от особенностей конкретной системы. В некоторых компиляторах с языка Си, работающих на персональных ЭВМ, реализован альтернативный способ трансляции. В процессе перевода получается файл с расширением .obj, затем используется системный компоновщик для получения файла с выполняемой программой, т.е. файла с расширением .exe. Почему компиляция, а не интерпретация? Дело в том, что после компиляции получается более эффективный конечный продукт, чем при интерпретации.

Пример простой программы на языке Си

Рассмотрим простую программу на языке Си:

#include <stdio.h>
int main( )/*простая программа*/
{
	int courses;
	courses=30;
	printf("Сколько учебных курсов на сайте");
	printf(" www.intuit.ru?\n");
	printf("Более %d. Но будет еще больше!\n", courses);
	return 0;
}

Давайте выполним эту программу. Сначала используем текстовый редактор для создания файла, содержащего текст программы. Этому файлу нужно присвоить какое-то имя. Допустим - intuit.c. Выполним компиляцию программы. После запуска программы, при условии отсутствия синтаксических ошибок, результат должен выглядеть следующим образом:

Сколько учебных курсов на сайте www.intuit.ru?
Более 30. Но будет еще больше!

Пояснения к программе

Мы выполним два просмотра текста программы: во время первого просмотра объясним смысл каждой строки, а во время второго - рассмотрим детали.

Первый просмотр

#include <stdio.h> - включение другого файла.

Эта строка указывает компилятору, что нужно включить информацию, содержащуюся в файле stdio.h.

main( ) - имя функции

Любая программа, написанная на языке Си, состоит из одной или более функций, являющихся основными модулями, из которых она собирается. Наша программа состоит из одной функции main( ), а круглые скобки указывают именно на то, что main( ) - имя функции.

/* простая программа*/ - комментарий

/*, */ - открывающая и закрывающая скобки многострокового комментария.

Комментарии - это примечания, помогающие понять смысл программы. Они предназначены для читателя, и игнорируются компилятором.

{ - начало тела функции

Открывающая фигурная скобка отмечает начало последовательности операторов - тело, или определение, функции. Конец определения отмечается закрывающей фигурной скобкой }.

int courses - оператор описания

С помощью такого оператора мы объявляем, что будем использовать в программе переменную courses, которая принимает целые ( int ) значения.

courses = 30; - оператор присваивания

Этот оператор служит для присваивания переменной courses значения 30.

printf("Сколько учебных курсов на сайте?"); - оператор вывода на печать

С его помощью выводится на печать фраза, заключенная в кавычки:

Сколько учебных курсов на сайте?

printf(" www.intuit.ru?\n"); - еще один оператор вывода на печать. Этот оператор добавляет слова www.intuit.ru? в конец последней печатаемой фразы. Комбинация символов \n указывает компилятору на начало новой строки.

printf("Более %d. Но будет еще больше!\n",courses);

Этот оператор выводит на печать значение переменной courses, равное 30, содержащееся в кавычках. Символы %d указывают компилятору, где и в какой форме печатать значение переменной courses.

} - конец

Программа завершается закрывающей фигурной скобкой.

Лекция 1: 123 || Лекция 2 >
Вадим Ратьков
Вадим Ратьков

Объясните, пожалуйста, чем отличаются два этих кода?

printf("смешанное деление: 7./4 это %2.2f \n", 7./4);

и

printf("смешанное деление: 7./4 это %f \n", 7./4);

%f  это, понятное дело, float. А что такое %2.2f ?

Вопрос возник при прочтении лекции 3 часть вторая курса Основы программирования на языке C.

http://www.intuit.ru/studies/courses/43/43/lecture/1281?page=2

Анна Алексанина
Анна Алексанина

Я хочу выполнить одну из программ, которые есть в лекции. Но для этого мне надо компилировать текст, а я не знаю, как это сделать. ОС Windows.

Андрей Савенков
Андрей Савенков
Россия, Узловая
Евгений Шаров
Евгений Шаров
Россия, Североморск, школа№11, 1991