- •И.А. Васюткина основы алгоритмизации и программирования.
- •Содержание
- •1.Обзор языКа программирования с
- •2.Этапы создания программы
- •3.Структура программы на языке си
- •3.1. Внутренняя структура программы
- •3.2. Пример программы на си
- •4.Базовые элементы языка си
- •5.Данные в программе на си
- •5.1. Константы
- •5.2. Базовые стандартные типы переменных
- •6.2. Операции отношения
- •6.3. Логические операции
- •6.4. Операции с разрядами
- •6.5. Операции сдвига
- •6.6. Операция условия ?:
- •6.7. Преобразование типов
- •6.8. Операции приведения
- •6.9. Дополнительные операции присваивания
- •7.Операторы языка си
- •Оператор может быть простым и составным. Позволяет пропустить оператор или блок операторов, если условие ложно.
- •1.Схема выполнения оператора
- •8. Оператор множественного выбора
- •9. Операторы цикла while
- •8. Операторы безусловных переходов
- •8.Стандартные функции ввода и вывода
- •8.1. Функция вывода данных на экран printf ()
- •8.2. Модификаторы спецификаций преобразования
- •8.3. Функция ввода данных с клавиатуры sсanf()
- •8.4. Функции ввода/вывода одного символа getchar(), putchar()
- •8.5. Функции небуфиризированного ввода с клавиатуры
- •8.7. Форматирование вывода
- •Заключительная программа
- •9. Массивы
- •9.1. Одномерные массивы
- •Стандартные алгоритмы работы с одномерными массивами
- •Инициализация одномерных массивов
- •9.2. Многомерные массивы
- •Инициализация многомерных массивов
- •9.2.2 Стандартные алгоритмы работы с двумерными массивами
- •10. Функции
- •10.1.Cоздание и использование пользовательских функций
- •10.2.Параметры функции
- •10.3.Возвращение значения функцией
- •10.4.Inline-функции
- •10.5.Значение формальных параметров функции по умолчанию
- •10.6.Перегрузка функций
- •11. Классы памяти и область действия
- •11.1.Глобальные переменные
- •Extern - внешние переменные
- •Статистические внешние переменные - static
- •11.2.Локальные переменные
- •Внутренняя статическая переменная
- •Регистровая переменная
- •Автоматические переменные
- •11.3.Доступ к функциям в многомодульной программе
- •12. Препроцессор языка си
- •12.1. Подстановка имен
- •12.2.Включение файлов
- •12.3.Условная компиляция
- •13. Указатели
- •13.1.Операция косвенной адресации *
- •13.2. Описание указателей
- •13.3.Использование указателей для связи функций
- •13.4.Указатели на одномерные массивы
- •13.5.Указатели на многомерные массивы
- •13.6.Операции над указателями
- •13.7.Передача массива в качестве параметра в функцию
- •13.8.Указатель на void *
- •14. Символьные строки и функции над строками
- •14.1.Массивы символьных строк
- •14.2.Массивы указателей
- •14.3.Указатель как возвращаемое значение функции Передача указателя как параметра функции
- •14.4.Функции, работающие со строками Функции, определеные в заголовочном файле stdio.H
- •14.5. Стандартные библиотечные функции Функции, определеные в заголовочном файле string.H
- •14.6. Преобразование символьных строк
- •Функции, определеные в заголовочном файле ctype.H.
- •15. Ссылки
- •16. Параметры командной строки
- •17. Производные типы данных
- •17.1.Структуры
- •Массивы структур
- •Вложенные структуры
- •17.1.3 Указатели на структуры
- •Операции над структурами
- •Передача структуры в функцию
- •17.2.Объединения
- •17.3. Синоним имени типа
- •17.4.Определение именнованных констант
- •17.5.Перечисления
- •17.6.Битовые поля
- •18. Динамическое выделение памяти
- •2. Функция void* calloc(n,size type);
- •18.2.Операция new с массивами
- •18.3.Инициализаторы с операцией new
- •18.4.Ошибки при использовании динамичской памяти
- •19. Файл
- •19.1.Открытие файла fopen()
- •19.2.Закрытие файла fclose()
- •19.3.Функции ввода/вывода одного символа fgetc(), fputc()
- •19.4.Функции форматированного ввода/вывода в файл
- •Int fprintf(file *stream,”управл.Cтрока”,arg1,…)
- •Int fscanf(file *stream,”управл.Cтрока”,&arg1,…)
- •19.5. Функции ввода/вывода строки символов в файл
- •19.6.Функции управления указателем в файле
- •Int fseek(file *stream, смещение, start)
- •19.7.Ввод/вывод записей фиксированной длины
- •20. Динамические структуры данных
- •20.1.Однонаправленные связные списки
- •Вставка узла
- •Удаление узла из списка
- •20.2.Бинарные деревья
- •21. Размещение данных в памяти
- •22.Модели памяти
- •Список литературы
8. Операторы безусловных переходов
а) Оператор goto метка. Осуществляет переход на любую точку программы вверх и вниз. Имя метки задается согласно правилам создания идентификатора.
goto m1;
...
m1: оператор;
б) Оператор break. Служит для досрочного выхода из цикла. Применяется в любых циклах. В случае вложенных циклов осуществляет выход только из внутреннего цикла.
while (условное выражение1) {
...
if(условное выражение2)
break;
...
}
в) Оператор continue. Служит для пропуска группы операторов и выхода на начало цикла.
for(i=0; i<10; i++) {
...
if(условное выражение2)
continue;
...
}
while((ch = getchar())!=EOF){
if (ch=='/n')
break; (continue;)
putchar (ch);
}
8.Стандартные функции ввода и вывода
Функции ввода вывода служат для ввода данных в программу с клавиатуры и вывода их на экран.
8.1. Функция вывода данных на экран printf ()
printf ("Управляющая строка", список параметров);
Параметрами могут быть переменные, константы, выражения.
Управляющая строка - строка символов, показывающая, как должны быть напечатаны параметры. Обязательно берётся в кавычки. Состоит из литерных констант и спецификаций преобразования:
%d – целое %f – плавающий формат
%c – символ %lf – двойной точности
%s – строка %e – экспоненциальная форма
%i – целое %o – восьмиричная с.с.
%g – плавающий формат %x – шестнадцатеричная с.с.
%u – беззнаковое целое
Каждому аргументу должна соответствовать cвоя спецификация преобразования. %% - чтобы печатать символ %.
printf("Число pi равно % f/n," PI);
8.2. Модификаторы спецификаций преобразования
Общий вид модификаторов спецификаций преобразования
%[выравнивание][ширина][доп.признаки]символ преобразования
%[-][ширина]d – выравнивание по влевой границе
%[-][ширина][.точность]f
%[-][+][ширина]d – целое со знаком
%[-][#][ширина][l]u(o,x) – целое без знака, выводится 0 или 0х для восьмиричной или шестнадцатиричной системы счисления
%[-][+][#][ширина][.точночть]f(e, g) - # вывод дес.точки даже при нулевой точности. По умолчанию точность 6 цифр.
Цифры - ширина поля. Если число больше, то оно выходит за ширину поля.
%4.2f - количество печатаемых цифр после запятой 2, поле шириной 4 позиции.
/%d/ /3.36/ - "выбор по умолчанию"
%2d /336/
%10d / 336/
%-10d /336 /
%f /1234.560059/ 1234.56
%e /1.234560E+03/
%4.2f /1234.56/
%3.1f /1234.6/
%10.3f / 1234.560/
%10.3e / 1.234E+0.3/
/%s/ /'Выдающееся исполнение'/ 22 c.
/%25.s / Выдающееся исполнение'/
% 25.5s / Выдаю/
%-25.5 s /Выдаю /
% d 336
% o 520
% x 150
% d -336
% u 65200 от 32768-65536 - отрицательные числа
65535- -1 65536 - 336 = 65200
printf (" %d %c ", 'A', 'A'); //На экране 65 A
8.3. Функция ввода данных с клавиатуры sсanf()
scanf ("Управляющая строка", список адресов параметров);
Используются те же спецификаторы, что и printf(). В качестве параметров указываются адреса переменных.
scanf("%d",&num);
8.4. Функции ввода/вывода одного символа getchar(), putchar()
Объявлены в заголовочном файле stdio.h.
# include <stdio.h>
void main() {
c har ch;
ch = getchar(); тоже самое
putchar(ch); putchar (getchar());
}