Лабораторный практикум по программированию на языке Си
Покупка
Новинка
Тематика:
Программирование на C и C++
Автор:
Степанов Валерий Павлович
Год издания: 2007
Кол-во страниц: 47
Дополнительно
Вид издания:
Учебно-методическая литература
Уровень образования:
ВО - Бакалавриат
Артикул: 842165.01.99
В пособии дано краткое изложение основ программирования на языке Си с примерами. Рассмотрены следующие темы: программы линейной и разветвляющейся структуры; циклы с параметром; циклы с предусловием и постусловием; указатели и ссылки; функции и способы передачи аргументов; одномерные массивы; сортировка массивов; двумерные массивы; символьные массивы и строки; массивы структур; текстовые файлы; бинарные файлы. Приведены задания к лабораторным работам.
Для студентов младших курсов.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 02.03.02: Фундаментальная информатика и информационные технологии
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ имени Н.Э. БАУМАНА В.П. Степанов ЛАБОРАТОРНЫЙ ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ НА ЯЗЫКЕ СИ Учебно-методическое пособие по курсу «Информатика» М о с к в а Издательство МГТУ им. Н.Э. Баумана 2 0 0 7
УДК 681.3.06 ББК 22.18 С79 Рецензенты: В.Н. Шакин, Л.Н. Жукова Степанов В.П. С79 Лабораторный практикум по программированию на языке Си: Учеб.-метод. пособие по курсу «Информатика». – М.: Изд-во МГТУ им. Н.Э. Баумана, 2007. – 48 с. В пособии дано краткое изложение основ программирования на языке Си с примерами. Рассмотрены следующие темы: программы линейной и разветвляющейся структуры; циклы с параметром; циклы с предусловием и постусловием; указатели и ссылки; функции и способы передачи аргументов; одномерные массивы; сортировка массивов; двумерные массивы; символьные массивы и строки; массивы структур; текстовые файлы; бинарные файлы. Приведены задания к лабораторным работам. Для студентов младших курсов. Библиогр. 4 назв. УДК 681.3.06 ББК 22.18 © МГТУ им. Н.Э. Баумана, 2007
1. ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ РАЗВЕТВЛЯЮЩЕЙСЯ СТРУКТУРЫ Цель работы – изучение базовых типов данных; разработка алгоритмов и составление программ разветвляющейся структуры. В языке Cи применяются следующие базовые типы данных языка: int – целый, char – символьный, float – вещественный, double – вещественный двойной точности. Для определения производных типов данных служат квалификаторы – short, long, signed, unsigned. Все переменные, с которыми работает программа, необходимо описать с указанием их типов. Функция printf() предназначена для форматированного вывода данных. Ее формат: рrintf (<управляющая строка>, <список аргументов>); Управляющая строка, заключаемая в кавычки, указывает компилятору на тип выводимой информации. Она может содержать спецификации преобразования и управляющие символы. Вид спецификации преобразования: % <флаг> <размер поля> .< точность> <спецификация> где флаг может принимать следующие значения: минус – выравнивание влево выводимого числа (по умолчанию выполняется выравнивание вправо); плюс – выводится знак положительного числа; размер поля – задает минимальную ширину поля; при недостаточной ширине поля выполняется автоматическое расширение; точность – задает количество цифр в его дробной части; спецификация указывает вид выводимой информации. Приведем некоторые форматы печати: %d – десятичное целое число, %c – символ, %f – число с плавающей точкой. Для длинных чисел (long, double) используется дополнительный формат l. 3
Функция scanf предназначена для форматированного ввода информации. Общий вид функции: scanf(<управляющая строка>, <список адресов>); Для нее, как и для функции printf(), указывается управляющая строка. Однако функция scanf(), в отличие от функции printf(), использует в списке адресов указатели на переменные, т. е. адреса. Для обозначения указателя перед именем переменной записывается символ &, означающий адрес переменной. Вводить данные можно как в одной строке через пробел, так и в разных строках. Для ввода значений строковых переменных символ & не применяется. При использовании формата % s строка вводится до первого пробела. Математические функции описаны в файле <math.h>. Приведем перечень некоторых математических функций: – sqrt(x), |x|– fabs(x), xn – pow(x,n), sin x– sin(x), cos x – cos(x). В этих функциях аргументы x имеют тип double, параметр n имеет тип int. Аргументы тригонометрических функций задаются в радианах. Все приведенные функции возвращают значение типа double. Операция присваивания имеет две формы записи – полную и краткую. С помощью одного оператора можнo присвоить одно значение нескольким переменным. Например: z = (x = y)*5 – сначала переменной x присваивается значение переменной y, далее вычисляется выражение x*5, и результат присваивается переменной z. Сокращенная форма операции присваивания записывается из совокупности одной из арифметических операций (+ , –, *, /, %) и знака =. Пример 1. Записать в сокращенной форме увеличение x в пять раз, прибавить к значению s 7: x* = 5; s+ = 7; /* x = x*5; s = s + 7; */ Cуществуют операции уменьшения (– –) и увеличения (++) значения переменной на единицу. Операции могут быть префиксные (++i и – – i) и постфиксные (i++ и i– –). В случае префиксной операции сначала выполняется сама операция, потом вычисляется выражение. В случае постфиксной операции – операция применяется после вычисления выражения. 4
Разветвляющиеся алгоритмы реализуются с помощью двух операторов: условного оператора if и оператора switch. Условный оператор if имеет следующую форму: if ( <условие> ) <оператор1>; else <оператор2>; Оператор выполняет один из операторов в зависимости от условия. Если условие истинно, то выполняется <оператор1>, в противном случае – <оператор2>. Условный оператор имеет сокращенную форму записи: if ( <условие> ) <оператор>; В этом случае, если условие ложно, то выполняется следующий за if оператор программы. Условие должно быть заключено в скобки. Любое значение переменной, не равное нулю, считается истинным. Условие в скобках может быть простым или сложным. Простое условие создается с использованием шести операций отношения: == (равно), != (не равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно). Сложное условие получается из простых с использованием логических операций И (&&), ИЛИ (||) , НЕ (!). Сложное условие возвращает значение «истина» или «ложь» в зависимости от логического отношения между их операндами. Операция && возвращает значение «истина», когда истинны оба ее операнда, а во всех остальных случаях – значение «ложно». Операция || возвращает «ложно», когда ложны оба ее операнда, а во всех остальных случаях – «истина». Операция ! инвертирует значение своего операнда с «истины» на «ложь» и наоборот. Пример 2. Из двух значений a и b найти минимальное значение: if (a < b) min = a; else min = b; Пример 3. Написать условие того, что x находится на отрезке [a, b] или [c, d ]: (x >= a && x<=b || x >= c && x<=d) Операторы if/else могут быть многократно вложены один в другой. Если < оператор1 > и < оператор2 > в свою очередь являются операторами if, то такой оператор называют вложенным. 5