- •Лабораторные работы. Сборник задач.
- •Оглавление
- •Часть 1. Лаборатоные работы
- •Работа со структурами и объединениями …………………………………….91
- •3 Задача
- •4 Задача
- •5 Задача
- •6 Задача
- •Дополнительное условие:использование цикла с предусловием.
- •1 Задача
- •2 Задача
- •Дополнительное условие: программа написана без использования функции.
- •Дополнительное условие: программа написана с использованием функций.
- •3 Задача
- •Дополнительное условие: программа написана без использования функции.
- •Дополнительное условие: программа написана с использованием функции.
- •4 Задача
- •Дополнительное условие: программа написана без использования функции
- •Дополнительное условие: программа написана с использованием функции.
- •Самостоятельная работа
- •Лабораторная работа №3
- •Самостоятельная работа
- •1 Задача
- •2 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •Лабораторная работа №6
- •1 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •4 Задача
- •Синтаксический анализатор
- •Самостоятельная работа
- •1 Задача
- •2 Задача
- •3 Задача
- •Работа с каталогами
- •Самостоятельная работа
- •1 Задача
- •2 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •2 Задача
- •1 Задача Реализовать очередь, состоящую из целых чисел
- •Комментарий:
- •2 Задача
- •1 Задача
- •Идеально-сбалансированные деревья
- •1 Задача
- •2 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •1 Задача
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности.
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности
- •Работа с несколькими массивами
- •Преобразование массива
- •Изменение элементов массива
- •2 Уровень сложности Формирование массива и вывод его элементов
- •Анализ элементов массива
- •Преобразование массива
- •Изменение элементов массива
- •Удаление и вставка элементов
- •Серии целых чисел
- •3 Уровень сложности Множества точек на плоскости
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •Not простое_логическое
- •(Простое_логическое знак_операции простое_логическое)
- •Построить синтаксический анализатор для понятия предложение.
- •1 Уровень сложности
- •2 Уровень сложности
- •1 Уровень сложности
- •Примеры:
- •Двусвязные списки
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
Лабораторные работы. Сборник задач.
По дисциплине “Основы алгоритмизации и программирования”
для специальности “информатика”, “математика”
механико-математического факультета
Харьковского национального университета им. В.Н.Каразина
Доц. Владимирова М.В.
Студ. Лаврентьева И.Д.
Харьков
2006
Оглавление
Часть 1. Лаборатоные работы
Вводное занятие…………….………………………………………………….…4
Целые числа…………………………………………………………….……......13
Ряды………………………………………………………………………………24
Классы памяти………..………………………………………………………….27
Указатели и одномерные массивы ….………………………………………….30
Матрицы………………………………………………………………………….35
Строки…………………………………………………………………………….48
Указатели на функцию…………………………………………………………..55
Рекурсия………………………………………………………………………….57
Синтаксический анализатор…………………………………………………….63
Текстовый файл ……...………………………………………………………….67
Работа с двоичными файлами. Прямой доступ к элементам файла …………70
Работа с каталогами ………………………………………………………….…81
Побитовая арифметика.………………………………………………………....86
Работа со структурами и объединениями …………………………………….91
Работа с абстрактными типами данных. Стек……………………………......109
Работа с абстрактными типами данных. Очередь. Двусвязный список…....115
Разряженная матрица…………………………………………………………..126
Бинарное дерево……………………………………………………………..…152
Идеально-сбалансированное дерево…………………………………………..173
N-арное дерево………………………………………………………………….178
Граф……………………………………………………………………………..184
Методы с возвращением……………………………………………………….204
Элементарные методы сортировки……………………………………………223
Быстрый метод сортировки……………………………………………………229
Сортировка на деревьях………………………………………………………..232
ЧАСТЬ 2. ЗАДАЧНИКИ
Вводное занятие……..………….…………………………………………..….235
Целые числа…………………………………………………………………….237
Ряды……………………………………………………………………………..247
Одномерные массивы………………………………………………………….254
Матрицы………………………………………………………………………...269
Строки………………………………………..…………………………………286
Рекурсия………………………………………………………………………...294
Синтаксический анализатор…………………………………………………..299
Текстовые файлы……………………………………………………………….307
Списки…………………………………………………………………………..317
Деревья………………………………………………………………………….323
Лабораторная работа №1
Вводное занятие
Цель: знакомство с базовыми понятиями языка программирования С.
Понятие идентификатора. Комментарии к программе. Структура программы и этапы ее обработки. Заголовочные файлы. Константы, переменные, типы данных. Основные конструкции языка. Работа с перечислимым типом.
Методические рекомендации: лабораторная работа рассчитана на 2 часа и состоит из анализа шести заданий и выполнения самостоятельной работы.
Зачетное задание отсутствует.
Обязательные задания для домашнего выполнения.
1 задача
Цель: первичное знакомство с библиотекой ввода-вывода. Вывод строковых констант значений.
Вывести приветствие.
/* подключение библиотеки ввода-вывода*/
#include <stdio.h>
/* главная функция программы*/
int main ()
{
/* вывод на экран “Hello” */
puts(“Hello!”);
/* возвращаемое значение*/
return 0;
}
2 задача
Цель: первичное знакомство с простыми типами данных, ввод простых типов данных, вывод данных, форматирование, управляющие символы.
Ввести и вывести данные простых типов.
#include <stdio.h>
int main ()
{
/* объявление переменной целого типа */
int x;
/* вывод приглашения для ввода целой переменной*/
puts("Enter any integer");
/* ввод значения переменной целого типа*/
scanf("%d", &x);
/* вывод значения переменной x*/
printf(" x = %d\n", x);
/* объявление переменной вещественного типа */
float y;
puts("Enter any float ");
scanf("%f", &y);
printf("y = %3.2f\n", y);
/* объявление переменной вещественного типа двойной точности*/
double z;
puts("Enter any double ");
scanf("%lf", &z);
printf("y = %3.2f\n", z);
/* объявление переменной символьного типа */
char ch;
puts("Enter any symbol");
/* считывание кода клавиши «ENTER»*/
getchar();
/* ввод значения переменной символьного типа*/
ch= getchar();
/*или scanf("%c", &ch); */
printf("z = %c\n", ch);
return 0;
}