Введение в программирование (язык C, лекция 1)

Содержание

Слайд 2

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ ОСНОВНЫЕ

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

ОСНОВНЫЕ ПОНЯТИЯ

Автоматизированная система

= аппаратура + программы + пользователи
вычислительная система
Программное обеспечение ЭВМ: прикладное, системное и инструментальное
Прикладное ПО предназначено для решения конкретных прикладных задач.
Системное (общее) ПО обеспечивает функционирование вычислительной системы и необходимо для решения всех задач (основная часть СПО - операционная система - ОС).
Инструментальное ПО – средства для разработки программ (системы программирования).
Слайд 3

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Основные

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Основные понятия

Система программирования

включает: языки программирования, трансляторы, библиотеки программ, текстовые редакторы, редакторы связей, загрузчики, средства отладки.
Язык программирования - система обозначений для записи программ. Наиболее распространенные языки программирования Basic, Pascal, C, C++, Fortran, Lisp, Prolog, Ada и др. Перечислены машинно-независимые языки высокого уровня (ЯВУ).
Машинная независимость языка означает возможность использовать язык для ЭВМ разных типов.
Уровень языка определяется степенью его близости к машинному языку.
Слайд 4

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Для

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Для использования языка

программирования на ЭВМ необходим транслятор.
Транслятор – программа для перевода программ с одного языка на другой.
Виды трансляторов: компилятор, интерпретатор, ассемблер и др.
Компилятор – анализирует и переводит программу с ЯВУ на язык, близкий к машинному, без непосредственного выполнения.
Исходный модуль - текст программы на ЯВУ. Объектный модуль - результат компиляции.
Интерпретатор – анализирует и сразу выполняет каждую команду исходной программы.

Основные понятия

Слайд 5

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Программирование

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Программирование - наука,

изучающая теорию и методы разработки, производства и эксплуатации ПО ЭВМ. До половины затрат на разработку программ требует ее отладка.
Отладка программы - обнаружение ошибок в программе, их локализация и исправление.
Методы отладки – тестирование, верификация.
Тестирование - выполнение программы вручную или на ЭВМ на контрольных примерах (тестах).
Тест - исходные данные программы вместе с ожидаемым правильным результатом работы.
Верификация - доказательство правильности программы в общем виде, по законам математики.

Основные понятия

Слайд 6

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Алгоритм

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Алгоритм - это

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

Основные понятия

Слайд 7

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Способы

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Способы записи алгоритма

Текстовый. Универсален, наиболее распространен.
Табличный. Не универсален, но удобен в отдельных случаях.
Графический. Наиболее нагляден. Используется в виде схем алгоритмов и программ.
Правила оформления схем регламентируются государственным стандартом.

Основные понятия

Слайд 8

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Основные

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Основные понятия

Основные символы

в схемах алгоритмов:
"процесс" (прямоугольник) - для описания операций ввода, обработки и вывода данных;
"решение" (ромб) - для разветвления алгоритма;
"пуск-останов" (овал) обозначает начало, конец и прерывание выполнения алгоритма;
"комментарий" - для пояснения схемы.
Слайд 9

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Процесс

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Процесс

Комментарий

Пуск-останов

Решение

Основные символы (виды

блоков) схем алгоритмов

а = 10, 15, 20, … мм; b = 1,5 а (допускается b = 2 a)

Слайд 10

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Пример

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Пример простой программы

на языке С

/* Программа 1.1. Площадь прямоугольника (в стиле С) */
#include
main ()
{ float a, b, /* стороны прямоугольника */ s; /* площадь прямоугольника */
printf ("\n Стороны прямоугольника = "); scanf (“%f %f”, &a, &b);
s = a * b;
printf ("\n Площадь = %.2f \n ", s);
return 0; }
Можно обойтись без дополнительной переменной s, тогда вычисление площади выполняется при выводе результата:
printf ("\n Площадь равна =%.2f \n ", a * b);

Слайд 11

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Пояснения

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Пояснения к программе

/*

*/ - комментарий языка С не выполняется и не влияет на работу программы.
main() – заголовок главной функции.
Тело функции в фигурных скобках { }.
Программа на языке С состоит из одной или нескольких функций, выполнение начинается с функции main().
return - оператор возврата, завершает выполнение функции. return 0; означает успешное завершение программы.
float a, b, s; – объявлены переменные вещественного типа.
Слайд 12

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Пояснения

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Пояснения к программе

printf

() - вызов стандартной функции для вывода сообщения и результата.
printf ("\n Стороны прямоугольника = ");
Форматная строка содержит текст в кавычках, где символ \n - переход на новую строку.
printf ("\n Площадь = %.2f \n ", s);
Форматная строка, кроме текста, содержит формат вывода переменной s. Выводится значение переменной s или выражения a*b.
%f – формат вещественного числа, %.2f –формат вывода с точностью до 2-х знаков.
Слайд 13

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Пояснения

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Пояснения к программе

scanf()

- вызов стандартной функции для ввода исходных данных.
scanf (“%f %f”, &a, &b);
Форматная строка содержит форматы ввода вещественных переменных a, b.
Символ & (амперсенд ) перед именем переменной - операция получения адреса переменной.
#include - директива препроцессора для использования стандартных функции ввода/вывода.
- заголовочный файл, содержит объявления стандартных функций ввода/вывода.
Слайд 14

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Постоянная

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Постоянная и переменная

величина

