Материалы к семинарам по курсу «Информатика». Преподаются на основе изучения языка Си. © 2013-2014 8О-101Б, кафедра 806, МАИ.
Материалы для того, чтобы начать программировать на Си.
Последовательное написание простого консольного калькулятора.
Использование подключаемых файлов и сборщика make
на примере консольного калькулятора.
Поиск простых числе через решето Эратосфена.
Пример построчного символьного ввода на примере аналогов cat
и wc
.
Простой Hello World!
.
В конфигурации Makefile рассмотрены различные варианты компиляции.
Консольный индикатор выполнения ("палочка" как во FreeBSD).
Итеративные алгоритмы, движение точки. http://k806.ru/infolabs9/?infosub
Составить и отладить программу на языке Си итеративного характера с целочисленными рекуррентными соотношениями, задающими некоторое регулярное движение точки в целочисленной системе координат (i, j) с дискретным временем k и динамическим параметром движения l. Результатом работы программы выводится в следующем виде: попадание точки в указанную замкнутую область не более чем за 50 шагов (вывести Yes или No); на следующей строке значения координат i, j, значение динамического параметра l на момент окончания движения; время окончания движения (номер шага, на котором движение было прекращено), если точка попала в область, затем перевод строки.
Простая реализация двух версий программы — с использованием директив
препроцессора (hardfighter.c
) и без них (fighter.c
).
Использование подключаемых файлов и сборщика make
на примере варианта № 26.
Простейшие приемы лексического анализа. http://k806.ru/infolabs11/?infosub
Составить программу на языке Си, выполняющую анализ и обработку вводимого текста в соответствии с выданным вариантом задания. В программе не должно быть ограничений на количество и длину строк исходного текста. Конец файла должен обрабатываться корректно, как это делается утилитами Unix cat, wc -c и т. д.).
Пример программы, которая считает, количество слов — правильных идентификаторов языков Си.
Техника работы с целыми числами. Системы счисления. http://k806.ru/infolabs12/?infosub
Составить программу на языке Си в целом типе данных, которая для любых допустимых и корректно записанных чисел этого типа в десятичном изображении, поступающих на стандартный ввод программы, выполняет указанное вариантом действие над их значениями. Нумерация цифр в записи числа ведется справа налево, от младших разрядов к старшим, начиная с нуля. Результатом действия над введенным числом является целое или булевское значение в зависимости от конкретного варианта, направляемое в стандартный вывод. Предусмотрите корректную обработку пустого файла.
Программа, проверяет упорядоченность цифр числа по неубыванию.
http://k806.ru/infolabs13/?infosub
Входные строки представляют собой последовательности слов, разделенных пробелами, запятыми, табуляциями или границами строк. В соответствии с вариантом задания составить программу проверки характеристик введенных последовательностей слов и печати ответа.
Пример программы, которая проверяет есть ли соседние слова, состоящие из одного и того же набора букв.
Пример программы, которая определяет,
есть ли во входном потоке символы 'e'
, 'o'
, 'u'
, 'y'
.
Вложенные циклы с параметрами. Обход и линеаризация матрицы. http://k806.ru/infolabs14/?infosub
Составить программу ввода квадратной матрицы и печати в строку всех ее элементов в заданном ниже порядке обхода. Тип элементов матрицы — целый. Решить задачу на языке Си с применением вложенных циклов с переменными границами. На вход подается размерность матрицы — одно число -1 < n < 101, за ним элементы матрицы через пробелы или переводы строк в порядке слева направо сверху вниз.
Пример входных данных:
4
-1 2 3 99
23 1 1 13
14 15 16 17
-9 -7 -5 -3
Выходные данные:
-1 2 3 99 13 17 -3 -5 -7 -9 14 23 1 1 16 15
Программа разворачивает матрицу в заданном ниже порядке обхода.
7 13 14 16
6 8 12 15
2 5 9 11
1 3 4 10
Составить программу на языке Си, производящую обработку квадратной матрицы порядка NxN, где -1 < N < 101, из целых чисел, вводимой из стандартного входного текстового файла. Тестирование провести для пакета тестов из нескольких матриц различного порядка.
Поворот матрицы на 90 градусов против часовой стрелки.
Сложение всех строк, содержащих максимальный элемент матрицы, и замена первой из них на результат сложения.
Циклический сдвиг элементов матрицы в строчном представлении на S
элементов,
S
тоже считывает из стандартного входного текстового файла (stdin
).