Скачать презентацию Дисциплина ПРОГРАММИРОВАНИЕ Тема Основы программирования на языке C Скачать презентацию Дисциплина ПРОГРАММИРОВАНИЕ Тема Основы программирования на языке C

progr_su_2.ppt

  • Количество слайдов: 35

Дисциплина: ПРОГРАММИРОВАНИЕ Тема: Основы программирования на языке C Направление «Информатика и вычислительная техника» Курс Дисциплина: ПРОГРАММИРОВАНИЕ Тема: Основы программирования на языке C Направление «Информатика и вычислительная техника» Курс 1 Семестр 1 Лектор: Петрова О. Б.

История создания языка C Деннис Ритчи, 1973 год Цель создания: получить язык высокого уровня История создания языка C Деннис Ритчи, 1973 год Цель создания: получить язык высокого уровня для разработки операционной системы (Unix) Стандарты языка: С 99 (ISO/IEC 9899: 1999) С 89 (ANSI C — 1989, ISO C - 1990) C 2011 (ISO/IEC 9899: 2011) Первые описания языка С — Брайан Керниган

Характеристика языка C Не связан с конкретной архитектурой ЭВМ Может быть использован для разработки Характеристика языка C Не связан с конкретной архитектурой ЭВМ Может быть использован для разработки ПО в разных операционных системах Компактный язык Гибкий язык Обеспечивает разнообразие типов данных Имеет черты языка низкого уровня — доступ к адресам объектов, адресная арифметика, операции над битовыми величинами По затратам ресурсов и времени программы на С мало отличаются от программ на Ассемблере В языке отсутствуют встроенные средства ввода/вывода, средства для работы со стоками, сложными данными (массивы, структуры)

Элементы языка C Алфавит a. . z, A. . Z 0. . 9 ESC-последовательности Элементы языка C Алфавит a. . z, A. . Z 0. . 9 ESC-последовательности (управляющие последовательности) a b n t ddd xhh \ ' '' разделители ; : [ ] { } ( ) , . / ' '' ? ! = - + * & % ~ # _<>| пробельные символы

Элементы языка C Константы целые (с фиксированной точкой) десятичные 234 восьмеричные 0234 шестнадцатеричные 0 Элементы языка C Константы целые (с фиксированной точкой) десятичные 234 восьмеричные 0234 шестнадцатеричные 0 x 234 вещественные (с плавающей точкой) 32. 5 3. 25 е+1 -4. 6 е-14 символьные 'd' '9' 'n' '&' строковые литералы ''Это строка'' ''Этоnтожеtстрока''

Элементы языка C Комментарии в языке С /* это многострочный комментарий */ в языке Элементы языка C Комментарии в языке С /* это многострочный комментарий */ в языке С++ // комментарий действует до конца строки

Элементы языка C Ключевые слова auto default extern int signed typedef break do float Элементы языка C Ключевые слова auto default extern int signed typedef break do float long sizeof union case double for register static unsigned char else goto return struct void continue enum if short switch while

Элементы языка C Операторы математические + - * / ++ – % отношения != Элементы языка C Операторы математические + - * / ++ – % отношения != == > < >= <= присваивания = += -= *= /= %= int a, b = 2; a = 5; a++; // a = a + 1; b += a; // b = b + a;

Этапы подготовки исполняемого кода (С и С++) ввод текста программы обработка текста препроцессором компиляция Этапы подготовки исполняемого кода (С и С++) ввод текста программы обработка текста препроцессором компиляция программы (*. obj, *. o) компоновка (редактирование связей) (*. exe) отладка Ключевые слова: edit compile link debug run build

Интегрированные среды для разработки программ на С и С++ Code: : Blocks 10. 5 Интегрированные среды для разработки программ на С и С++ Code: : Blocks 10. 5 Netbeans (Sun-Oracle) Visual Studio 2010 (Microsoft) C++ Builder (Borland, Embarcadero) Qt Creator (Nokia)

Простейшая программа на языке С /* First C–program*/ #include <stdio. h> int main ( Простейшая программа на языке С /* First C–program*/ #include int main ( ) { float x=2. , y; y=x*x; printf(''y = %fn'', y); return 0; }

Препроцессор Директивы препроцессора include #include <math. h> #include ''my_header. h'' define # define N Препроцессор Директивы препроцессора include #include #include ''my_header. h'' define # define N 7 pragma ifndef

Пример использования директивы #define #include <stdio. h> #define N 3. 2 int main( ) Пример использования директивы #define #include #define N 3. 2 int main( ) { float d = 4; printf (''Сумма=%f n'', d+N); return 0; }

Программа с разветвлениями Инструкция if: if (условное выражение) <действие 1> ; else <действие 2> Программа с разветвлениями Инструкция if: if (условное выражение) <действие 1> ; else <действие 2> ; или if (условие) <действие> ; Результат вычисления условного выражения: 0 (ложь) или значение, не равное 0, (истина)

Способы записи условных выражений Операторы отношения == проверка на равенство != проверка на неравенство Способы записи условных выражений Операторы отношения == проверка на равенство != проверка на неравенство < <= > >= Логические операторы && логическое И (умножение) || логическое ИЛИ (сложение) ! логическое НЕ (отрицание)

Примеры записи условных выражений int a = 5; int b = 4; int c Примеры записи условных выражений int a = 5; int b = 4; int c = 0; a > b ===> Результат = 1 (истина) a >= b ===> Результат = 1 (истина) a < b ===> Результат = 0 (ложь) a <= b ===> Результат = 0 (ложь) a == b ===> Результат = 0 (ложь) a != b ===> Результат = 1 (истина) a && c ===> Результат = 0 (ложь) a || c ===> Результат = 1 (истина) !a ===> Результат = 0 (ложь)

