Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lec_cvv.docx
Скачиваний:
8
Добавлен:
01.06.2015
Размер:
110.86 Кб
Скачать

Введение в С 50

Введение в программирование на с

ВВЕДЕНИЕ

При записи программ и их отладке нужно соблюдать следующие правила:

1) Если компилятор не русифицирован, то все русскоязычные тексты записывать латинскими буквами.

2) На внешнем носителе (флешке) и в памяти компьютера завести папку со своей фамилией, куда необходимо записывать программы.

3) В начальном комментарии каждой программы необходимо записывать свои выходные данные (фамилию, группу, дату и т.д.).

4) По возможности, индивидуализировать ввод и вывод информации, предусмотренные в программе.

5) Если работа происходит в компиляторе Dev-C++, то при отладке и запуске программы нужно выбрать команды СОЗДАТЬ/ИСХОДНЫЙ ФАЙЛ, записать в окне программу и воспользоваться командами СКОМПИЛИРОВАТЬ И ВЫПОЛНИТЬ (F9). Отлаженную программу сохранить в своей папке.

6) Чтобы результаты работы программы не исчезали с экрана тут же, необходимо в конце функции main() перед оператором return, поместить оператор ввода символа getchar().

1.СТРУКТУРА ПРОГРАММ НА ЯЗЫКЕ С

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

Одним из механизмов взаимодействия между функциями являются аргументы. Список аргументов в круглых скобках идет следом за именем функции. Функция main чаще всего аргументов не имеет, поэтому список выглядит так: (). Скобки {} обрамляют начало и конец тела программы.

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

ОБЪЯВЛЕНИЯ И ТИПЫ ДАННЫХ

Существует различие между описанием переменной и ее определением (объявлением). Описание устанавливает свойства переменной: ее тип, размер и т.д. Объявление наряду с этим вызывает выделение памяти. В объявлениях и описаниях присутствуют имена переменных (идентификаторы). Любой идентификатор в С – это последовательность букв латинского алфавита и арабских цифр, в которой первый символ – обязательно буква. Подчеркивание считается буквой. В идентификаторе имеют значение лишь первые 8 символов, хотя их может быть и больше. Допустимые типы данных и их размеры показаны в приводимой ниже программе Р1:

/*типы данных и их размеры*/

#include<stdio.h>

main(){

Int a; /*объявление целой переменной длиной 2 байта*/

char b; /*объявление символьной переменной длиной 1 байт*/

float c; /*объявление переменной с плавающей точкой одинарной точности длиной 4 байта*/

double d; /*объявление переменной с плавающей точкой двойной точности длиной 8 байт*/

short x; /*объявление короткой целой переменной длиной 2 байта*/

long y; /*объявление длинной целой переменной длиной 4 байта*/

unsigned z; /*объявление целой переменной без знака*/

/*ввод с клавиатуры переменных*/

scanf(“%d %c %f %1f %d %1d %u”, &a, &b, &c, &d, &x, &y, &z);

/*вывод на экран значений переменных*/

printf(“%d %c %9.5f %19.11f\n %d %1d %u”, a, b, c, d, x, y, z);

getchar();

}

В программе используется библиотечная функция scanf() для ввода значений переменных a, b, c, d, x, y, z с клавиатуры. Затем используется библиотечная функция printf() для вывода на экран дисплея переменных a, b, c, d, x, y, z. Функции scanf() и printf()содержат управляющие строки в кавычках.

Управляющая строка функции printf() содержит объекты 3-х типов: обычные символы, которые просто выводятся на экран (копируются в выходной поток), спецификации преобразования, каждая из которых вызывает вывод на экран значения очередного аргумента из последующего списка, управляющие символьные константы.

Каждая спецификация преобразования начинается с символа % и заканчивается символом, задающим преобразование. Между знаком % и символом преобразования могут встретиться:

- знак минус, указывающий, что преобразованный параметр должен быть выравнен влево в своем поле;

- строка цифр, задающая минимальный размер поля;

- точка, отделяющая размер поля от последующей строки цифр;

- строка цифр, задающая максимальное число символов, которое нужно вывести, или число цифр, которое нужно вывести справа от 10-чной точки в значениях типов float или double;

- символ длины 1, указывающий, что соответствующий аргумент имеет тип long.

Далее записывается один из следующих символов преобразования:

d – аргумент преобразуется в 10-ичное представление;

о – аргумент преобразуется в 8-ричное представление;

