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

Примеры

1. Рассмотрим пример простейшей программы, выводящей на экран две строки. В первой строке выводится фраза «Программирование – это интересно!», во второй «Но сначала нужно хорошо учиться!»

#include <stdio.h>

int main(void)

{

printf( "\n Программирование – это интересно!");

printf( "\n Но сначала нужно хорошо учиться!");

return 0;

}

2. Рассмотрим пример простейшей программы, выводящей на экран десятичные цифры в следующем виде:

1 2 3 4

5 6 7 8

9

#include <stdio.h>

int main(void)

{

printf( "\n 1\t2\t3\t4”);

printf( "\n 5\t6\t7\t8”);

printf( "\n 9”);

return 0;

}

Задания для самостоятельной работы

Каждому студенту рекомендуется выполнить по 3 упражнения из 1–15. Используя esc-последовательности, выведите на экран следующий текст.

  1. Это строка, иначе –“стринг”, иначе – “строковый литерал”

  2. Это звуковой сигнал! (Сопроводите вывод строки звуковым сигналом)

  3. Это строка?

“Да!”

  1. Это ‘апостроф’ ?

Нет, это “кавычка” !

  1. “ – это двойные кавычки

‘ – это апостроф

  1. Это “строка”?

Это “строка”! (Используя символ возврата на шаг, во второй строке удалите восклицательный знак)

  1. Это строка?

Это строка! (Замените слово “Это” во второй строке словом “Да”, используя возврат каретки)

  1. Это “строка”?

Это “строка”! (Сначала выведите это текст, а затем, используя символ возврата каретки, во второй строке выведите слово «НЕТ!»)

  1. \\Это комментарий?

//Нет, это комментарий

  1. Используя шестнадцатеричные коды символов, выведите на экран текст: “Это строка”

  2. Используя шестнадцатеричные коды символов, выведите на экран текст: “Программа на Си”

  3. Используя восьмеричные коды символов, выведите на экран текст: “Программа на Си”

  4. Вывести на экран следующую “рожицу”:

_ _

о о

|

|

______

  1. Вывести на экран следующую таблицу:

22 33 44

55 66 77

  1. Вывести на экран следующий «треугольник»:

*

***

*****

*******

*********

2. Переменные. Основные типы данных. Форматный ввод-вывод

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

i, i2, i_2, stroka, STROKA, F_I_O

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

Описание переменных заданного типа имеет следующий формат:

тип имя1 [=иницал._выражение1], имя2 [=иницал._выражение2],…;

где

тип – один из основных типов (таблица 2);

имя – идентификатор;

инициал._выражение – необязательный инициализатор, определяющий начальное значение соответствующего объекта.

Таблица 2. Основные типы данных

Тип данных

Диапазон значений

char (символьный)

-128…127

short (короткий целый)

-32768…32767

int (целый)

-32768…32767

long (длинный целый)

-2147483648…2147483647

unsigned char (беззнаковый символьный)

0…255

unsigned int (беззнаковый целый)

0…65535

unsigned long (беззнаковый длинный целый)

0…4294967295

unsigned short

0…65535

float (вещественный)

3.4Е-38…3.4Е+38

double (вещественный с удвоенной точностью)

1.7Е-308…1.7Е+308

long double (длинный вещественный с удвоенной точностью)

3.4Е-4932…3.4Е+4932

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

Кроме типов, приведенных в таблице 2, к основным типам относят перечислимый тип enum и тип void (отсутствие значения) (подробнее – в лекциях).

Из основных типов с помощью операций *, &, [], () и механизмов определения структурированных типов (классов, структур, объединений) можно конструировать множество производных типов, которые будут рассмотрены позднее.

Для определения размера (в байтах) области памяти, выделяемой для переменной определенного типа, в С используется операция sizeof. Разрешены два формата операции:

sizeof выражение

или

sizeof (тип данных).

sizeoff не вычисляет значения выражения, а только определяет его тип, для которого затем вычисляется размер. Например, пусть определена переменная int i. Тогда операция sizeof(i) определит, сколько байт выделено для переменой i.

Соотношение между основными типами можно записать так:

1==sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <=sizeof(float) <= sizeof(double)

Для вывода информации используется функция printf(). Ее описание содержится в заголовочном файле stdio.h. При этом имеется возможность форматировать данные, то есть влиять на их представление на экране дисплея. Оператор вызова функции можно представить так:

printf(форматная_строка, список аргументов)

Форматная строка записывается в двойных кавычках и может включать произвольный текст, управляющие символы и форматные спецификаторы. Они предназначены для управления формой внешнего представления значений аргументов функции printf() и начинаются с символа %. В список аргументов включают объекты, значения которых должны быть выведены из программы. Это выражения, переменные, константы и функции. Количество аргументов и их типы должны соответствовать последовательности спецификаций преобразования в форматной строке. Список аргументов может отсутствовать. Например:

printf(“\nHello, world!\n”) //здесь нет аргументов, а в форматной

//строке содержится два управляющих символа \n

Обобщенный формат форматного спецификатора:

%флажки ширина_поля.точность модификатор спецификатор

Здесь обязательными являются только два элемента – символ ’%’ и спецификатор.

Ширина_поля –целое положительное число, определяющее длину (в позициях на экране) представления выводимого значения.

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

Модификаторы . Возможные значения:

‘-‘ – выравнивание выводимого значения по левому краю

Модификатор ‘0’ – при использовании модификатора ширины поля пустые позиции слева от значения заполняются пробелами. Использование модификатора ‘0’ позволяет заменить их на нули.

Модификатор ‘l’ позволяет вывести на экран значения типа long int и double

Модификатор ‘h’ позволяет вывести на экран короткие значения (значения с модификатором short)

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

d- целое десятичное число (тип int)

c-символ

s-строка

u- беззнаковое целое

f- вещественное число с точностью до 6-го знака

e- вещественное число в экспоненциальной форме с точностью до 6-го знака

g-вещественное число (аналог f или e, но без лишних нулей в конце)

Для ввода данных используется функция scanf(). Так же, как и для функции printf(), для функции scanf() указываются управляющая строка и следующий за ней список аргументов.

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

  1. printf() работает с переменными, константами и выражениями, в то время как scanf() использует адреса переменных. Более подробно работа с адресами будет рассмотрена позднее.  Важно запомнить два требования:

  • Если нужно ввести некоторое значение и присвоить его переменной одного из основных типов, то перед именем переменной требуется писать символ &.

  • Если требуется ввести значение строковой переменной, то использовать символ & не нужно.

  1. Различия в форматных командах:

  • Не используется спецификатор %g.

  • Спецификаторы %f и %e работают абсолютно одинаково.