Что это?
Материалы к семинарам по курсу «Информатика». Преподаются на основе изучения языка Си. © 2013-2014 8О-101Б, кафедра 806, МАИ.
Структура
ws08 (Введение в C)
Материалы для того, чтобы начать программировать на Си.
Примеры
calc-step-by-step
Последовательное написание простого консольного калькулятора.
calc-with-make
Использование подключаемых файлов и сборщика make
на примере консольного калькулятора.
eratosthenes
Поиск простых числе через решето Эратосфена.
handle-chars
Пример построчного символьного ввода на примере аналогов cat
и wc
.
hello-world
Простой Hello World!
.
В конфигурации Makefile рассмотрены различные варианты компиляции.
indicator
Консольный индикатор выполнения ("палочка" как во FreeBSD).
ws09 (Итеративные алгоритмы)
Итеративные алгоритмы, движение точки. http://k806.ru/infolabs9/?infosub
Задача
Составить и отладить программу на языке Си итеративного характера с целочисленными рекуррентными соотношениями, задающими некоторое регулярное движение точки в целочисленной системе координат (i, j) с дискретным временем k и динамическим параметром движения l. Результатом работы программы выводится в следующем виде: попадание точки в указанную замкнутую область не более чем за 50 шагов (вывести Yes или No); на следующей строке значения координат i, j, значение динамического параметра l на момент окончания движения; время окончания движения (номер шага, на котором движение было прекращено), если точка попала в область, затем перевод строки.
Решение
sc09 (Реализация варианта № 9)
sc26 (Реализация варианта № 26)
Простая реализация двух версий программы — с использованием директив
препроцессора (hardfighter.c
) и без них (fighter.c
).
fighter
Использование подключаемых файлов и сборщика make
на примере варианта № 26.
ws11 (Лексический анализ)
Простейшие приемы лексического анализа. http://k806.ru/infolabs11/?infosub
Задача
Составить программу на языке Си, выполняющую анализ и обработку вводимого текста в соответствии с выданным вариантом задания. В программе не должно быть ограничений на количество и длину строк исходного текста. Конец файла должен обрабатываться корректно, как это делается утилитами Unix cat, wc -c и т. д.).
Решение
indentifiers-long
Пример программы, которая считает, количество слов — правильных идентификаторов языков Си.
ws12 (Целые числа)
Техника работы с целыми числами. Системы счисления. http://k806.ru/infolabs12/?infosub
Задача
Составить программу на языке Си в целом типе данных, которая для любых допустимых и корректно записанных чисел этого типа в десятичном изображении, поступающих на стандартный ввод программы, выполняет указанное вариантом действие над их значениями. Нумерация цифр в записи числа ведется справа налево, от младших разрядов к старшим, начиная с нуля. Результатом действия над введенным числом является целое или булевское значение в зависимости от конкретного варианта, направляемое в стандартный вывод. Предусмотрите корректную обработку пустого файла.
Решение
in-non-decreasing
Программа, проверяет упорядоченность цифр числа по неубыванию.
ws13 (Множества)
http://k806.ru/infolabs13/?infosub
Задача
Входные строки представляют собой последовательности слов, разделенных пробелами, запятыми, табуляциями или границами строк. В соответствии с вариантом задания составить программу проверки характеристик введенных последовательностей слов и печати ответа.
Решение
curr-prev-letters
Пример программы, которая проверяет есть ли соседние слова, состоящие из одного и того же набора букв.
eouy
Пример программы, которая определяет,
есть ли во входном потоке символы 'e'
, 'o'
, 'u'
, 'y'
.
ws14 (Линеаризация матрицы)
Вложенные циклы с параметрами. Обход и линеаризация матрицы. 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
Решение
wnloops (Без вложенных циклов)
Программа разворачивает матрицу в заданном ниже порядке обхода.
7 13 14 16
6 8 12 15
2 5 9 11
1 3 4 10
ws15 (Обработка матриц)
Задача
Составить программу на языке Си, производящую обработку квадратной матрицы порядка NxN, где -1 < N < 101, из целых чисел, вводимой из стандартного входного текстового файла. Тестирование провести для пакета тестов из нескольких матриц различного порядка.
Решение
deg90back
Поворот матрицы на 90 градусов против часовой стрелки.
fmax2sum
Сложение всех строк, содержащих максимальный элемент матрицы, и замена первой из них на результат сложения.
unishift
Циклический сдвиг элементов матрицы в строчном представлении на S
элементов,
S
тоже считывает из стандартного входного текстового файла (stdin
).