Слайд 2Цели и задачи лекции
Цель леции – изучить основные термины и понятия, используемые
в процесссе изучения курса.
Слайд 3Определения
Существует несколько определений понятия алгоритма. Приведем два самых распространенных.
Алгоритм – последовательность чётко
определенных действий, выполнение которых ведёт к решению задачи. Алгоритм, записанный на языке машины, есть программа решения задачи.
Алгоритм – это совокупность действий, приводящих к достижению результата за конечное число шагов.
Вообще говоря, первое определение не передает полноты смысла понятия алгоритм. Используемое слово "последовательность" сужает данное понятие, т.к. действия не обязательно должны следовать друг за другом – они могут повторяться или содержать условие.
Слайд 4Определения
Свойства алгоритмов:
Дискретность (от лат. discretus — разделенный, прерывистый) – это разбиение алгоритма
на ряд отдельных законченных действий (шагов).
Детерминированность (от лат. determinate — определенность, точность) - любое действие алгоритма должно быть строго и недвусмысленно определено в каждом случае. Например, алгоритм проезда к другу, если к остановке подходят автобусы разных маршрутов, то в алгоритме должен быть указан конкретный номер маршрута 5. Кроме того, необходимо указать точное количество остановок, которое надо проехать, скажем, три.
Слайд 5Определения
Свойства алгоритмов:
Конечность – каждое действие в отдельности и алгоритм в целом должны
иметь возможность завершения.
Массовость – один и тот же алгоритм можно использовать с разными исходными данными.
Результативность – алгоритм должен приводить к достоверному решению.
Слайд 6Переменные и константы, типы данных
Фундаментальные объекты данных, с которыми работает программа, –
это переменные и константы. Используемые в программе переменные перечисляются в объявлениях или декларациях, в которых указывается их тип, а также иногда их начальные значения.
С именами переменных связывается тип данных, который контролируется компилятором и для которого выделяется определенное количество байтов памяти
Слайд 7Переменные и константы
Имена переменных должны начинаться с буквы (латинского алфавита) или символа
подчеркивания (например, _aza ), за которым могут следовать любые комбинации букв в любом регистре (заглавные или строчные), символы подчеркивания или цифры 0–9.
В языке С имеется различие между заглавными и строчными буквами. Поэтому переменная World будет отличаться от переменной world и т.п. При этом в определении переменной не разрешается символ пробела (пробелов) и некоторые другие символы, например, $.
Слайд 8Типы данных
Стандарт С89 определяет пять базовых типов данных:
int – целочисленный тип, целое
число;
float – вещественное число одинарной точности с плавающей точкой;
double – вещественное число двойной точности с плавающей точкой;
char – символьный тип для определения одного символа;
void – тип без значения.
Слайд 9Типы данных
Кроме того, существуют модификаторы, которые могут применяться к этим базовым типам.
Ряд компиляторов может поддерживать еще и логический тип _Bool. Тип void служит для объявления функции, не возвращающей значения, или для создания универсального указателя (pointer).
Объект типа char всегда занимает 1 байт памяти. Размеры объектов других типов, как правило, зависят от среды программирования и операционной системы.
Приведем модификаторы базовых типов данных. К ним относятся следующие спецификаторы, предшествующие им в тексте программы:
signed, unsigned, long, short
Слайд 10Типы данных
Базовый тип int может быть модифицирован каждым из перечисленных спецификаторов. Тип
char модифицируется с помощью unsigned и signed, тип double – с помощью long.
Слайд 11Типы данных
Базовый тип int может быть модифицирован каждым из перечисленных спецификаторов. Тип
char модифицируется с помощью unsigned и signed, тип double – с помощью long.
Слайд 16Пример программы
Пример. Напишите программу ввода символа, строки, действительных и целых чисел. Действительные
числа сложите, целые числа перемножьте. Для действительных чисел использовать типы float и double.
#include
#include
int main (void) {
// Объявления
char ch, str[79+1];// С учетом одного места для символа '\0'
int x, y, z;
float a, b, c;
double A, B, C;
Слайд 17Пример программы
// Выполнение программы
printf("\n\t Enter a symbol: ");
ch = getchar();
printf("\t The symbol
is: %c\n", ch);
_flushall();
printf("\n\t Enter a string: ");
gets_s(str, 79);
printf("\t The string is: %s\n", str);
a = 2.42F; b = 3.58F;
c = a + b;
printf("\n\t The sum %1.2f and %1.2f (as float) is equal: %1.4f\n", a, b, c);
Слайд 18Пример программы
A = 12.1234567796602;
B = 2.7182818284509;
C = A + B;
printf("\n\t The sum
%1.13f and %1.13f \n\t is equal (as double): %1.13f\n", A, B,C);
x = 2; y = 7;
z = x*y;
printf("\n\t Multiplication %d on %i (as an integer) is equal: %d\n", x, y, z);
Слайд 19Пример программы
printf("\n\n Press any key: ");
_getch();
return 0;
}
Слайд 21Описание функции printf()
Прототип функции printf() имеет вид:
int printf(const char *format, ?);
Функция printf() записывает в стандартный поток stdout (стандартный
выходной поток данных) значения аргументов из заданного списка аргументов в соответствии со строкой форматирования, адресуемой параметром format. Строка форматирования состоит из элементов двух типов. К элементам первого типа относятся символы, которые выводятся на экран. Элементы второго типа содержат спецификации формата, определяющий способ отображения аргументов. Спецификация формата начинается символом процента, за которым следует код формата.
Слайд 22Спецификаторы формата функции printf()
Слайд 23Спецификаторы формата функции printf()
Слайд 24Спецификаторы формата функции printf()
Слайд 25Спецификаторы формата функции printf()
Слайд 26Описание функции getchar ()
Прототип функции getchar() имеет следующий вид:
int getchar(void);
Функция getchar() возвращает из стандартного потока stdin (входного потока
данных) следующий символ. При чтении символа предполагается, что символ имеет тип unsigned char, который потом преобразуется в целый. При достижении конца файла, как и при обнаружении ошибки, функция getchar() возвращает значение EOF (End Of File – конец файла).
Слайд 27Описание функции gets ()
Прототип функции gets имеет следующий вид:
char *gets(char *str);
Функция gets()
читает символы (включая пробелы) из стандартного потока stdin и помещает их в массив символов, адресуемый указателем *str (далее это массив символов). Символы читаются до тех пор, пока не встретится разделитель строк или значение EOF. Для реализации EOF на клавиатуре следует набрать одновременно Ctrl+Z. Вместо разделителя строк в конец строки вставляется нулевой символ, свидетельствующий о ее завершении. Следует учесть, что нет способа ограничить количество символов, которое прочитает функция gets(). Поэтому массив, адресуемый указателем *str, может переполниться, и тогда программа выдаст непредсказуемые результаты.
Слайд 28Описание функции scanf()
Прототип функции scanf() имеет следующий вид:
int scanf(const char *format, ?);
Функция scanf() представляет собой функцию
для ввода данных общего назначения, которая читает поток stdin и сохраняет информацию в переменных, перечисленных в списке аргументов. Если в строке форматирования встретится разделитель, то функция scanf() пропустит один или несколько разделителей во входном потоке. Под разделителем, или пробельным символом, подразумевают пробел, символ табуляции \t или разделитель строк \n. Все переменные должны передаваться посредством своих адресов, например, с помощью символа &. Управляющая строка, задаваемая параметром format, состоит из символов трех категорий: спецификаторов формата, пробельных символов, символов, отличных от пробельных
Слайд 29Описание функции scanf()
Пример использования функции:
printf("\t Enter a real number a: ");
scanf_s("%f", &a);
printf("\t
Enter a real number b: ");
scanf_s("%f", &b);
c = a + b
Слайд 30Спецификаторы формата функции scanf()
Слайд 31Спецификаторы формата функции scanf()
Слайд 32Спецификаторы формата функции scanf()