Величина имеет обозначение,
обладает значением,
принадлежит некоторому типу данных,
хранится по некоторому адресу в ОП.
Константа - для представления постоянных величин.
Значение константы не может измениться.

Слайд 15

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Постоянные

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Постоянные и переменные

величины

Типы констант Примеры констант Целые числа: 15 -1 100 9 Вещественные числа: -1.05 0.0001 1е-4 Символьные : ‘A’ ‘a’ ‘*’ ‘9’ Строковые: “KGTU” “Kazan”
Символические константы
Константа может быть именована, по традиции имена констант задают заглавными буквами. Примеры объявления символических констант:
#define N 20 const float PI = 3.1415;

Слайд 16

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Переменная

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Переменная величина может

принимать в программе различные значения.
До использования переменная величина должна быть объявлена.
Объявление переменной величины: <тип> <имя> [,<имя> ] …;
При объявлении определяются: имя переменной величины – идентификатор; тип данных, к которому она относится.
Идентификатор – имя для обозначения переменной величины в программе. Именуются также функции, метки.

Постоянные и переменные величины

Слайд 17

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Постоянные

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Постоянные и переменные

величины

Идентификатор – последовательность латинских букв, цифр, символов подчеркивания.
Идентификатор должен начинаться с буквы или символа подчеркивания. Не допускается совпадение имени с ключевыми словами языка, например, с ключевым словом while.
Примеры идентификаторов: summa, X, k2, k_sim

Слайд 18

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Постоянные

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Постоянные и переменные

величины

Тип данных величины определяет: - множество допустимых значений величины; - набор допустимых операций над ними; - способ представления этих значений в памяти.
Встроенные типы данных:
Целые – int, unsigned (беззнаковое целое), short (короткое целое), long (длинное целое), char (символ);
Вещественные – float, double (двойной точности);
Прочие: пустой – void; перечислимый – enum.

Слайд 19

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Целые

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Целые величины

Тип Размер

Диапазон значений
unsigned char 1 байт 8 бит от 0 до 255;
int 2 байта 16 бит от -215 до 215-1, т. е. от -32768 до 32767
short (<= int) 2 байта 16 бит от -32768 до 32767
unsigned 2 байта 16 бит от 0 до 216-1 т. е. от 0 до 65535
unsigned short 2 байта 16 бит от 0 до 65535
long (>= int) 4 байта 32 бита от -231 до 231-1 т. е. приблизительно ±2*109
unsigned long 4 байта 32 бита от 0 до 232-1 т. е. приблизительно от 0 до 4*109
Слайд 20

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Вещественные

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Вещественные величины

Тип Размер

Точность Диапазон значений
float 4 байта 6..7 знач. цифр ± (от 10-38 до 10+38)
double 8 байт 15 знач. цифр ± (от 10-308 до 10+308)
long double 10 байт 19 знач. цифр ± (от 3.4·10-4932 до 1.1·10+4932)
Слайд 21

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Примеры

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Примеры объявления переменных

величин

int i, j; float x, y=0; char c;
int z[5]={1, 3, 12,-8, 15}; float a[10][10]; char st[80]; char s[]=“KGTU”;

Слайд 22

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Присваивание

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Присваивание

Присваивание – изменение

значения переменной величины.
Оператор присваивания имеет вид <имя_величины> = <выражение>;
Присваивание можно понимать как операцию «заменить на». Вычисляется значение выражения, которое заменяет прежнее значение переменной.
Например, x = 20; y = x*10+5; x++; x = x*x; x += 10; y--;
Слайд 23

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Выражения

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Выражения языка СИ

Выражение

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

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Виды

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Виды операций языка

СИ

Например,
y = (1 + x*x) / (2+x); z = ( (x + y)*10 - 1) / 2;
i ++; i = i + 1;
x += 10; x = x + 10;
z = sqrt(x + y) * 10; y = (1 + sin( x) * x) / 2;

Слайд 25

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Виды

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Виды операций языка

СИ

Некоторые операции языка С
Арифметические операции: ++ -- * / % + -
Операции отношений: > >= < <= ==(равно) !=(не равно)
Логические операции: ! (не) && (и) || (или)
Операции присваивания: = *= /= += -=

Слайд 26

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Виды

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Виды операций языка

СИ

Операции целочисленного деления / - частное ,
% - остаток от деления.
При целочисленном делении с остатком дробная часть частного отбрасывается.
Делимое = Частное * Делитель + Остаток
Например, 17/5 = 3, а 17%5 = 2 17 = 3*5 + 2

Слайд 27

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Виды

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Виды операций языка

СИ

Условная операция выражение1 ? выражение2 : выражение3
Если значение выражения1 !=0, то результат равен выражению2, в противном случае - выражению3.
Выражение1 должно иметь целочисленное значение.
Например, нахождение максимума из двух значений:
z = (a > b) ? a : b; /* z = max (a, b); */

Слайд 28

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г. КГТУ (КАИ), кафедра АСОИУ Использование

Бикмурзина А.Р., Захарова З.Х., Хохлов Д.Г.

КГТУ (КАИ), кафедра АСОИУ

Использование стандартных функций

языка С/С++

sin(x) и sqrt(x) - стандартные функции языка С: sin(x) – для вычисления sin x; sqrt(x) – для вычисления квадратного корня из x.
Для использования стандартных функций языка С (их свыше 200) необходимо включать заголовочные файлы.
Например, для использования перечисленных функций нужна директива препроцессора #include
Заголовочный файл содержит объявления математических функций.