- •Основы программирования
- •Средства создания программ
- •Работа в интегрированной среде разработки программ turbo c (Borland c)
- •Основные функциональные клавиши и сочетания клавиш в Turbo c
- •Контрольные вопросы
- •Основы языка Си
- •Составляющие языка Си
- •Понятия алгоритмических языков (На примере языка Си)
- •Структура программы на языке Си
- •Директивы препроцессора
- •Главная функция
- •Переменные и массивы
- •Объявления переменных и массивов
- •Комментарии
- •Основные операции в Си
- •Арифметические операции
- •Логические операции и операции отношения
- •Операции присваивания
- •Функции ввода и вывода
- •Функция форматированного вывода printf( )
- •Функция форматированного ввода scanf( )
- •Функция неформатированного ввода getch( )
- •Функция неформатированного ввода gets( )
- •Функция неформатированного вывода puts( )
- •Программа – диалог
- •Контрольные к лабораторной работе «Программа-диалог»
- •Программа–тест
- •Контрольные вопросы к лабораторной работе «Программа-тест»
- •Конструкция switch/case/default
- •Операторы цикла
- •Цикл for
- •Стандартные математические функции
- •Пример выполнения лабораторной работы «Вычисление значения функции»
- •Контрольные вопросы к лабораторной работе «Вычисление значения функции»
- •Вложенные циклы.
- •Использование оператора break в циклах
- •Оператор continue
- •Оператор безусловного перехода goto
- •Действия с одномерными массивами
- •Инициализация массива
- •Ввод значений элементов массива с клавиатуры
- •Заполнение массива случайными числами
- •Вычисление суммы и произведения элементов массива
- •Поиск максимального элемента массива и его номера
- •Вычисление среднего арифметического
- •Перестановка элементов в массиве
- •Сортировка массива
- •Заполнение массива элементами из другого массива.
- •Контрольные вопросы к лабораторной работе «Одномерный массив»
- •Контрольные к лабораторной работе «Программа-диалог»
- •Контрольные вопросы к лабораторной работе «Программа-тест»
- •Контрольные вопросы к лабораторной работе «Вычисление значения функции»
- •Контрольные вопросы к лабораторной работе «Одномерный массив»
Логические операции и операции отношения
Логические операции и операции отношения используются при формировании логических выражений, имеющих только два значения:
1, если логическое выражение ИСТИННО;
0, если логическое выражение ЛОЖНО.
В языке Си используются следующие операции отношения:
> (больше),
< (меньше),
== (cравнение),
>= (больше или равно),
<= (меньше или равно),
!= (не равно)
Логические операции в Си:
&& (логическое И),
| | (логическое ИЛИ),
! (логическое НЕ).
Операции присваивания
"Оператор присваивания" является одним из основных средств языка.
…
int num;
num = 1;
Приведенную выше строку программы можно интерпретировать так: "присвоить переменной num значение 1". Дело в том, что, при объявлении переменной num была выделена ячейка памяти, и только теперь в результате выполнения оператора присваивания переменная получает свое значение. При желании мы могли бы присвоить ей другое значение - вот почему имя num обозначает переменную. Отметим, что этот оператор тоже заканчивается точкой с запятой.
Дополнительные операции присваивания
*= (умножение),
/= (деление),
+= (сложение),
-= (вычитание).
%= (остаток от целочисленного деления)
и некоторые другие.
Например, в результате выполнения фрагмента программы
int x, y, z, f, t; x=1; y=2; z=3; f=4;t=5; x*=2; y/=2; z+=2; f-=2; 6%=2; |
/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7* |
Переменная x будет умножена на 2 и получит значение =2, переменная y будет поделена на 2 и получит значение =1, переменная z будет увеличена на 2 и получит значение =5, переменная f будет уменьшена на 2 и получит значение =2, переменная t будет поделена на 2 и получит значение, равное остатку от деления =5.
Функции ввода и вывода
Практически любая компьютерная программа должна взаимодействовать с пользователем, например, с целью ввода исходных данных, вывода полученных результатов. Это взаимодействие обеспечивают функции ввода и вывода.
Функции ввода и вывода делятся на два класса: форматированные и неформатированные.
Форматированные функции являются универсальными, то есть, работают с данными различных типов. Обработка данных разных типов выполняется по различным алгоритмам. Следовательно, для корректной работы этих функций должен быть указан тип обрабатываемых данных. Эта задача решается с помощью так называемых форматов. Функции, использующие форматы, называются форматированными.
Неформатированные функции являются специализированными, работают с данными заранее определённого вида, поэтому для работы этих функций дополнительная информация о типе обрабатываемых данных не нужна, форматы не используются.
Функция форматированного вывода printf( )
Это одна из наиболее часто используемых функций в языке Си. Она имеет вид:
printf( “текстовая строка с форматами” ,<список аргументов>);
Буква f в имени этой функции напоминает о том, что данная функция является форматированной. Функция описана в заголовочном файле stdio.h.
Функция printf ( ) выводит на экран свой первый параметр – текстовую (или форматную) строку (без кавычек) с использованием значений аргументов, замещающих форматы в этой строке. Формат задает способ преобразования внутренного представления значения аргумента в выводимое значение. Преобразованное значение аргумента выводится на месте соответствующего ему формата. Аргументом в списке может быть переменная, функция или выражение. Аргументы и, соответственно, фор-маты могут отсутствовать. Если в текстовой строке находятся форматы, то в списке аргументов должно находится соответствующее количество аргументов – по одному для каждого формата в порядке слева направо. Таким образом, количество форматов должно соответствовать количеству аргументов. Формат начи-нается с символа %. В табл. 3 приведены наиболее часто используемые форматы, соответствующие рассмотренным выше (табл. 1) основным ти-пам значений.
Таблица 3
Формат |
Тип |
Выводимая информация |
%d |
int |
Целое число (со знаком “-“, если число отрицательное) |
%i |
int |
Целое число (без знака “-“, если число отрицательное), |
%f |
float |
Действительное число (со знаком “-“, если число отрицательное) |
%s |
char |
Строка символов |
%c |
char |
Один символ |
Форматы позволяют задать размер поля, занимаемого выводимым значением.
Вывод целого значения по формату %nd приведёт к тому, что выводимое значение займёт поле из n позиций, размещаясь в правой части этого поля.
Вывод действительного значения по формату %n.mf приведёт к тому, что выводимое значение займёт поле из n позиций (размещаясь в правой части этого поля) из которых m позиций будут отведены под дробную часть значения.
Вывод строки символов по формату %ns или одного символа по формату %nc приведёт к тому, что выводимое значение займёт поле из n позиций, размещаясь в правой части этого поля.
Кроме того, внутри текстовой строки функции printf ( ) могут ис-пользоваться так называемые управляющие последовательности (эскейп- последовательности). Они начинаются с символа обратной косой черты (“\”). Некоторые управляющие последовательности представлены в табл. 4.
Таблица 4
Управляю-щая последова-тельность |
Название |
Назначение |
\a |
Звонок |
Подача звукового сигнала |
\n |
Новая строка |
Переход к новой строке на экране |
\t |
Табуляция |
Отступ на 5 позиций влево от предшествующего текста |
\f |
Перевод страницы |
Начало нового экрана |
\r |
Возврат каретки |
Возврат к началу текущей строки |
\” |
Кавычка |
Выводит на экран кавычку ( “ ) |
\’ |
Апостроф |
Выводит на экран апостроф, т.е. одиночную кавычку (‘) |
\\ |
Обратная черта |
Выводит на экран обратную косую черту ( \ ) |
ПРИМЕР 8:
Рассмотрим следующий фрагмент программы:
int i = 5; printf(“\n %d – моя любимая оценка! “, i); |
/*1*/ /*2*/ |
Выполнение этого фрагмента приведёт к появлению на экране сообщения, выводимого с новой строки:
5 – моя любимая оценка! |