Простейшая программа с разветвлением Задача: даны два числа a и b. Поделить a на Простейшая программа с разветвлением Задача: даны два числа a и b. Поделить a на b и результат вывести на экран. Программа должна выполняться для любых числовых значений a и b. #include int main( ) { float a, b; printf (''Введите a и b =>''); scanf (''%f%f'', &a, &b);

Простейшая программа с разветвлением (2) if (b!=0) printf(''Ответ: %f n'', a/b); else printf(''Ошибка: деление Простейшая программа с разветвлением (2) if (b!=0) printf(''Ответ: %f n'', a/b); else printf(''Ошибка: деление на нульn''); return 0; }

Простейшая программа с разветвлением (для целочисленных переменных) #include <stdio. h> int main( ) { Простейшая программа с разветвлением (для целочисленных переменных) #include int main( ) { int a, b; printf (''Введите a и b =>''); scanf (''%d%d'', &a, &b); if (b) printf(''Ответ: %f n'', (float)a/b); else printf(''Ошибка: деление на нульn''); return 0; }

Использование составного оператора в if int a, b; float c; printf (''Введите a и Использование составного оператора в if int a, b; float c; printf (''Введите a и b =>''); scanf (''%d%d'', &a, &b); if (b) { c = (float)a/b; printf(''Ответ: %f n'', c); } else printf(''Ошибка: деление на нульn'');

Вложенные инструкции if int num = -10; if (num > 0) printf (''Положительное числоn''); Вложенные инструкции if int num = -10; if (num > 0) printf (''Положительное числоn''); else if (num < 0) printf (''Отрицательное числоn''); else printf (''Нульn'');

Пример логической ошибки в программе int a=17, b=5; if (a>10) b++; if (a <=5) Пример логической ошибки в программе int a=17, b=5; if (a>10) b++; if (a <=5) b+=a; else b*=2;

Множественные разветвления switch (переменная-селектор) { case A 1: <действие 1>; break; case A 2: Множественные разветвления switch (переменная-селектор) { case A 1: <действие 1>; break; case A 2: <действие 2>; break; case AN: <действие N>; break; default: <действие, выполняемое по умолчанию>; }

Пример задачи с множественными разветвлениями Задача: по порядковому номеру занятия (пары) в расписании вывести Пример задачи с множественными разветвлениями Задача: по порядковому номеру занятия (пары) в расписании вывести время начала и окончания занятия. План решения: введем переменную num для обозначения порядкового номера пары. Тип переменной — целочисленная (int).

Циклы в C for — цикл с заранее определенным количеством повторений while — цикл Циклы в C for — цикл с заранее определенным количеством повторений while — цикл с предусловием do while — цикл с постусловием цикл : заголовок цикла + тело цикла итерация : однократный проход цикла

Цикл while (условие) { <тело цикла> } Пример: int n = 2; while (n<20) Цикл while (условие) { <тело цикла> } Пример: int n = 2; while (n<20) { n = n*2; printf(''%dn'', n); }

Цикл do while int i = 1; do Тело цикла { i++; printf (''n%d'', Цикл do while int i = 1; do Тело цикла { i++; printf (''n%d'', i); Условие } while (i<4);

Цикл for 1 2 for (выражение инициализации; условное выражение; 3 4 выражение приращения) <действие>; Цикл for 1 2 for (выражение инициализации; условное выражение; 3 4 выражение приращения) <действие>; int i, s = 0; for(i=1; i<10; i+=2) { s+= i; printf(''n%6 d%8 d'', i, s); }

Задача о табулировании функции На интервале [a, b] числовой оси требуется вычислить значения функции Задача о табулировании функции На интервале [a, b] числовой оси требуется вычислить значения функции f(x) в N равноудаленных точках. Анализ: алгоритм — циклический, количество итераций — N, упраляющая циклом переменная - x. N=3 x начальное = a x конечное = b a b приращение dx = количеству интервалов разбиения числовой оси dx = (b-a)/(N-1)

Инструкция continue - прерывает текущую итерацию цикла. int i; for(i=8; i>0; i--) { if Инструкция continue - прерывает текущую итерацию цикла. int i; for(i=8; i>0; i--) { if (i%2) continue; printf (''%8 d'', i); }

Вычисления по рекуррентным формулам Задача: дан числовой ряд, в котором a 0=1, a 1 Вычисления по рекуррентным формулам Задача: дан числовой ряд, в котором a 0=1, a 1 = 1, an=an-1+an-2, (числа Фибоначчи). Вычислить значения членов ряда, не превышающие число 20. #include int main() { int a 0=1, a 1=1, a 2, M=20;

Вычисления по рекуррентным формулам (2) a 2 = a 0+a 1; while (a 2<M) Вычисления по рекуррентным формулам (2) a 2 = a 0+a 1; while (a 2

Вложенные циклы Даны два числа i и j. Вывести на экран значения i + Вложенные циклы Даны два числа i и j. Вывести на экран значения i + j для каждой пары i и j при условии, что i и j изменяют свои значения в пределах от 2 до 5. int i, j; for(i=2; i<=5; i++) for(j=2; j<=5; j++) printf (''%dn'', i+j);

Инструкция goto M: <действия>. . . goto M; int i, j, k, m; for(i=2; Инструкция goto M: <действия>. . . goto M; int i, j, k, m; for(i=2; i<=50; i++) for(j=2; j<=50; j++) for (k=0; k<150; k++) for(m=0; m<10; m++) {. . . if (что-то не получилось) goto M; } M: <продолжение или завершение работы программы>

Итог: управляющие инструкции языка C Пустой оператор ; Оператор-выражение Составной оператор { } if Итог: управляющие инструкции языка C Пустой оператор ; Оператор-выражение Составной оператор { } if switch while do while for break continue goto return