х – аргумент преобразуется в 16-ричное представление;

с – значением аргумента является символ;

s – значением аргумента является строка символов (символы строки выводятся до тех пор, пока не встретится признак конца строки или не выведется число символов, заданное точностью);

е – значением аргумента является величина типа float или double;

f – значением аргумента является величина типа float или double;

g – используется как %е или %f и исключает печать незначащих нулей;

u – значением аргумента является беззнаковое целое число;

р – значением аргумента является указатель (адрес).

Если после знака % записан не символ преобразования, то он выводится на экран. Функция printf() использует управляющую строку, чтобы определить, сколько всего аргументов и каковы их типы.

Среди управляющих символьных констант наиболее часто используются следующие:

\а – кратковременная подача звукового сигнала;

\n – переход на новую строку;

\t – горизонтальная табуляция;

\b – возврат курсора назад на один шаг;

\r – возврат каретки.

Примеры: 1) printf(“\t i= %1d ; \n j=%d.\n”, i, j); 2) printf(“\tЭВМ\n%d\n”, i);

Во втором примере сначала будет выполнена горизонтальная табуляция (\t), т.е. курсор сместится от края экрана, затем на экран выведется слово «ЭВМ». Курсор переведется на начало следующей строки (\n), будет выведено значение i по формату d и курсор перейдет в начало новой строки (\n).

Функция scanf() формально описывается следующим образом:

scanf(“управляющая строка”, аргумент1, аргумент2, . . . );

Аргументы scanf() должны быть указателями на соответствующие значения (перед именем переменной записывается символ &). Управляющая строка содержит спецификации преобразования и используется для установления количества и типов аргументов. В нее могут включаться:

- пробелы, символы табуляции и переходы на новую строку (все они игнорируются);

- спецификации преобразования, состоящие из знака %, возможно символа * (запрещения присваивания), возможно, числа, задающего максимальный размер поля, и самого символа преобразования.

В функции scanf() допустимы следующие символы преобразования:

d – на входе ожидается 10-ичное целое;

о – на входе ожидается 8-ричное целое;

х – на входе ожидается 16-ричное целое;

с – ожидается одиночный символ;

s – ожидается строка символов;

f – ожидается число с плавающей точкой;

u – ожидается беззнаковое целое число;

р – ожидается появление указателя (адреса) в виде 16-ричного числа.

Перед символами d, o, x, f может стоять буква l, при этом, если она стоит перед d, o, x, то соответствующие переменные должны иметь тип long, а если перед f, то тип double.

Примеры:

  1. scanf(“ %d %f %c %s”, &i, &j, &k, l);

Здесь &i – 10-ичное целое, %j – вещественное, &k – символ, l – строка.

  1. scanf(“%d %*d %d”, &i, &i);

Здесь *d пропускается.

Ниже приведен пример – программы Р43, демонстрирующей функцию форматного вывода printf().

/*Демонстрация функции форматного вывода printf()*/

#include<stdio.h>

main(){

char a[30]; /*объявление строки символов*/

float a=86.531; /*объявление вещественной переменной а и присвоение ей значения*/

printf(“%s\n”,”функция форматного вывода”);

/*вывод строки символов*/

printf(“введите строку символов\n”);

scanf(“%s”, s);

printf(“( 20s): $20s\n”, s); /*задан минимальный размер поля (20 символов)*/

printf(“( -20s): $-20s\n”, s); /*строка s будет выводиться, начиная с левой границы поля (выравнивание влево)*/

printf(“( 20.10s): $20.10s\n”, s); /*цифра после точки задает максимальное число символов, которое нужно вывести из строки s (при выравнивании вправо)*/

printf(“( -20.10s): $-20.10s\n”, s); /*цифра после точки задает максимальное число символов, которое нужно вывести из строки s (при выравнивании влево)*/

printf(“( .10s): $.10s\n”, s); /*из строки s будет выведено 10 символов в поле из 10 символов; лишние правые символы отбрасываются*/

printf(“%%\n”); /*пример вывода символа % */

/*примеры вывода значений переменной а с различными управляющими параметрами*/

printf(“параметр е; а=%e\n”, a);

printf(“параметр f; а=%f\n”, a);

printf(“параметр g; а=%g\n”, a);

}

Ниже приводится пример программы P44, демонстрирующей функции форматного ввода scanf():

/*Демонстрация функции форматного ввода scanf()*/

#include<stdio.h>

main(){

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