Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
53__2.doc
Скачиваний:
7
Добавлен:
05.11.2018
Размер:
147.97 Кб
Скачать

1. Язык Си.

Язык Си завоевал широкую популярность благодаря уникальному сочетанию свойств языков высокого и низкого уровня.

Язык Си небольшой по кол-ву зарезервированных слов и осн его мощность заключена в библиотеках. Даже ф-ции ввода-выыода не явл-ся частью языка.

Язык Си не самый подходящий для начального изучения программирования, т.к. предоставляет бо(!)льшую гибкость при написании проги и возлагает большую ответственность на программера. Поэтому желательно писать проги в удобочитаемой форме.

Также в Си легко ошибиться и получить не тот результат. При чем нет никаких сообщений об ошибках

Основные отличия Си от Паскаля.

Паскаль – язык последовательный, структурный (изначально создавался как учебный язык). Язык Си – свободный и гибкий (изначально создавался как язык системного программирования).

Пас

1) Структура прог.

Пас

Раздел описаний. (const, label, type, var, procedure, function).

выпняемая часть (beginend).

Си

Команды препроцессора.

Определение типов.

Переменные.

Прототипы ф-ций (заголовок ф-ции).

Ф-ции (исполняемая часть)\\

Прога сост только из ф-ций (нет процедур), но результат любой ф-ции можно игнорировать. Кроме того, типом ф-ции может быть тип void – пустой тип, который не имеет значения.

Одна из ф-ций должна иметь имя main. С неё и начинается выполнение прог.

Отличие if: 1. Условие обязательно в (). 2. Нет then. 3. ставится «;» перед else. 4. Не обязательно в качестве условия использовать логическое выражение.

Основные отличия операций:

  1. В опере присваивания м.б. несколько операций. a=b=c=d=0;

  2. a div b (Pas – целое деление)

a/b ©

a mod b (Pas – остаток от деления)

a%b ©

Тип деления -целый или вещественный- определяется по типу оператора: 2/3=0 2.0/3=0.666…

  1. Логические операции

Равенство ==, неравенство !=, and &&, or ||, not !

  1. Операции модификации

a:=a+1 a+=1

a:=a*2 a*=2

a:=a/2 a/=2

a:=a-2 a-=2

  1. Инкремент и декремент

a=a+1 a++ ++a

a:=a-1 a-- --a

Если знаки стоят после переменной, то операция постфиксная, а если перед – префиксная.

Префикс – сначала изменяется значение переменной, а затем используется.

Постфикс – сначала используется, потом изменяется.

a=1; b=1;

a1=a++; //a1=1; a=2

b1=++b; //b1=2; b=2

2. Этапы обработки прог.

  1. Препроцессор. Обрабатывает текст проги до компиляции.

Директивы препроцессора представляют собой инструкции, записанные в тексте программы на СИ, и выполняемые до трансляции программы. Директивы препроцессора позволяют изменить текст программы, например, заменить некоторые лексемы в тексте, вставить текст из другого файла, запретить трансляцию части текста и т.п. Все директивы препроцессора начинаются со знака #. После директив препроцессора точка с запятой не ставятся.

Директива #include включает в текст программы содержимое указанного файла.

Директива #include широко используется для включения в программу так называемых заголовочных файлов, содержащих прототипы библиотечных функций.

  1. Расширение макроопределений, указанных с помощью директивы #define

Директива #define служит для замены часто использующихся констант, ключевых слов, операторов или выражений некоторыми идентификаторами. Идентификаторы, заменяющие текстовые или числовые константы, называют именованными константами. Идентификаторы, заменяющие фрагменты программ, называют макроопределениями, причем макроопределения могут иметь аргументы.

Директива #define имеет синтаксическую форму:

#define идентификатор текст

Эта директива заменяет все последующие вхождения идентификатора на текст. Такой процесс называется макроподстановкой. Текст может представлять собой любой фрагмент программы на СИ, а также может и отсутствовать. В последнем случае все экземпляры идентификатора удаляются из программы.

  1. Компиляция.

Текст проги языка Си транслируется в машинные коды. В результате на диске создается файл с расширением .obj и .lib

  1. Компановка.

Устанавливаются связи между полученным объектом файла и прогами и требуемых библиотек.

  1. Запуск проги.

3. Операторы ввода/вывода.

printf(<форматная строка, переменные>);

Форматная строка может включать в себя текст для вывода на экран.

printf(“%d %f %s”, int ,float,st);

%[флаг][ширина][.точность][l]<символ формата>

Флаг может принимать либо «+», либо «-» . «-» - выранивает вывод по левому краю поля.

Ширина – минимальный размер поля вывода //%5d

.точность – для вещественных

l – используется для длинных целых типов.

%с – символ %d – для целых

%u – беззнаковое %o – целое в десятиричном виде.

%x – целое в 16-ричном виде.

%s – для вывода строки

%f - вещ в формате с фиксированной точкой //100

%e - вещ в формате с плавающей точкой //1e2

%g – выводит или как f или как e (что короче)

\n – перевод строки \t - табуляция

\v – вертикальная табуляция \b – возврат на 1 символ

\r

\a –звуковой сигнал

Ввод

skanf(<форматная строка>,адреса)

В отличие от опера printf, форматная строка должна включать в себя только формат. (если их несколько, то через пробел)

Количество форматов определяется количеством переменных для ввода.

Форматы те же, что и в printf.

Перед именами строк и массивов операция взятия адреса не ставится, т.к. имя строки или массива определяет начало данной строки или массива.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]