Рацеев С.М. Лабораторный практикум по программированию


Чтобы посмотреть этот PDF файл с форматированием и разметкой, скачайте его и откройте на своем компьютере.
Министерство образования и науки РФ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Ульяновский государственный университет»
Факультет математики и информационных технологий
Кафедра информационной без
опасности и теории управления
С. М. Рацеев
ЛАБОРАТОРНЫЙ ПРАКТИКУМ
ПО ПРОГРАММИРОВАНИЮ
Ульяновск
2014
УДК 004.4
ББК 32.965

Р 27
Печатается по решению Ученого совета
факультета математики и информационных технологий
Ульян
овского государственного университета
(протокол № 2/14 от 15.04.2014)
Рецензент
кандидат технических наук
, доцент
Е.Г. Чекал.
Рацеев
С. М.
Р 27
Лабораторный практикум по программированию
метод
ческие указания
/ С. М. Рацеев.
Уль
новск : У
лГУ, 201
с.
В данном л
абора
торном
практикум
по программированию
приводятся
варианты индивидуальных заданий по таким темам, как условные операторы,
циклы, одномерные массивы, матрицы, строки, структуры данных, текстовые и
двоичные файлы, линейные д
инамические структуры данных, бинарные дер
вья
, биты
памяти.
Предназначено для студентов младших курсов, изучающих язык пр
грамм
рования
УДК 004.4
ББК 32.965
© Рацеев С.М., 201
© Ульяновский государственный универси
тет, 2014
Оглавление
Требования к программам
Лабораторная работа № 1. Программирование циклических
вычислительных процессов
Некоторые стандартные математические функции
Лабораторная работа № 2. Проверка попадания точки в область на
плоскости
Лабораторная работа № 3. Числовые и функциональные ряды
Лабораторная работа № 4. Вычисление характеристик числовых
последовательностей
Лабораторная работа № 5. Определение характеристик одномерных
массивов
Лабораторная работа № 6. Модификация одномерных массивов
Лабораторная работа № 7. Обработка текстовых строк
Лабораторная работа № 8. Обработка и модификация двумерных
массивов
Лабораторная работа № 9. Рекурсия
Лабораторная работа № 10. Текстовые файлы
Лабораторная работа № 11. Двоичные файлы. Базы данных
Лабораторная работа № 12. Линейные списки
Лабораторная работа № 13.
Обработка линейных
динамических
структур
Лабораторная работа № 14. Обработка бинарных деревьев
Лабораторная работа №
15. Работа с битами памяти
Литература
Требования к программам
В каждой лабораторной работе задания разделены на три уровня
сложн
сти
ровень A (начальны
ровень B (средний и выше среднего)
ровень C (продвинутый)
Необходимо в каждой лабораторной работе выбрать уровень сложности по
своим силам и в соответствующем уровне выбрать один вариант
для в
полн
ния задания
При этом
следует
учесть следующие мо
менты.
Чтобы
на экзамене
рассч
тывать на оценку «
отлично
, помимо
соответствующего
ответа на
экзаменационны
прос
необходимо
отсутствие долгов по лабораторным работам к моменту провед
е−
ния экзамена
своевременная сдача лабораторных работ
выполнение
менее
лабораторных работ с уровнем сло
ости
и ни одной лабораторной работы с уровнем сложности
ешение дополнительных зада
ч соответствующего уровня.
Чтобы на экзамене рассчитывать на оценку «
хорошо
, помимо
ответствующего
ответа на экз
менационны
вопрос
необходимо
отсутствие долгов по лабор
аторным работам к моменту провед
е−
ния экзамена
своевременная сдача лабораторных работ
выполн
ение
не менее 75
% лабораторных работ с уровнем сло
ности
ешение дополнительных зада
ч соответствующего уровня.
Важно!!!
Не стоит сдав
ать лабораторные работы с уровнем
сложн
сти
или
, если программы были написан
ы кем
то другим. Такие работы
приниматься не будут.
При выполнении заданий с уровнем сложности
рекомендуется
с−
пользовать эффективные алгоритмы для решения соответствующих задач
и производить
вычисления сложности алгоритмов
Сроки сдачи лабораторных р
абот
Для групп КБ, ИС, ИТСС
Номер лабораторной
работы
Срок сдачи
1, 2
сентябрь
㌀Ⱐ
октябрь
㔀Ⱐ㘀Ⱐ
㜀Ⱐ㠀
ноябрь
㤀Ⱐ
㄰Ⰰ
ㄱⰀ‱㈀
декабрь
Для групп МОАИС, САиУ
АТПП, Ав
Номер лабораторной
работы
Срок сдачи
сентябрь
㈀Ⱐ㌀
октябрь
㐀Ⱐ㔀
ноябрь
㘀Ⱐ㜀
декабрь
февраль
㄰Ⰰ‱㄀
март
ㄲⰀ‱㌀
апрель
ㄴⰀ‱㔀
май
Программа должна иметь структурированный вид. Это значит, что
операторы надо располагать с отступами от левого края согласно принц
пу подчиненности операторов друг другу. В результате, например, о
ткр
вающейся операторной скобке
будет соот
ветствовать закрывающая
скобка
, расположенная либо в той же строке, либо на одной из нижних
строк, но точно под скобкой
Например,
#include stdio..4;&#xst8.;Ә.;io.;.7;&#xh000;h
int main()
for (i = 0; i 10; i++)
printf("%d
n", i);
return 0;
Лабораторная работа № 1
Программирование циклических
вычислител
ных процессов
Для
функции
sin
xe
составить программу п
строения таблицы значений функ
ции при изменении аргумента от
B
с шагом
,
0
=
H
Значения
объявить как константы
в д
рективах
define
каждой строке выводить значение
аргумен
та и соо
ветствующее ему значение функции в форматированном виде с
4 знаками
после за
ятой. Кроме того, в конце таблицы
нужно
напечат
ать отдельной
строкой значение, которое требуется вычислить в соответствии с
индив
дуальным
вариантом.
Уровень
Варианты заданий
Среднее арифметическое всех отрицательных значений функции.
2.
Сумм
таких
значений функции, которые находятся на отрезке от М
до N.
Среднее арифметическое таких значений функции, которые находятся
на отрезке от М до N.
4.
Среднее арифметическое таких значений функции, которые больше
числа М.
5.
Среднее арифметическое все
отрицательных значений функции.
6.
Количество
всех отрицательных значений функции.
7.
Количество
таких значений функции, которые находятся на отрезке
от М до N.
8.
Количество
всех
отрицательных значений функции.
9.
Среднее арифметическое таких з
начений функции, которые
меньше
числа М.
Сумм
таких значений функции
для которых выполнено нер
а−
венство
Количество
таких значений функции, которые
меньше
числа М.
Среднее арифметическое таких значений функции, которые
меньш
числа М.
Сумм
таких значений функции, которые
не принадлежат отрезку
от
М до N.
Количество
таких значений функции
для которых выполнено
неравенство
Количество
таких значений функции
для которых выполнено
равенств
Сумм
таких значений функции
для которых выполнено нер
а−
венство
17.
Сумм
таких значений функции, которые по модулю больше числа М.
Пример программы уровня
Найти
реднее арифметическое т
а−
ких значений функции
sin
для которых выполнено
неравенство
#include stdio..4;&#xst8.;Ә.;io.;.7;&#xh000;h
#include math.h.9m;!.3;£.6;&#xth.6;&#x.1h8;&#x.300;
#define A
3.0
#define B 3.0
#define H 0.2
/* функция F() вычисляет значение функции y =
в точке x */
double F(double x)
return sin(x) + x*x;
int main( )
double
int count;
sum = count = 0;
for(x = A; x = B; x += H)
y = F(x);
printf("%10.4f %10.4f
n", x, y);
if (y� x*x)

count++;

sum += y;
if (count == 0)
puts("count = 0");
else printf("sred = %10.4f
n", sum/count);
return 0;
ровень
Варианты заданий
1.
Количество
отрицательных
значений функции, имеющих нечетную
целую часть.
2.
Среднее арифметическое таких значений функции, которые имеют в
младшем разряде целой части цифру, большую 3.
3.
Среднее арифметическое таких значен
ий функции, которые имеют
дробную часть, меньшую 0
4.
Количество значений функции, имеющих в младшем разряде целой ч
а−
сти цифру, большую 3.
5.
Среднее арифметическое таких значений функции, которые имеют
четную целую часть.
6.
Количество неотрицательн
ых значений функции, имеющих четную
целую часть.
7.
Сумм
таких значений функции, которые
имеют дробную часть, бол
шую 0
8.
Сумм
таких значений функции, которые имеют целую часть, кратную Z.
9.
Среднее арифметическое таких
значений функции, которые
имеют
е−
четную целую часть.
10.
Количество
положительных
значений функции,
которые имеют
ную целую часть и
дробную часть, меньшую 0
Сумм
неотрицательных значений функции,
которые имеют
нече
ную целую часть и
дробную часть,
большую 0
еднее арифметическое таких значений функции,
которые имеют
нечетную целую часть и
дробную часть,
большую
Сумм
таких значений функции,
целая часть которых двузначна
Количество
таких значений функции,
целая часть которых по модулю
меньше чис
ла
Сумм
таких значений функции,
дробная
часть которых больше
меньше 0
Среднее арифметическое таких значений функции,
целая часть кот
рых по модулю больше числа
Среднее арифметическое таких значений функции,
дробная часть к
рых больше 0
и меньше 0
Уровень
Для решения следующих заданий
разрешается использовать цикл
тол
ко один
раз
Варианты заданий
1.
инимальное
среди
неотрицательных
значений функции и количество
таких
минимальных
значений.
2.
аксимальное среди знач
ений функции, имеющих целую часть, кра
ную Z
и количество таких
максимальных
значений
3.
инимальное среди значений функции, им
еющих дробную часть,
меньшую 0
и количество таких
минимальных
значений
4.
инимальное среди значений функции, имеющих чет
ную целую
часть
и количество таких
минимальных
значений
5.
аксимальное среди значений функции, имеющих нечетную целую
часть
и количество таких
максимальных
значений
6.
аксимальное среди значений функции, имеющих в младшем разряде
целой части цифру,
меньшую 4
и количество таких
максимальных
знач
е−
ний
7.
аксимальное среди значений функции, имеющих дробную часть
больше 0
и количество таких
максимальных
значений
8.
инимальное среди значений функции, которые имеют в младшем
разряде целой части
цифру, большую 3
и количество таких
минимальных
значений
инимальное среди значений функции,
целая
часть
которых меньше
числа
и количество таких
минимальных
значений
аксимальное среди значений функции, имеющих в младшем ра
де целой части
цифру, большую 2
и количество таких
максимальных
а−
чений
Некоторые
стандартные математические функции
Стандартные математические функции находятся в файле
math.h
abs
абсолютное значение целого числа
|x|
int abs(int x);
labs
абсолютн
е значен
длинного
целого числа
|x|
long labs(long x);
fabs
абсолютное значение числа с плавающей точкой
|x|
double fabs(double x);
sqrt
извлечение квадратного корня:
double
sqrt
double
);
pow
возведение
степень
double pow(doub
le x, double y);
cos
косинус
cos x
(здесь и далее
задается в радианах):
double cos(double x);
синус
sin x
double sin(double x);
тангенс
double tan(double x);
acos
арккосинус
arccos x
double
cos(double
x);
asin
арксинус
arcsin x
double
sin(double x);
atan
арктангенс
arctg x
double atan(double x);
atan2
арктангенс
arctg x/y
double atan2(double x, double y);
exp
кспонента
double exp(double x);
log
натуральный лога
рифм
ln x
double log(double x);
log10
десятичный
логарифм
log
double log10(
double x).
Лабораторная работа № 2
. Проверка попадания точки
в область на пло
кости
Для ф
ункции из лабораторной работы
составить программу п
строения табл
ицы значений функции, состоящую из
ст
рок при измен
нии аргумента от
В каждой
строке таблицы выводить значение
аргумента
и соотве
ствующее ему значение функции
в форматированном виде с
знаками
после запятой. В конце таблицы вывести отдельной
строкой среднее
арифметическое всех значений функции.
Кроме того, программа должна определить, сколько точек с коорд
натами
) из полученной таблицы попадает внутрь области, ограниче
ной фигурой
, соответствующей индивидуальному заданию
ровень
В ка
честве области выступает
рямоугольник
со следующими
шинами
Варианты заданий
10), (
2), (2,
2), (2,
10)
7), (
3), (7,
3), (7,
6), (
4), (6,
4), (6,
10,
9), (
10,
3), (2,
3), (2,
), (
6), (4,
6), (4,
10,
6), (
10,
7), (0,
7), (0,
10), (
4), (5,
4), (5,
10)
10), (
3), (5,
3), (5,
10)
6), (
5), (3,
5), (3,
7), (
3), (5,
3), (5,
11.
7), (
6), (2,
6), (2,
12.
6), (
4), (0,
4), (0,
13.
7), (
6), (2,
6), (2,
14.
9), (
2), (2,
2), (2,
15.
6), (
8), (3,
8), (3,
16.
6), (
5), (2,
5), (2,
17.
10), (
3),
(4,
3), (4,
10)
Пример программы уровня
Найти количество точек
, где
sin
которые попадают внутрь области, ограниченной прямоугол
ником с вершина
ми (
2), (
3), (5,
3), (5,
#include stdio..4;&#xst8.;Ә.;io.;.7;&#xh000;h
#include math.h.9m;!.3;£.5;&#xth.6;&#x.1h8;&#x.300;
#define A
3.0
#define B 3.0
double F(double x)
return sin(x) + x*x;
int main( )
double x, y, h;
int count, n;
count = 0;
printf
= ");
scanf
("%
", &
количество строк в таблице
h = (B
A) / (n
1);
for(x = A; x = B;
x += h)
y = F(x);
printf("%10.4f %10.4f
n", x, y);
if (x� =
1 && x = 5 && y&#x= 5-;.3 ;&#x&& y;.8;&#x 000; =
2 && y = 3)

count++;
printf("count = %d
n", count);
return 0;
ровень
Варианты заданий
ровень
Сгенерировать четыре случайные точки плоскости
),
с тем условием, что точка
принадлежит первой че
верти координатной плоскости,
второй четверти,
третей
четверти,
четвертой четве
рти.
После этого найти количество точек
из таблицы
, принадлежащих полученной области.
Сделать это двумя
способами
через уравнения прямых и через площади
треугольников
Лабораторная работа № 3
Числовые и функциональные р
Уровень
Для
бесконеч
ного числового
ряда
члены которого вычисляются по формуле, соответствующей индивидуал
ному
варианту
вычислить
сумму первых
членов ряда
с использованием
функции
double Sum(int n)
Варианты заданий

Пример программы уровня
Вычислить
сумму первых
членов
числового
ряда
члены которого вычи
ляются по формуле
#include stdio..4;&#xst8.;Ә.;io.;.7;&#xh000;h
double Sum(int n)
double sum = 0;
for(i = 1; i = n; i++)
sum += 5.0 / (i*i + 10*i
1);
return sum;
int main( )
printf("n = "); scanf("%d", &n);
printf("sum = %.10f
n", Sum(n));
return 0;
Уровень В
Для
бесконечного числового
ряда
члены которого вычисляются по формуле, соответствующей индивидуал
ному
варианту
вычислить
приближенную сумму двумя
способами
сумму
первых
членов ряда
и сумму
с точно
стью до
eps
силон
в двух разных
функциях
double Sum1(int n);
double
Sum
double
eps
Запрещается
использование функции
pow
и условных операторов
«? : »
Варианты
заданий

Уровень С
Для
функционального
ряда
коэффициенты
которого вычисляются по формуле, соответствующей и
дивидуальному
варианту
вычислить
приближенную
сумму
при фиксир
ванном значении
двумя способами
сумму первых
членов ряда
и сумму
с точн
стью до
eps
эпсилон
в двух разных функц
double Sum1(
double x,
int n);
double Sum2(
double x,
double eps)
Запрещается
использование
условных операторов
и «
? :
функции
вторичное
вычислени
факториала
и возведение в степень
на ка
дом шаге ит
рации
(использовать рекуррентны
е соотноше
1)!
Варианты заданий
Лабораторная работа № 4
Вычисление
характеристик
числовых послед
вательностей
Последовательность данных не всегда нужно сохранять в памяти.
Поэтому н
ужно уметь
обрабатывать
оследовательность
по мере посту
ления ее элементов: при чтении файла, при вводе некоторых данных с кл
а−
виатуры и т.д.
Пусть имеется последовательность произвольных
целых ненулевых
чисел, завершаю
щаяся числом 0
число 0 в последовате
льность не вх
дит
оличество элементов в последователь
ности
заранее
неизвестно,
этому
в данной работе
использовать массивы
(статические и динамич
ские)
нельзя
Уровень
Варианты
заданий
Напечатать в обратном порядке наибольший элемент последовател
ности.
2.
Найти
количество наибольших и наименьших элементов
последов
а−
тельности
3.
Найти
количество простых чисел в последовательности, больших з
а−
данного числа М.
4.
Найти сумму таких элементов
последовательности
, которые больше
всех предшествующих им
элементов.
5.
Найти количество четных чисел
последовательности
, сумма цифр в к
торых не превышает заданного числа P.
6.
Найти
количество таких
элементов
последовательности
, которые пр
е−
восходят сумму всех предшествую
щих элементов.
7.
Напечатать в обратн
ом порядке наи
меньший
элемент последовател
ности.
8.
Найти
сумму таких
элементов
последовательности
, которые
имеют в
младшем разряде цифру 7
9.
Найти сумму таких элементов
последовательности
, которые
меньше
всех предшествующих им элементов.
0.
Найти
оличество таких
элементов
последовательности
, которые
не
превосходят сумму всех предшествую
щих элементов.
1.
Найти
сумму
четных чисел
последовательности
, сумма цифр в к
торых превышает заданное число
P.
Найти
количество таких
элементов
последовате
льности
, которые
имеют в младшем разряде цифру 3
13.
Найти
количество двузначных
элементов
последовательности
Найти
количество
таких элементов последовательности, сумма цифр
в которых является четным числом
Найти
количество
составных
чисел в
последовательности.
Найти
сумму
четных чисел
последовательности
количество
цифр в
которых не превышает заданного числа P.
Найти
количество таких
элементов
последовательности
, которые
имеют в своем составе цифру 5
Пример программы уровня
йти
количество таких
элементов
последовательности
целых чисел
первая цифра которых равна 5.
#include stdio..4;&#xst8.;Ә.;io.;.7;&#xh000;h
#include math.h.9m;!.3;£.5;&#xth.6;&#x.1h8;&#x.300;
/* проверка, является ли цифра d первой цифрой числа a */
int Check(int a, int d)
int b = abs(a);
while (�b 9)
b /= 10;
return b == d;
int main( )
int a, count = 0;
printf("a = "); scanf("%d", &a);
while (a)
if (Check(a, 5))

count++;
printf("a = "); scanf("%d", &a);
printf("count = %d
n", count)
return 0;
Уровень
Варианты
заданий
1.
Найти значения и порядковые номера элементов, являющихся
наи
меньшим среди чет
ных чисел и наибольшим среди нечетных чисел.
2.
Найти порядковый номер наибольшего по значению числа, являющ
гося симметрич
ным в десятичном предст
авлении.
3.
Вычислить
количество
всех четных цифр во всех нечетных элементах
последовательности
4.
Найти
значение наибольшего элемента и его порядковый номер среди
всех элементов
имеющих
в своем составе цифру 3.
5.
Найти
количество
чисел, которые не п
ревосходят
числа
и являются
полными квадра
тами некоторого натурального числа.
6.
Найти
количество
таких
элементов
которые
лятся на одну из своих
цифр.
7.
Найти количество
таких
элементов, сумма цифр в которых есть пр
стое число.
8.
Найти
количеств
о таких элементов
, в которых чередуются четные и
нечетные цифры.
9.
Найти
количество таких элементов
, которые состоят из двух равных
частей и имеют в своем составе цифру 3.
10.
Найти в последовательности минимальное число, имеющее наибол
шее количество ц
ифр.
11.
Найти такие элементы
(а также их сумму)
, цифры в которых не пр
е−
восходят заданного числа М (012.
Найти такие элементы (а также их
сумму
), которые состоят только из
четных цифр.
13.
Найти в последовательности число, имеющее
в своем составе
наибольшее количество четных цифр.
Найти порядковый номер наибольшего по значению числа, являющ
е−
гося симмет
рич
ным в двоичном представлении.
5.
Найти
сумму
элементов последовательности
, которые являются по
ными
кубами
некоторого натурального числа
6.
Найти
сумму таких элементов последовательности
которые
лятся
на
сумму
своих цифр.
17. Вычислить общую сумму всех нечетных цифр во всех четных элеме
тах.
Уровень
В последовательности целых чисел найти максимальное количество
чисел
идущих подр
яд, которые обладают свойством
максимальное
количество чисел
идущих подр
яд, которые не обладают свойством
Свойство
задается в варианте.
Программа должна содержать логическую
функцию, проверяющ
, обладает ли заданное число свойством
Вари
анты
заданий
число является простым.
число является
симметрич
ным в двоичном представлении
число
тся на одну из своих цифр
число является полным квадра
том
некоторого натурального числа
в числе
чередуются четные и нечетны
е цифры
число является
симметрич
ным в десятичном представлении
7.
: число состоит из двух равных частей и имеет в своем составе цифру 1.
число состоит из попарно различных
цифр
цифры в
числе образуют неубывающую последовательность
сумма цифр числа является простым числом
Лабораторная работа № 5
Определение
характеристик
одномерных
сивов
Уровень
Требуется определить массив целых чисел (например, размера 30),
заполнить его случайными числами
в диапазоне от
до
где
а−
даются в директивах
define
или ввести его элементы с клавиатуры и
определить его характеристики в соответствии с вар
антом.
Программа должна содержать следующие функции
нициализация элементов массива случайными чис
лами или вв
димыми с клави
атуры;
ывод массива на экран.
Варианты заданий
1. В массиве целых чисел найти
сумму элементов, расположенных
между первым четным
элементом
и последним
нечетным
элементом
массива
2. Найти количество и сумму тех элементов массива, которые делятся на
5 и
не делятся на 7. Вывести все содержащиеся в данном массиве четные
числа в порядке убывания их индексов, а также их количество.
3. Найти количество тех элементов массива, которые больше своего л
е−
вого соседа и меньше своего правого соседа. Вывести на экран
номера м
нимальных элементов.
. Найти количество тех элементов массива, которые больше своего л
е−
вого соседа. Найти количество и сумму
положительных
элементов масс
ва, которые делятся на 3.
Найти максимальный и минимальный элементы и номер элемента,
наиболее близкого к среднему арифметическому минимального и макс
мального элементов.
Вычислить сумму только симметричных элементов
массива
Вычислить среднее арифметическое чисел, содержащих только четные
цифры.
Найти количество элементов, боль
ших
всех
пред
ыдущих
и меньших
всех
последующих.
В массиве целых чисел найти
количество минимальных элементов.
Вычислить сумму элементов
массива
являющихся простыми числ
а−
ми и
расположенных в интервале (
11. Найти количество элементов, больш
их всех предыдущих элеме
тов.
В массиве целых чисел найти
количество максимальных элементов.
Найти сумму всех двузначных
нечетных
элементов целочисленного
массива
Найти
количество таких
элементов
целочисленного массива
, которые
имеют в млад
шем разряде цифру 7
Найти
сумму
элементов
массива
меньших всех последующих эл
е−
ментов
Вычислить
сумму
элементов массива
, содержащих
хотя бы одну
е−
четную цифру
В массиве целых чисел найти
количество простых чисел.
Пример программы уровня
Найти количество всех положител
ных элементов целочисленного массива
, сумма цифр которых больше 10.
#include stdio..4;&#xst8.;Ә.;io.;.7;&#xh000;h
#include stdlib.h.4;&#xst8.;Ә.;li8;&#x.5b.;.1h;.30;
#include time..4;&#xtim2;.3e;.6.;.1h;h
#define N 10
#define A
#define B 50
/* инициализация элементов массива a случайными числами
в диапазоне
от A до B */
void Init(int *a, int n)
for(i = 0; i n; i++)
a[i] = A + rand() % (B
A + 1);
вывод
массива
экран
void Print(int *a, int n)
for(i = 0; i n; i++)
printf("%d ", a[i]
putchar('
n');
сумма
цифр
числа
a */
int Sum(int a)
int sum = 0;
while (a)
sum += a % 10;
a /= 10;
return sum;
int main( )
int a[N], i, count;
srand(time(NULL));
Init(a, N);
Print(
a, N);
for(i = count = 0; i N; i++)
if (a[i]� 0 && Sum(a[i]�) 10)

count++;
printf("count = %d
n", count);
return 0;
Уровень
Требуется определить массив целых чисел (например, размера 30),
заполнить его случайными чис
лами
в диапазоне от
до
, где
а−
даются
директива
define
или ввести его элементы с клавиатуры и
определить его характеристики в соответствии с вар
антом.
Программа дол
жна содержать следующие функции:
нициализация элементов массива случайными
чис
лами или вв
димыми с клавиатуры;
ывод массива на экран.
Варианты заданий
1.
Найти порядковые номера и сумму двух
попарно различных
наибол
ших элементов.
2.
Найти наибольшее количество
одинаковых
элементов.
3.
Вычислить максимальное число подряд идущ
х положительных чисел,
не превышаю
щих числа
и имеющих в своем составе цифру 5.
4.
Найти количество
попарно
различ
ных
элементов массива
, меньших
числа
5.
Определить порядковые номера трех наименьших элементов и их
сумму
6.
Среди элементов массива
найти индексы в
сех таких, которые могут
быть по
лучены суммированием двух элементов этого же массива.
7.
Напечатать
все те
элементы
массива
, сумма цифр в которых на
ходится
в интер
вале от
до
8.
Определить, имеется ли в
массиве
элемент, равный сумме на
ибольш
е−
го четного элемента и наименьшего нечетного элемента.
9.
Подсчитать количество элементов в массиве, являющихся точным
квадратом другого элемента в этом массиве.
10.
Среди всех симметричных чисел найти наиболее длин
ное (по колич
е−
ству цифр
11.
печатать
все те элементы массива
, цифры которых образуют ге
метрическую прогрессию.
12.
Напечатать индексы элементов массива и сами элементы, сумма цифр
которых кратна индексу этого элемента.
13.
Напечатать такие элементы массива и их количество, сумма ц
ифр к
торых есть простое число.
Определить, есть ли в числовом массиве элемент, взаимно простой с
каждым из остальных элементов массива, и напечатать его.
Среди элементов массива найти
такие, которые могут быть по
лучены
с помощью произведения
дву
х элементов этого же массива.
Подсчитать
сумму
элементов в массиве, являющихся точным
кубом
другого элемента в этом массиве.
Напечатать
сумму
и количество
таких элементов
массива, сумма
цифр которых
является составным
число
Уровень
Требуется
определить массив целых чисел
(например, размера 30),
заполнить его случайными числами
в диапазоне от
до
, где
а−
даются
директива
define
) или ввести его элементы с клавиатуры
пределить количество
попарно
различных элементов массива
, обл
а−
ющих свойством
(рас
смотреть три случая: произвольный массив, упор
доченный массив,
ассив с достаточно узким диапазоном значений эл
е−
ментов)
Свойства
даю
тся в в
риантах.
Программа дол
жна содержать следующие функции:
нициализация элементов массива
случайными чис
лами или вв
димыми с клавиатуры;
ывод массива на экран
оличество
попарно
различных элементов
со свойством
для
произвольного массива
оличество
попарно
различных элементов
со свойством
для
упорядоченного массива
оличество
попарно
зличных элементов
со свойством
для
ассив
с достаточно узким диапазоном значений элеме
тов
Варианты заданий
число является четным.
число является положительным.
число содержит цифру 1.
число не содержит цифру 0.
число является нечетным.
число является простым.
число является двузначным.
число является составным.
число является нечетным.
число содержит цифру 5.
Лабораторная работа № 6
Модификация одномерных масс
вов
Уров
ень
Требуется определить массив целых чисел (например, размера 30),
заполнить его случайными числами
в диапазоне от
до
, где
а−
даются в директивах
define
или ввести его элементы с клавиатуры
образовать массив в соответствии
с в
риантом
адания
Программа дол
жна содержать следующие функции:
нициализация элементов массива случайными числами или вв
имыми с клавиатуры;
вывод массива на экран;
ычисление минимального/максимального элемента массива.
Варианты заданий
1.
Заменить все положител
ьные элементы
массива
на наименьший эл
е−
мент массива
2.
Заменить
все
элементы массива
, находящиеся в интервале (
на
больший элемент мас
сива
3.
Заменить
все
отрица
тельные
элементы массива
на
сумму
минимальн
го и максимального
элементов
4.
Заме
нить положительные четные элементы
массива
на наибольший
элемент массива
5.
Циклически сдвинуть
массив на одну позицию влево
и найти мин
мальный элемент
6.
Заменить все элементы массива, которые делятся на 5 и не делятся на
7, на
минимальный элемент
7.
Заменить все
нечетные
значения целочисленного массива на
модуль
мин
мального элемента
8.
Циклически сдвинуть
массив на одну позицию вправо
и найти макс
мал
ный элемент.
Поменять порядок элементов
массива
на противоположный
и найти
сумму минимально
го и максимального
элементов
Заменить
все
элементы массива
меньшие числа
на наибольший
мент мас
сива
Заменить
отрицательные
четные элементы
массива
на наи
меньший
мент массива
Заменить все элементы массива, которые делятся
7, на
максимал
ный элемент
Заменить все
двузначные
элементы массива на
максимальный эл
е−
мент
Заменить
все
четные
двузначные
элементы массива
на наибольший
мент
Циклически сдвинуть
массив на две позиции влево и найти мин
мальный элемен
Заменить все
четные двузначные
элементы массива на
наименьший
мент
Циклически сдвинуть
массив на две позиции вправо и найти макс
мал
ный элемент.
Пример программы уровня
Заменить
все
положительные эл
е−
менты
массива
, заканчивающиеся на ци
фру 3,
на наи
меньший
элемент
массива
#include stdio..4;&#xst8.;Ә.;io.;.7;&#xh000;h
#include stdlib.h.4;&#xst8.;Ә.;li8;&#x.5b.;.1h;.30;
#include time..4;&#xtim2;.3e;.6.;.1h;h
#define N 10
#define A
#define B 50
/* инициализация элементов массива a случайными числами в диапазоне
от A до B */
void Init(int *a, int n)
for(i = 0; i n; i++)
a[i] = A + rand() % (B
A + 1);
вывод
массива a
на экран
void Print(int *a, int n)
for(i = 0; i n; i++)
printf("%4d
", a[i]);
putchar('
n');
минимальный
элемент
массива
a */
t Min(int *a, int n)
int i, min
a[0]
for(i = 1; i n; i++)
if (a[i] min)

min = a[i];
return min;
int main( )
int a[N], i, min;
srand(time(NULL));
Init(a, N);
Print(a, N);
min = Min(a, N);
for(i = 0; i N; i++)
if (a[i]� 0 && a[i] % 10 == 3)

a[i] = min;
Print(a, N);
return
Уровень
Требуется определить массив целых чисел (например, размера 30),
заполнить его случайными числами
в диапазоне от
до
, где
а−
даются
в директивах
define
или ввести его элементы с клавиатуры
Найти
минимальный элемент массива из всех элем
ентов, обладающих свойством
Все элементы массива, обладающие свойством
, заменить на их обра
ные изображения
(например, 123 заменить на 321)
Отсортировать массив
по
возрастанию
После инициализации и каждого преобразования выв
дить массив на экран.
ойства
задаются в вариантах
задания
Программа дол
жна содержать следующие функции:
нициализация элементов массива случайными чис
лами или вв
димыми с клавиатуры;
ывод массива на экран
ахождение минимального элемента из всех элементов, облад
ющих с
войством
ортировка элементов массива
елочисленная функция, которая возвращает число в переверн
том виде.
Варианты заданий
1.
: число является четным.
числ
о содержит в своем составе цифр
2 и 3
число является положительным.
число нач
инается
с цифры
число содержит цифру 1.
число является простым.
число не содержит цифру 0.
первая цифра числа совпадает с п
сле
ней
число является нечетным.
число является составным
: число является простым.
число
содержит в своем составе ци
ру 5
число является двузначным.
число
содержит в своем составе
цифру 7
8.
число является
симметричным
: число
является
трехзначным
9.
сумма цифр числа равна 10.
: число
является четным
10.
сло не содержит четных цифр.
: число
является простым
11.
число является составным.
: число
начинается с 2
12.
число начинается с 3.
число
является составным
13.
число является степенью двойки.
первая цифра числа является
четной
14.
число содержит хотя бы одну четную цифру.
: число
содержит в
младшем разряде
цифру
15.
число содержит цифру 3.
число
является составным
16.
число является трехзначным.
число содержит в своем составе
цифру 2
17.
число яв
ляется степенью тройки.
число не содержит в своем с
ставе цифру 5
Уровень
Требуется определить массив целых чисел (например, размера 30),
заполнить его случайными числами (в диапазоне от
до
, где
а−
даются
директива
define
) или ввести ег
о элементы с клавиатуры.
рядочить по возрастанию только те элементы целочисленного массива, к
торые обладают свойством
, оставив остальные элементы на своих м
е−
стах. Удалить из массива все элементы, обладающие свойством
После
инициализации и
каждого
преобразования выводить массив на экран.
Свойства
даются в вариантах
задания
Программа должна содержать следующие функции
нициализация элементов
массива
случайными чис
лами или вв
димыми с клавиатуры;
ывод массива на экран
огическая функция,
которая проверяет, обладает ли целое число
свойством
ортировка
элементов массива, обладающих свойством
даление элементов массива, обладающих свойством
Варианты заданий
число является четным.
: число состоит из
попарно
различных
цифр.
число является положительным.
только одна цифра в числе
встречае
ся ровно два раза, остальные
не более одного раза
число содержит цифру 1.
: цифры в числе упорядочены по
возра
с−
танию
число не содержит цифр
0.
: число я
вляе
тся
симметричными в
двои
ном представлении.
число является нечетным.
: число я
вляе
тся
простым
и не содержит
в своем составе цифру 5
число является простым.
в числе
хотя бы одна
цифр
а встречается
более одного р
число является двуз
начным.
:
число
состоит только из простых
цифр
:
число начинается на 1.
:
каждая цифра, входящая в число, встреч
а−
ется ровно два раза
сумма цифр числа является четным числом.
число
является пр
изведением двух различных простых ч
сел
10.
число является квадратом некоторого натурального числа.
число
является степенью н
которого простого числа
Лабораторная работа №
Обработка текстовых строк
Требуется
ыделить в строке
предложении
все слова, разделенные
симв
олами
разделителя
ми
_.,;:
, и обработать
выделенные сл
ва в
соответствии с вариантом
задания
Определения
егулярное
слово
слово
состоящее
лько из больших
латинских
букв
алиндром
это слово,
которое одинаково читается слева направо и
справа налево.
Алфавитны
й порядок
задается таблицей ASCII.
Уровень
Выделить в строке
предложении
се слова, разделенные символ
а−
ми
разделителями
_.,;:
Обработать выделенные слова в соотве
ствии с вариантом.
Варианты заданий
1.
Напечатать все слова, начинающиеся на бо
льшую
и заканчивающиеся
на меленькую букву
2.
Напечатать все слова, содержащие хотя бы одну цифру.
3.
Напечатать все слова, содержащие хотя бы одну маленькую латинскую
букву.
4.
Напечатать все слова, содержащие хотя бы одну большую латинскую
букву.
Напечатать все слова, состоящие только из маленьких латинских букв.
6.
Напечатать все слова, состоящие только из больших латинских букв.
7.
Напечатать все слова, состоящие только из цифр.
8.
Напечатать все слова, состоящие не менее чем из четырех букв.
9.
Напечатать все пятибуквенные слова.
10.
Напечатать все слова, содержащие буквы и цифры.
11.
Напечатать все слова, не содержащие ни одной цифры.
Напечатать все слова, не содержащие ни одной большой латинской
буквы.
Напечатать все слова, сод
ержащие хотя бы две цифры.
Напечатать все слова, содержащие две рядом стоящие буквы.
Напечатать все слова, содержащие две рядом стоящие цифры.
Напечатать все слова, состоящие не более чем из пяти букв.
Напечатать все слова, состоящие то
лько из латинских букв.
Пример программы уровня
Напечатать все слова
, содержащие
ровно две маленькие латинские буквы.
#include stdio..4;&#xst8.;Ә.;io.;.7;&#xh000;h
#include ctype..9c;.1;&#xty16;&#x.8pe;.5.;.1h;h
#define DELIMITERS " .,:;?!
#define N 1024
/* количество маленьких латинских букв в
строке
(слове)
int Count(char *s)
int i, count;
for(i = count = 0; s[i] != '
0'; i++)
if (islower(s[i]))

count++;
return count;
int main( )
char s[N];
char *word;
int i, j, flag[256] = {0};
fgets(s, N,
stdin);
for (i = 0; DELIMITERS[i]; i++)
flag[DELIMITERS[i]] = 1;
for (i = 0; s[i] && flag[s[i]]; i++)
while (s[i])
word = s + i;
while (s[i] && !flag[s[i]])

i++;
j = i;
while (
s[i] && flag[s[i]])

i++;
s[j] = '
0';
if (Count(word) == 2)

puts(word);
return 0;
Уровень
Выделить в строке
предложении
се слова, разделенные символ
а−
ми
разделителями
_.,;:
. Обработать
выделенные слова в соотве
ствии с вариантом
задания
Крайне не рекомендуется
использование
функции
strtok
из библиотеки
string
Вариант
ы заданий
1.
Подсчитать количество слов, начинающихся на большую букву и с
держащих хотя бы один
арифметический
знак. Напечатать все слова, с
держащие две рядом стоящие одинаковые буквы.
2.
Подсчитать количес
тво регулярных слов
. Напечатать в перевернутом
виде все слова, которые содержат два экземпляра заданного символа.
3.
Напечатать
все
слова, начинающиеся с
большой буквы. Напечатать с
а−
мое длинное регулярное
слово, которое
состоит из одинаковых символов.
4.
Напечатать слово, содержащее наибольшее колич
ество цифр. Напеч
а−
тать количество слов, содержащих
хотя бы
два
арифметических
знака.
5.
Напечатать
все
регулярные
слова
. Напечатать в перевернутом виде с
а−
мое длинное слово, состоящее только из цифр и
латинских
букв.
6.
Найти количество слов, содержащих б
олее одной цифры, и
исключив
все
арифметические
знаки из этих слов, напечатать их.
Напечатать в п
рядке
возрастания все числа, встретив
шиеся в словах.
7.
Определить количество слов, которые
содержат заданное подслово
хотя бы одну цифру, и напечатать их
. Напечатать в порядке
убывания
все
числа, встретив
шиеся в словах.
8.
Определить количество слов, содержащих и буквы, и цифры, и
ари
метические
знаки. Напечатать их. Напечатать
все симметричные слова, с
держащи
е
наибольшее количество цифр
9.
Подсчитать
количество
регулярных
слов
одержащих хотя бы две
одинаковые
буквы. Напечатать все слова, имеющие одну цифру, удалив из
таких слов все
арифметические знаки
10.
Найти самое длинное
регулярное
слово
и удалить из него
все гласные
буквы.
Найти все
слова, в
которых
имеются
либо
только цифр
либо
только
латинские буквы
11.
Подсчитать количество слов, состоящих из одинаковых букв или
одинаковых цифр. Напечатать в перевернутом виде слова, имеющие хотя
бы один
арифметический
знак.
12.
Напечатать все слова, ко
тор
ые начинаются с большой буквы и
зака
чиваются
заданным
двухбуквенным подсловом
. Определить количество
слов, содержащих
согласные латинские буквы
, и напечатать порядковые
номера этих слов.
13.
Напечатать
все слова
, имеющие в своем составе
согласные лати
нские
буквы
. Определить количество слов, которые не имеют в своем составе ни
одной цифры
, и напечатать эти слова.
14.
Напечатать все симметричные слова,
предварительно
удали
в из них
цифр
. Напечатать
все
слова, состоящие только из
согласных латинских
букв
15.
Найти все слова, содержащие
числа
в диапазоне
от 10 до
100
, и по
считать их сумму. Напечатать слова, не имеющие цифр,
предварительно
удалив
арифметические знаки
16.
Подсчитать количество слов, начинающихся с большой буквы и
оканчивающихся цифрой.
Напечатать слова, соде
ржащие заданное по
д−
слово
и хотя бы один
арифметический
знак.
17.
Подсчитать количес
тво слов, содержащих хотя бы од
согласную
латинскую букву
и хотя бы одну цифру. Напечатать все слова, состоящие
только из четных цифр, и подсчитать
сумму этих цифр.
18.
Напечатать
все
слова, которые содержат хотя бы один
арифметич
е−
ский знак и закан
чиваются
на цифру
. Опре
делить количество слов, соде
щих все
маленькие латинские гласные буквы
19.
Найти количество
симметричных
регулярных
слов и напеч
атать их
Напечатать в перевернутом виде
все
слова, содержащие
согласные лати
ские буквы
20.
Найти и напечатать
все слова, содержащи
е наибольшее к
оличество
букв, если только бук
вы расположены в алфавитном порядке. Подсчитать
количество симметричных слов,
имеющих более двух
арифметических
знаков.
Уровень
Выделить в строке
предложении
се слова, разделенные символ
а−
ми
разд
лителями
_.,;:
Найти
количество все
слов в строке
предложении, которые обладают свойством
Вывести все слова исхо
д−
ной ст
роки
предложения в
лексикографическом
порядке.
Записать в стр
ку
любое из слов максимальной длины строки
. Удалить из строки
все
символы, обладающие свойством
Запрещается
использование функции
strtok
()
из библиотеки
string
Программа дол
жна сод
ержать следующие функции:
ортировка
слов (указателей)
даление
символов
строки
, обладающих свойством
Варианты заданий
C1. Q: в слове нет повторяющихся символов.
символ является мален
кой гласной латинской буквой.
. Q: в слове
все символы встреча
ются более одного раза
символ явл
я−
ется большой гласной латинской буквой.
. Q:
в слове хотя бы один символ встречается более одного раза.
си
м−
вол я
ляется маленькой согласной латинской буквой.
. Q:
в слове только один символ встречается более одно
го раза.
си
м−
вол я
ляется большой согласной латинской буквой.
. Q:
в слове латинские буквы чередуются с символами (например,
символ является цифрой.
. Q: в слове гласные латинские буквы чередуются с согласными.
м−
вол является арифмет
ическим знаком.
. Q: в слове
строчные
латинские буквы чередуются с
прописными
символ является простой цифрой.
. Q: в слове
буквы располагаются по возрастанию
и не повторяются
си
вол является маленькой согласной латинской буквой.
. Q: в слов
е гласные латинские буквы чередуются с
цифрами
символ
ляется маленькой гласной латинской буквой.
. Q: в слове
гласные латинские буквы чередуются с
четными цифр
а−
ми
символ я
ляется
большой
со
гласной латинской буквой.
Лабораторная работа № 8
Обработка и модификация
двумерных
сивов
Уровень
Требуется определить
двумерный
массив
лых чисел (например,
разм
ра 5×7
), заполнить его случайными числами или ввести его элементы
с клавиатуры и
в одномерный
массив
записать характеристики дву
ме
ного массива
в соо
ветствии с вариантом
задания
Программа дол
жна содержать следующие функции:
нициализация элементов
дву
мерного
массива случайными чи
с−
лами или вводимыми с клавиатуры
аполнение одномерного массива в соответствии с заданием
ывод
номерного
массива на экран
ывод
двумерного
массива на экран.
Варианты заданий
1.
Найти суммы четных положительных элементов каждой строки ма
рицы
(5,
) и сохранить их в одномерном массиве
2.
Найти
количество четных положительных элементов каждой с
троки
матрицы
(5,
) и сохранить их в одномерном массиве
3.
Найти суммы нечетных положительных элементов каждого столбца
матрицы
(5,
7) и сохранить их в одномерном массиве
4.
Найти
количество нечетных положительных элементов каждого
столбца матри
цы
(5,
7) и сохранить их в одномерном массиве
5.
Найти суммы положительных элементов, делящихся на 3, каждой
строки матрицы
(5,
7) и сохранить их в одномерном массиве
6.
Найти
количество положительных элементов, делящихся на 5, каждой
строки матр
ицы
(5,
7) и сохранить их в одномерном массиве
7.
Найти суммы положительных элементов,
не
делящихся на 3, каждого
столбца матрицы
(5,
7) и сохранить их в одномерном массиве
8.
Найти
количество положительных элементов,
не
делящихся на 5, ка
дого с
толбца матрицы
(5,
7) и сохранить их в одномерном массиве
9.
Найти минимальные элементы каждой строки матрицы
(5,
7) и сохр
а−
нить их в одномерном ма
сиве
10.
Найти минимальные элементы каждого столбца матрицы
(5,
7) и с
нить их в одномерном ма
ссиве
Найти
количество
двузначных элементов каждой строки
матрицы
(5,
7) и сохранить их в одномерном массиве
Найти максимальные элементы каждой строки матрицы
(5,
7) и с
хранить их в о
номерном массиве
Найти максимальные элементы
каждого столбца матрицы
(5,
7) и
сохр
нить их в одномерном массиве
Найти суммы
двузначных
элементов каждого столбца матрицы
(5,
7)
и сохранить их в одномерном массиве
Найти количество
минимальных
элементов каждой строки матрицы
(5,
7) и
сохранить их в одномерном массиве
Найти количество
максимальных элементов каждого
столбца
матр
(5,
7) и сохранить их в одномерном массиве
Найти количество
простых чисел
каждой строки матрицы
(5,
7) и
сохранить их в одномерном массиве
Пример программы уровня
Найти количество положительных
элементов,
заканчивающихся на 1
, каждой строки матрицы
(5,
7) и сохр
а−
нить их в одномерном массиве
#include stdio..4;&#xst8.;Ә.;io.;.7;&#xh000;h
#include
time
.h�
#include
stdlib
.�h
#define M 5
#define N 7
#define A
#define B 50
/* инициализация элементов матрицы a случайными числами в диапазоне
от A до B */
void InitA(int a[][N], int m, int n)
int i, j;
for(i = 0; i m; i++)
for(j = 0; j n; j++)

a[i][j] = A + rand() % (B
A + 1);
вывод
матрицы
экран
void PrintA(int a[][N], int m, int n)
int i, j;
for (i = 0; i m; i++)
for (j = 0; j n; j++)

printf("%5d", a[i][j]);
printf("
n");
printf("
n");
/* выч
исление значе
ний элементов массив
а b */
void InitB(int a[][N], int m, int n, int *b)
int i, j, count;
for(i = 0; i m; i++)
for(j = count = 0; j n; j++)

if (a[i][j�] 0 && a[i][j] % 10 == 1)

count++;

b[i] = count;
/* вывод массива на экран */
void PrintB(int *a, int n)
for(i = 0; i n; i++)
printf("%5d ", a[i]);
printf("
n");
int main( )
int a[M][N], b[M];
srand(time(NULL));
InitA(a, M, N);
PrintA(a, M, N);
InitB(a, M, N, b);
PrintB(b, M);
return 0;
Уровень
Требуется определить
двумерный
массив це
лых чисел (например,
размера 5×7
), заполнить его случайными числами
в диапазоне от
до
где
задаются
в директивах
def
ine
или ввести его элементы с клав
атуры и
преобразовать массив в соответствии
с в
риантом.
Программа должна содержать следующие функции
нициализация элементов
двумерного
массива случайными числами
или вводимыми с клавиатуры
ывод
двумерного
массива на
экран.
Варианты заданий
Задан прямоугольный массив целых чисел. Определить, есть ли такой
элемент, кото
рый входит во все строки
данного
массива, но не во все
столбцы
и напечатать его.
2.
Символьный квадратный массив заполнен случайным набором симв
лов. Определить количество квадратиков, образованных совокупностью
одинаковых символов
и их суммарную площадь. Квадратик
это образ
вание из не менее чем 4=2х2 одинаковых рядом стоящих символов. Разные
квадратики могут
быть заполнены разными символа
ми.
3.
В квадратный числовой массив запис
аны целые числа в диапазоне от
. Определить, имеются ли такие квадратные подмассивы, сумма эл
е−
ментов которых равна P. Если таковые имеются, то вывести эти подмасс
вы на экран.
4.
Задан прямоугольный массив целых
чисел. Определить, все ли строки
состоят только из разных чисел
и напечатать строки, имеющие в своем с
ставе одинаковые числа.
5.
Квадратный числовой массив моделирует расположение непересека
щихся прямо
угольников в квадрате, причем каждый прямоугольни
к запо
нен своим числом, отлич
ным от нуля, а промежутки между ними з
полнены
нулями. Определить количество прямоугольников их общую площадь.
6.
В квадратный числовой массив записаны целые числа в диапазоне от
. Отсортировать по убыванию элементы ма
ссива по с
трокам, а затем
строки по убыва
нию первых элементов в строке. Результирующий массив
вывести на экран.
7.
В лог
ическом квадратном массиве порядка 8
, моделирующем шахма
ную доску, значениям
соответствуют клетки, на которых расположены
фигуры кон
я,
соответст
вует пустой клетке. Определить, имеются ли на
доске фигуры, угрожающие другим, и напечатать их координаты.
8.
В числовом прямоугольном массиве MxN каждый элемент
равен числу
вида 100*i+j, где
, или нулю. Это число показывает,
на
какую следующую клетку (i,
j) массива следует перейти с данной клетки.
уль означает конец пути. Опреде
лить, можно ли таким образом посетить
все кле
тки массив
, начав с элемента (0,
). Напечатать координаты
начальной и конечной клеток, а также количес
тво посещений.
9.
В прямоугольной матрице найти количество
строк,
элементы которых
упорядочены по
возрастанию.
10.
В частично заполненном значением
логическом квадратном массиве
имеются свободные участки, моделируемые значением
. Определить,
можно ли
размес
тить на них квадрат из значений
размером M. Если во
можно, то напечатать массив со вставленным квадратом на экране.
11.
В логическом квадратном массиве
порядка
8, моделирующем ша
матную доску, значениям
соответствуют клетки, на которых располож
е−
ны фигуры ферзя,
соответ
ствует пустой клетке. Определить, сколько
имеется на доске фигур, угрожающих другим
и удалить с доски те из них,
которые угр
ожают двум или более фигурам
12.
В логическом квадратном массиве
порядка
8, моделирующем ша
матную дос
ку, значениям
соответствуют клетки, на которых располож
е−
ны фигуры слона,
соответст
вует пустой клетке. Определить, сколько
имеется на доске фигур, угрожающих другим
и удалять их с доски до тех
пор, пока слоны не будут угрожать друг другу. Напечатать к
оличество
оставшихся фигур. Результирующий массив вывести на экран.
В прямоугольной матрице найти количество
столбцов, элементы к
торых уп
рядочены по
убыванию.
Упорядочить
строки
прямоугольной матрицы
так, чтобы их
первые
элементы образовывали в
озраста
щую последовательность.
В прямоугольной матрице найти количество
столбцов
которые с
стоят из попарно различных элементов
16.
В прямоугольной матрице
айти номер первого из ее
столбцов, с
держ
щих максимальное количество одинаковых элементо
В прямоугольной целочисленной матрице
найти номер последней из
ее строк
, содержащих максимальное количество
простых чисел
Уровень
Требуется определить
двумерный
массив це
лых чисел (например,
размера 5×7
), заполнить его случайными числами
в диап
азоне от
до
где
задаются
в директивах
define
или ввести его элементы с клав
атуры и
преобразовать массив в соответствии
с в
риантом
задания
Программа должна содержать следующие функции
нициализация элементов
двумерного
массива случайными чи
с−
лами или вводимыми с клавиатуры
ывод
двумерного
массива на экран.
Варианты заданий
1.
В квадратный числовой массив записаны целые числа в диапазоне от
. Отсортировать по убыванию элементы массива, расположенные по
часовой стрелке по спирали, начи
ная с верхнего левого элемента. Резул
тирующий массив вывести на экран.
2.
Символьный квадратный массив заполнен случайным набором симв
лов. Най
цепочки, расположенные по вертик
али и
горизон
тали и сост
ящие из цифр, преоб
раз
овать
их
в числа и напечата
на экране эти числа и
их сумму.
3.
Квадратный массив, элементами которого являются английские буквы
и символ пробела, заполнен кроссвордом. Напечатать все слова в крос
с−
ворде с чередующимися гласными и согласными буквами и их количество.
4.
Квадратный ма
ссив, элементами которого являются английские буквы
и символ пробела, заполнен кроссвордом. Напечатать общее количество
слов в кроссворде и все буквы, которые находятся на пересечении слов
кроссворда.
5.
В числовом квадратном массиве постро
ить «
спираль Ул
ама
следу
щим образом: на
чиная с центрального элемента по
спирали против час
вой стрелки
массив заполняется натуральными числами от 1 до N
. Опр
делить количество простых чисел в массиве.
6.
Две строки матрицы назовем эквивалентными, если совпадают множ
ства элементов, встречающихся в
этих строках, например
строки
эквивалентны.
Найти количество строк
матрицы
, эквивалентных
первой
строке.
Найти
минимальный среди элементов тех
строк, которые упорядоче
либо по возрастанию, либо
по убыванию. Если упорядоченные строки в
матрице о
сутствуют, то вывести
сообщение об этом
Найти м
аксимальный среди элементов тех
столбцов,
которые упоряд
чены либо по возрастанию, либо по
убывани
ю. Если
упорядоченные
столбцы в
ма
рице от
сутствуют, то вывести
сообщение об этом
Упорядочить строки
матрицы
так, чтобы их
минимальные элементы
обр
зовывали убывающую последовательность.
Два
столбца
матрицы назовем эквивалентными, если совпадают мн
жества элементов, встречающихся в этих
столбцах
, например
столбцы
1,2,1
2,1,2
эквивалентны. Найти количество
столбцов
матрицы, э
вивалентных перво
му
столбцу
Лабораторная работа № 9
Рекурсия
Уровень
Требуется определить массив целых чисел (например, размера 30),
запо
нить его случайн
ыми числами или ввести его элементы с клавиатуры
и определить его характеристики
с помощью рекурсивной функции
в соо
ветствии с вариантом
задания
Проверку правильности результата
пров
сти
с помощью сравнения результатов итеративной и рекурсивной фун
ций.
Программа дол
жна содержать следующие функции:
нициализация элементов массива случайными числами или вв
димыми с клавиатуры
ывод массива на экран
теративная функция, вычисляющая характеристики массива в
соответствии с вариантом
задания
екурсивная фун
кция, вычисляющая характеристики массива в
соответствии с вариантом
задания
Варианты заданий
1. В массиве целых
чисел с помощью рекурсивной функции
найти
кол
чество четных
элементов
2.
В массиве целых
чисел с помощью рекурсивной функции
найти
кол
чест
элементов массива, которые делятся на 5 и не делятся на 7.
. В массиве целых
чисел с помощью рекурсивной функции
найти
кол
чество простых чисел
. В массиве целых
чисел с помощью рекурсивной функции
найти
сумму
четных
элементов
Найти макси
мальный
элемент целочисленного массива с помощью р
е−
курсии.
Вычислить сумму только симметричных элементов
массива
с пом
щью рекурсии
В массиве целых
чисел с помощью рекурсивной функции
найти
сумму
таких элементов, которые
состоят только из четных
цифр
. В массиве целых
чисел с помощью рекурсивной функции
найти
кол
чество
элементов, больших заданного числа
В массиве целых чисел
с помощью рекурсии
найти
количество мин
мальных элементов.
В массиве целых чисел
с помощью рекурсии
найти
умму элементов
массива
расположенных в интервале (А,
Найти
количество
двузначных
элементов
массива с помощью реку
сии
Найти
минимальный
элемент целочисленного массива с помощью р
е−
курсии.
В массиве целых чисел
с помощью рекурсии
найти
количество ма
симальных элементов.
Вычислить сумму только
двузначных
элементов
массива с помощью
рекурсии
. В массиве целых
чисел с помощью рекурсивной функции
найти
су
м−
му
элементов, заканчивающихся на 7.
. В массиве целых
чисел с помощью реку
рсивной функции найти су
м−
му всех
элементов массив
а, которые
одновременно
делятся на 3 и на 5
. В массиве целых
чисел с помощью рекурсивной функции
найти
личество
элементов, начинающихся на 3.
Пример программы уровня
В массиве целых чисел
с помощ
рекурсии
найти
количество
таких элементов,
первая цифра которых совп
а−
дает с
после
ней.
#include stdio..4;&#xst8.;Ә.;io.;.7;&#xh000;h
#include stdlib.h.4;&#xst8.;Ә.;li8;&#x.5b.;.1h;.30;
#include time..4;&#xtim2;.3e;.6.;.1h;h
#include math.h.9m;!.3;£.5;&#xth.6;&#x.1h8;&#x.300;
#define N 10
#define A
#define B 50
/* инициализация элементов массива a случайными ч
ислами в диапазоне
от A до B */
void Init(int *a, int n)
for(i = 0; i n; i++)
a[i] = A + rand() % (B
A + 1);
вывод
массива
экран
void Print(int *a, int n)
for(i = 0; i n; i++)
printf("%d "
, a[i]);
putchar('
n');
/* проверка, совпадает ли первая цифра числа a с последней */
int Check(int a)
int b = abs(a), c = b % 10;
while (�b 9)
b /= 10;
/* итеративная функция, вычисляющая количество таких элементов
масс
, первая цифра которых сов
падает с последней */
int CountIt(int *a, int n)
int i, count;
for(i = count = 0; i n; i++)
count += Check(a[i]);
return count;
int main( )
int a[N], i, count;
srand(time(NULL));
Init(a, N);
Print(a, N);
pri
ntf("count1 = %d
n", CountRec(a, a + N));
printf("count2 = %d
n", CountIt(a, N));
return 0;
Уровень
Метод «разделяй и властвуй»
Требуется определить
одномерный целочисленный массив
из
элементов
(например,
30), заполнить его случайными чис
лами
в диап
а−
зоне от
до
, где
задаются
директива
define
или ввести его
элементы с клавиатуры и определить
следующие его характеристики с п
мощью м
тода
«разделяй и властвуй»:
количество элементов массива, обладающих свойством
сумму элемент
ов массива, обладающих свойством
обладает ли хотя бы один элемент массив
свойством
все ли элементы массива
обладают свойством
Свойства
задаются в индивидуальных вариантах.
Проверку правил
ности результата
провести
с помощью сравнения рез
ультатов итеративной
и реку
сивной функций.
Программа дол
жна содержать следующие функции:
нициализация элементов массива случайными числами или вв
димыми с клавиатуры
ывод массива на экран
теративная функция, вычисляющая
количество элементов ма
с−
сива,
ладающих свойством
екурсивная функция,
вычисляющая количество элементов ма
с−
сива, о
ладающих свойством
теративная функция, вычисляющая сумму элементов массива,
обладающих свойством
екурсивная функция,
вычисляющая сумму элементов массива,
облад
ающих свойством
теративная логическая
функция, проверяющая, обладает ли хотя
бы один элемент массив
свойством
екурсивная
логическая
функция, проверяющая, обладает ли хотя
бы один элемент массив
свойством
теративная логическая
функция, проверя
ющая, все ли элеме
ты
массива
обладают свойством
екурсивная
логическая
функция, проверяющая, все ли эл
менты
массива
обладают свойством
Варианты заданий
1.
: число является четным.
: числ
о содержит в своем составе цифр
2 и 3.
число я
вляется положительным.
число начинается с цифры 1
число содержит цифру 1.
число является простым.
число не содержит цифру 0.
первая цифра числа совпадает с п
сле
ней
число является нечетным.
число является составным
число является простым.
число содержит в своем составе цифру
число является двузначным.
число не
содержит в своем составе
цифру 7
8.
число является симметричным.
: число
является трехзначным
9.
сумма цифр числа равна 10.
число
является четным
10.
число не содержит четных цифр.
: число
является простым
11.
число является составным.
: число
начинается с 2
12.
число начинается с 3.
число
является составным
13.
число является степенью двойки.
ервая цифра числа является
четной
14.
число содержит хотя бы одну четную цифру.
: число
содержит в
младшем разряде цифру 3
15.
число содержит цифру 3.
число
является составным
16.
число является трехзначным.
число содержит в своем
составе
цифру 2
17.
число является степенью тройки.
число не содержит в своем с
ставе цифру 5
Уровень
Метод «разделяй и властвуй»
Требуется определить
одномерный целочисленный массив
из
элементов
(например,
30), заполнить его случайными
числами
в диап
а−
зоне от
до
, где
задаются в директивах
define
или ввести его
элементы с клавиатуры и определить
следующие его характеристики с п
мощью м
тода
«разделяй и властвуй»:
количество элементов массива, обладающих свойством
сумму эле
ментов массива, обладающих свойством
обладает ли хотя бы один элемент массив
свойством
все ли элементы массива
обладают свойством
Свойства
задаются в индивидуальных вариантах.
Проверку правил
ности результата провести с помощью сравнения
результатов итеративной
и рекурсивной функций.
Также требуется упорядочить массив по возра
с−
танию с помощью реку
сивной функции (алгоритм сортировки задается в
варианте)
Программа дол
жна содержать следующие функции:
нициализация элементов массива с
лучайными чис
лами или ввод
мыми с клавиатуры;
ывод массива на экран
теративная функция, вычисляющая количество элементов массива,
ладающих свойством
екурсивная функция,
вычисляющая количество элементов массива,
ладающих свойством
теративная
функция, вычисляющая сумму элементов массива, о
ладающих свойством
екурсивная функция,
вычисляющая сумму элементов массива, о
ладающих свойством
теративная логическая
функция, проверяющая, обладает ли хотя бы
один элемент массива
свойством
екур
сивная
логическая
функция, проверяющая, обладает ли хотя бы
один элемент массива
свойством
теративная логическая
функция, проверяющая, все ли элементы
массива
обладают свойством
екурсивная
логическая
функция, проверяющая, все ли элементы
массива
обладают свойством
екурсивная
сортировка элементов массива.
Варианты заданий
число является четным.
: число состоит из
попарно
различных
цифр.
курсивно упорядочить массив с помощью метода прямого выбора.
число является положительным
только одна цифра в числе
встречае
ся ровно два раза, остальные
не более одного раза
Рекурсивно
упорядочить массив с помощью метода вставок.
число содержит цифру 1.
: цифры в числе упорядочены по
возра
с−
танию
Рекурсивно упорядочить массив с
помощью пузырьковой сорт
ровки.
число не содержит цифру 0.
: число я
вляе
тся симметричными в
двоичном представлении.
Рекурсивно упорядочить массив с помощью м
е−
тода прям
го выбора.
число является нечетным.
: число я
вляе
тся
простым и не содер
жит
в своем составе цифру 5
Рекурсивно упорядочить массив с помощью м
тода вставок.
число является простым.
в числе
хотя бы одна
цифр
а встречается
более одного раза
Рекурсивно упорядочить массив с помощью пузырьк
вой со
тировки.
число яв
ляется двузначным.
:
число
состоит только из простых
цифр
Рекурсивно упорядочить массив с помощью метода прямого выбора.
:
число начинается на 1.
:
каждая цифра, входящая в число, встреч
а−
ется ровно два раза
Рекурсивно упор
дочить массив с помощью
метода
вставок.
сумма цифр числа является четным числом.
число
является пр
изведением двух различных простых чисел
Рекурсивно упорядочить ма
сив с п
мощью пузырьковой сортировки.
10.
число является квадратом некоторого натурального числа.
число
является степенью н
которого простого числа
Рекурсивно упорядочить
массив с помощью метода вставок.
Лабораторная работа № 10
Текстовые файлы
Текстовый файл
это
последовательность строк, причем каждая
строка з
канчивается символом
. Текстов
ый файл состоит из обычных
печатных символов (в кодах
ASCII
), включая пробелы, символы новой
строки, си
волы табуляции. Например, в текстовом файле целое число 123
предста
лено тремя символами
цифрами
, которые в файле
расположены друг за дру
гом, образуя сл
во
Требуется с
оставить программу, выполняющую преобразов
ания над
стовыми файлами сог
ласно указанному варианту.
Уровень
Варианты заданий
1.
Напечатать все слова
из текстового файла
, начинающиеся на
большую
и заканчивающиеся на
ма
ленькую букву.
2.
Напечатать все слова
из текстового файла
, содержащие хотя бы одну
цифру.
3.
Напечатать все слова
из текстового файла
, содержащие хотя бы одну
маленькую латинскую букву.
4.
Напечатать все слова
из текстового файла
, содержащие хотя бы
одну
большую латинскую букву.
5.
Напечатать все слова
из текстового файла
, состоящие только из м
а−
леньких латинских букв.
6.
Напечатать все слова
из текстового файла
, состоящие только из бол
ших латинских букв.
7.
Напечатать все слова
из текстового файл
, состоящие только из цифр.
8.
Напечатать все слова
из текстового файла
, состоящие не менее чем из
четырех букв.
9.
Напечатать все пятибуквенные слова
из текстового файла
10. Напечатать все слова
из текстового файла
, содержащие буквы и ци
ры.
11.
Нап
ечатать все слова
из текстового файла
, не содержащие ни одной
цифры.
Напечатать все слова
из текстового файла
, не содержащие ни одной
большой латинской буквы.
Напечатать все слова
из текстового файла, содержащие ровно две
цифры.
Напечатать в
се слова
из текстового файла, содержащие две рядом
стоящие одинаковые буквы.
Напечатать все слова
из текстового файла, содержащие две рядом
стоящие цифры.
Напечатать все слова
из текстового файла, состоящие не более чем из
пяти букв.
Напечат
ать все слова
из текстового файла, состоящие только из л
а−
тинских букв.
Пример программы уровня
Напечатать все слова
з текстового
файла,
разделенные символами
разделителями
_.,;:
содержащие
ровно две большие латинские буквы
#include stdio..4;&#xst8.;Ә.;io.;.7;&#xh000;h
#include ctype..9c;.1;&#xty16;&#x.8pe;.6.;.1h;h
#define DELIMITERS " .,:;?!
#define N 1024
/* количество больших латинских букв */
int Count(char *s)
int i, count;
for(i = count = 0; s[i] != '
0'; i++)
if (isupper(s[i]))

count++;
return count;
/* вывод всех слов с требуемым условием */
int ReadWords(char *fname)
FILE *f;
char s[N], *word;
int i, j, flag[256] = {0};
if ((f = fopen(fname, "r")) == NULL)
return 1;
for (i = 0; DELIMITERS[i]; i++)
flag[DELIMIT
ERS[i]] = 1;
while (fgets(s, N, f) != NULL)
for (i = 0; s[i] && flag[s[i]]; i++)

while (s[i])

word = s + i;

while (s[i] && !flag[s[i]])

i++;

j = i;

while (s[i] && flag[s[i]])

i++;

s[j] = '
0';

if (Count(word) == 2)

puts(word);
fclose(f);
return 0;
int main( )
ReadWords("c:
a.txt");
return 0;
Уровень
Выделить в текстовом файле в
се слова, разделенные символами
разделителями
_.,;:
все
слов
а,
ладающие
свойством
, п
строчно записать в другой текстовый файл
Свойства
задаются в инд
вид
альных вариантах.
Варианты заданий
1.
в слове нет
арифметических знаков.
в слове нет гласных латинских букв.
слово состоит только из согласных латинских букв.
в слове присутствуют и цифры, и арифметические знаки.
в слове присутствуют и гласные, и согласные латинские буквы.
в слове нет согласных латинских букв и цифр.
в слове нет гласных латинских букв и арифметических знаков.
в слове присутствуют гласные латинские буквы.
в слове присутствуют согласные латинские буквы, но нет цифр.
в слове при
сутствуют цифры, но нет арифметических знаков.
в слове согласных латинских букв больше чем гласных.
в слове количество цифр равно количеству арифметических зн
а−
ков.
в слове гласных латинских букв больше чем цифр.
:
в слове коли
чество гласных латинских букв равно количеству
арифметических знаков.
слово состоит только из гласных латинских букв
и цифр
слово состоит только из согласных латинских букв и является р
е−
гулярным.
в слове нет согласных латинских бук
и оно является симметри
ным.
Уровень
Выделить в
текстовом файле
се слова, разделенные символами
разделителями
_.,;:
. Найти
количество все
слов, которые обладают
свойством
Все
слова
из исходного файла
записать во второй файл п
строчно в а
лфавитном п
дке в следую
щем виде:
<слово>
<количество повторений в
исходном
ле>.
Варианты заданий.
C1. Q: в слове нет повторяющихся символов.
. Q: в слове
все символы встречаются более одного раза
. Q: в слове хотя бы один символ встречается
более одного раза.
. Q: в слове только один символ встречается более одного раза.
. Q: в слове латинские буквы чередуются с
цифрами
(например,
a2b5s
. Q: в слове гласные латинские буквы чередуются с согласными.
. Q: в слове
строчные
латинс
кие буквы чередуются с
прописными
. Q: в слове
буквы располагаются по возрастанию и не повторяются
. Q: в слове гласные латинские буквы чередуются с
цифрами
. Q: в слове
со
гласные латинские буквы чередуются с
нечетными
рами
Лабораторная р
абота № 11
воичные файлы
. Базы данных
Уровень
Разработать программу
, реализующую простейшую базу данных,
со
сл
дующими функциями
CreateFile
char
fileName
создание двоичного файла данных,
элементами которого являются записи со структурой, указанной
индивидуальном
варианте.
ReadFile
char
fileName
росмотр записей в
о входном
файле
последовательно от первой до последней
Count
char
fileName
подсчет количества записей в исходном
файле в соответствии с вариантом.
Варианты заданий
1.
АВТОМОБИЛ
Входной файл содержит
сведения об автомобилях
struct Rec
char mark[20]; //
марка автомобиля
long
mas
масса автомобиля в тоннах
int year; //
год выпуска
double price; //
цена
Найти количество самых нов
ых автомобилей.
2. КАТАЛОГ СПОРТИВНЫХ ТОВАРОВ
Входной файл содержит сведения о спортивных товарах:
struct
char
name
[20]; // наименование
char type[20]; //
вид спорта
double price; //
цена
Найти количество самых
дорогих товар
3.
КАТАЛОГ ЧАЙНОЙ ПРОДУКЦИИ
Входной файл содержит сведения о
чайной продукции
struct
char
name
[20]; // производитель
long
mas
; // масса
char
type
[20]; //
тип чая (зеленый, черный,…)
double price; //
цена
айти количество самых
дорогих
сортов чая
4. КАТАЛОГ МОЛОЧНОЙ ПРОДУКЦИИ
Входной файл содержит сведения о молочной продукции:
struct Rec
char name[20]; //
производитель
long mas; //
масса
char
type
[20]; //
тип продукции (молок
о, творог
double
price
; // цена
Найти количество творожной продукции в каталоге.
5. КАТАЛОГ МЕБЕЛЬНОЙ ПРОДУКЦИИ
Входной файл содержит сведения о мебельной продукции:
struct Rec
char name[20]; //
наименование
long mas; /
масса
char
type
[20]; // сорт древесины
double
price
; // цена
Найти количество
самой тяжелой мебельной продукции
6. КАТАЛОГ ЧАСОВ
Входной файл содержит сведения о часах:
struct
char
name
[20]; // производитель (наименован
ие)
char
type
[20];
тип
часов (механические, кварцевые
double
price
; // цена
Найти количество
механических
часов в каталоге
7. ВИДЕОТЕКА
Входной файл содержит сведения о
фильмах
struct
char
name
[50]; // названи
е фильма
char
zhanr
[20]; //
жанр
фильма
long time

продолжительность фильма
Найти количество
самых продолжительных
фильмов
8. АУДИОТЕКА
Входной файл содержит сведения о
музыкальных произведениях
struct
char
name
0]; //
исполнитель (название группы)
char
zhanr
[20]; //
направление жанра
long
time
; // продолжительность
в мин.
Найти количество самых
коротких
музыкальных произведений
9. МОТОЦИКЛЫ
Входной файл содержит сведения о мотоцикл
ах:
struct
char
mark
[20]; // марка мотоцикла
long
mas
; // масса
year
; // год выпуска
double price; //
цена
Найти количество самых тяжелых мотоциклов.
10. КАТАЛОГ ЮВЕЛИРНЫХ УКРАШЕНИЙ
Входной файл со
держит
сведения о ювелирных украшениях
struct Rec
char
name
[30]; // наименование
char
type
[30]; //
материал (золото, серебро
long mas; //
масса
double
price
; // цена
Найти количество золотых украшений.
. КАТАЛ
ОГ КАНЦЕЛЯРСКИХ ТОВАРОВ
Входной файл содержит сведения о канцелярских товарах:
struct
char
name
[30]; // наименование
long mas; //
масса
double price; //
цена
Найти количество
тетрадей в каталоге
12. БУТИК
Входной фай
л содержит сведения о товарах некоторого бутика:
struct Rec
char name[30]; //
наименование
char
country
[30]; // страна
производитель
long
size
; //
размер
double price; //
цена
Найти количество
товаров из з
аданной страны
13. КОНДИТЕРСКИЕ ИЗДЕЛИЯ
Входной файл содержит сведения о кондитерских изделиях:
struct
char
name
[30]; // наименование
long mas;
вес
double price; //
цена
Найти количество
самых дешевых к
ондитерских изделий
14. БЫТОВАЯ ТЕХНИКА
Входной файл содержит сведения о товарах некоторого бутика:
struct
char
name
[30]; // наименование
char
country
[30]; // страна
производитель
long mas; //
вес
double pric
e; //
цена
Найти количество самых дорогих товаров.
15. ТОЧКИ ПЛОСКОСТИ
Входной файл содержит координаты точек трехмерного пространс
ва:
struct
double x; //
абсцисса
double x; //
ордината
double
; // аппликат
Найти количество тех то
чек плоскости, которые содержат
ся внутри
окружности
с центром в начале координат и
радиуса
16. ПРАЗДНИЧНЫЕ ДНИ
Входной файл содержит сведения о праздничных днях:
struct Rec
char
name
[30]; // название праздника
int day; //
день
char month[30]; //
месяц
Найти количество праздничных дней, которые имеются в заданном
месяце.
Уровень
Разработать програм
му, основной блок которой
в режиме
МЕНЮ
позв
ляет выбрать и запустить рабочие
фун
кции
следующего назначения:
CreateFile
char
fileName
создание
двоичного файла да
ных,
элементами которого являются записи со структурой, указа
ной
в индивидуальном варианте.
Add
FileIn
char
fileN
ame
добавление записей
в конец
вхо
ного
файла.
ReadF
ileIn
char
fileName
просмотр записей во входном файле
следовательно от первой до последней.
CreateFileOut
char
fileName
1,
char
fileName
2)
бработка да
ных из входного файла по заданию
индивидуального
варианта и
вывод результатов в
выходной
файл.
ReadFileOut
char
fileName
просмотр записей в выходном фа
ле последовательно от первой до последней.
Варианты заданий
КНИЖНЫЙ МАГАЗИН
Входной файл содержит
сведения о книгах
struct
nomer
; //
номер записи в файле
char
name
0]; //
фамилия автора
char
naz
v[30]; //
название книги
year
; //
год
издания
float
price
; //
цена
Требуется в выходной файл записать все те записи о
книгах
которые
ляют
ся самыми дорогими
struct Rec2
char
name
0]; //
фамилия автора
char
nazv
[30]; //
название книги
year
; //
год издания
oat
price
; //
цена
ХАРАКТЕРИСТИКИ
Входной файл
содержит сведения о персональных компьютерах
struct
nomer

номер записи в файле
char
cpu
[30];
марка
процессора
frecuency
; //
тактовая частота
ddr


ъем ОП в Мбайт

объем
SSD
в Гбайт
float
price
цена
Требуется в выходной файл записать
сведения о всех тех
, кот
рые
имеют наибольшую тактовую частоту
struct
char
cpu
[30];
марка процессора
frecuency
; //
тактовая частота
ddr
; //
объем ОП в Мбайт
;
объем
SSD
в Гбайт
float
price
цена
ФИНАНСОВЫЕ ДОКУМЕНТЫ БУХГ
АЛТЕРИИ
Входной файл содержит
информацию о работниках некоторой организ
а−
ции
struct
nomer
;
номер записи в файле
char
name
[20]; /
фамилия
year
; //
год рождения
float zar
pl; //
заработная плата
Требуется в
выходной файл записать
все фамилии работников без
повт
рения в отсортированном виде:
struct
nomer

номер записи в файле
char
name
[20]; //
фамилия
. СТУДЕНЧЕСКАЯ ГРУППА
Входной файл содержит
сведения
о студентах некоторой группы
struct
nomer

//номер записи в файле
char
name
0]; //фамилия
year
; //
год рожд
ения
floa
t sred
; //средний балл
Требуется в выходной файл записать
сведения
тех
студентах
, кот
рые им
еют наибольший
средний балл
struct Rec2
char
name
[20]; //
фамилия
year

год рождения
float sred
; //
средний балл
. СТУДЕНТЫ ФАКУЛЬТЕТА
Входной файл содержит
информацию о студентах некоторого ф
а−
культета
struct
nomer

номер записи в файле
char
name
0]; //
фамилия
year

год рождения
char
group
0];
группа
float
sred
;
средний балл
Требуется в выходной файл записать
информацию
о студентах, кот
рые
принадлежат
какой
то одной конкретной группе,
причем записи дол
ны быть отсортированы в алфавитном порядке относительно фам
лий
:
struct
nomer

номер записи в файле
char
name
[20]; //
фамилия
year
; //
год рождения
loat
sred

средний балл
6. РАБОТА С ФАЙЛАМИ
Во входном файле задана последовательность записей, которые с
держат полный путь к тому или иному файлу на жестком диске:
struct
nomer
;
номер записи в ф
айле
char
fileName
[256
]; //
полный путь к файлу
Требуется из полного имени файла fileName выделить только имя
файла и записать его в переменную name. При считывании оче
редной з
а−
писи из входного файла
требуется проверить, имеется ли файл с имене
fileName на жестком диске. Если такой файл имеется, то в переменную flag
записать 1, иначе 0. Также в переменную size записать размерность файла
(в байтах); если же такого файла нет, то
в переменную size записать
1.
Компоненты выходного файла имеют тако
й вид:
struct
nomer
;
номер записи в файле
char
fileName
[256
];
//
полный путь к файлу
char
name
256];
имя файла без учета каталогов
flag;



наличие файла с именем f
ileName на жестком
диске
size

размерность файла с именем fileName в байтах
7. ГОРОДА
Входной файл содержит информацию о
городах
struct
nomer
; //
номер записи в файле
char
name
50]; //
название
year
; //
год основания
count
; //
количество жителей
Требуется в выходной файл записать
информацию
о городах
кот
рые
ляются самыми густонаселенными
struct Rec2
har
name
[50]; //
название
year
; //
год основания
count
; //
количество жителей
8.
МАГАЗИН
Входной файл содержит информацию о
товарах
struct
nomer
; //
номер
записи в файле
char
name
[50]; //
название
char
firm
[100]; //
фирма
изготовитель
char
date
[50]; //
дата изготовления
float
price
цена
Требуется в выходной файл записать
сведения
тех
продуктах
, к
торые являются самыми
дорогими
struct
char
name
[50]; //
название
char
firm
[100]
фирма
изготовитель
char
date
[50]; //
дата изготовления
float
price
цена
БИБЛИОТЕКА
Входной файл содержит сведения о книгах
некоторой библиотеки
struct
nomer
; //
номер записи в файле
char
name
[30]; //
фамилия автора
char
nazv[30]; //
название книги
year
; //
год издания
Требуется в выходной файл записать
данные
тех
книгах, которые
явл
ются самыми
старыми
struct Rec2
char
name
[30]; //
фамилия автора
char
nazv
[30]; //
название книги
year
; //
год издания
10.
ОРГАНИЗАЦИЯ
Входной файл содержит информацию о работниках некоторой орг
а−
ции:
struct
nomer
; //
номер записи в файле
char
name
[20]; /
фамилия
year
; //
год рождения
float zarpl; //
заработная плата
Требуется в выходной файл записать
сведения
тех
работниках, к
торые являются самыми молодыми:
struct Rec2
char
name
[20]; /
фамилия
year
; //
год рождения
float zarpl; //
заработная плата
. СТУДЕНТЫ ФАКУЛЬТЕТА
Входной файл содержит информацию о студентах некоторого ф
а−
культета:
struct
nomer
; //
номер за
писи в файле
char
name
[30]; //
фамилия
year
; //
год рождения
char
group
[30]; //
группа
float
sred
; //
средний балл
Требуется в выходной файл записать все сведения о студен
тах из о
ной фиксированной группы:
struct Rec2
char
name
0]; //
фамилия
year
; //
год рождения
float
sred
; //
средний балл
12. СТРАНЫ
Входной файл содержит информацию о
странах
uct
nomer
; //
номер записи в файле
char
name
[50]; //
название
char
language
[50]; //
государственный язык
float
size
; //
площадь
count
; //
количество ж
ителей
Требуется в выходной файл записать
информацию
таких
странах
кот
рые
имеют наибольшую площадь
struct Rec2
char name[50]; //
название
float size; //
площадь
count
; //
количеств
о жителей
13. ПЕРЕВОД ЧИСЕЛ В
ДРУГУЮ СИСТЕМУ СЧИСЛ
Входной файл содержит структуры:
struct
Rec1
long
omer; //
номер записи в файле
long
; //
число в 10
тичной системе
nsigned
char
asis; //
основание новой системы счисления
Во входном файле задана последовательность десятичных чисел.
Получить последовательность тех же чисел, но в системе
счисления, опр
е−
деляемой полем
asis
(значение которого может быть
от 2 до 36), и в
символьном представлении. Допол
нительные цифры отобразить буквами
и т.
Полученные числа записать в выходной файл (FOut) типа:
struct Rec2
long
nomer
;
номер записи в файле
unsigned
cha
asis; //
основание новой системы счисления
char
ez
[256];
// число в соответствующей системе счисления
14. КАТАЛОГ МОНИТОРО
Входной файл содержит сведения о мониторах
LCD
struct
nomer
; //
номер
записи в файле
char
mark
[20]; // производитель
diag
; // диагональ в дюймах
char
matrix
[20];
// тип матрицы
IPS
PLS
и т.д.)
float price; //
цена
Требуется в выходной файл записать
данны
тех
мониторах, кот
рые имеют наибольшую диагональ:
struct
char
mark
[20]; // производитель
diag
; // диагональ в дюймах
char matrix[20];
тип
матрицы
float price; //
цена
15. ИН
ФОРМАЦИЯ О ФАЙЛАХ
Входной файл содержит сведения о некоторых файлах на ПК:
struct
nomer
; //
номер записи в файле
char
fileName
[256]; //
полный путь к файлу
size
; //
размерность файла с и
менем fileName в байтах
Требуется в выходной файл записать
информацию
тех
файлах, к
торые имеют наибольший размер:
struct
char
fileName
[256]; //
полный путь к файлу
size
; //
размерность файла с именем fileNa
me в байтах
Уровень
Разработать программу, основной блок которой в режиме
МЕНЮ
позв
ляет выбрать и запустить рабочие
функции
следующего назначения:
CreateFileIn
char
fileName
создание двоичного файла да
ных,
элементами которого являются записи с
о структурой, указа
ной
индивидуальном
варианте.
Add
FileIn
char
filename
добавление записей
в конец вхо
ного
файла
ReadFileIn
char
fileName
росмотр записей в
о входном
файле
следовательно от первой до последней
CreateFileOut
char
fileName
char
fileName
2)
бработка да
ных из входного файла по заданию
индивидуального
варианта и
вывод результатов в
выходной
файл.
ReadFileOut
char
fileName
росмотр записей в
выходном
ле последовательно от первой до последней
Две функции сортировки,
которые сортируют входной файл по
двум полям (поля выбрать по желанию).
Варианты заданий
САМОЛЕТЫ
Входной файл содержит
информацию о
самолетах
struct
nomer

номер записи в файле
char
name
50];
название с
амолета
year
; // год выпуска
float
weight
// грузоподъемность в тоннах
float
price
; // цена
Требуется в выходной файл записать
данные
тех
самолетах, кот
рые среди самых старых имеют наибольшую
грузоподъемность:
struct
char
name
[50]; //
название самолета
year
; // год выпуска
float
weight
; // грузоподъемность в тоннах
float
price
; // цена
КАТАЛОГ ПРОЦЕССОРОВ
Входн
ой файл содержит
сведения о процессорах
struct
nomer
; //
номер записи в файле
char
mark
[20]; // производитель
char core[20]; //
ядро
процессора
int frequency; //
частота
count

// количество ядер
float
price
; // цена
Требуется в выходной файл записать
данные
тех
процессорах, к
торые среди самых дорогих имеют наибольшую частоту:
struct Rec2
char
mark
[20]; // производитель
char
core
20]; // ядро процессора
int frequency; //
частота
float
price
; // цена
ХАРАКТЕРИСТИКИ
НОУТБУКОВ
Входной файл содержит сведения о
ноутбуках
struct
nomer
; //
номер записи в файле
char
name
[30]; //
производитель
diag
; // диагональ в дюймах
frecuency
; //
тактовая частота
ddr
; //
объем ОП в Мбайт
hdd
; //
объем
или
SSD
Гбайт
float
price
цена
Требуется в выходной файл записать
информацию
тех
ноутбуках
кот
рые
среди самых дорогих имеют наибольшую диагональ
struct Rec2
char name[30]; //
производитель
int diag;

диагональ
дюймах
float
price
цена
4. КАТАЛОГ МОНИТОРОВ
Входной файл содержит сведения о мониторах
LCD
struct
nomer
; //
номер записи в файле
char
mark
[20]; // производитель
diag
; // диагональ в дюймах
char
matrix
[20];
тип
матрицы
float price; //
цена
Требуется в выходной файл записать
информацию
тех
мониторах
кот
рые среди самых дорогих имеют
наименьшую
диагональ
struc
t Rec2
char mark[20];
производитель
int diag;
диагональ
дюймах
char matrix[20];
тип
матрицы
float price; //
цена
ФИНАНСОВЫЕ ДОКУМЕНТЫ БУХГАЛТЕРИИ
Входной файл содержит
инф
ормацию о работниках некоторой орг
а−
ции
struct
nomer

номер записи в файле
char
name
[20]; //
фамилия
year

год рождения
float zarpl;
заработная
плата
Требуется в выходной файл записать
сведения
тех
работниках, к
торые среди самых молодых имеют наибольшую заработную плату:
struct Rec2
char
name
[20]; //
фамилия
year
; //
год рождения
float z
arpl;
заработная
плата
КНИЖНЫЙ МАГАЗИН
Входной файл содержит
информацию о книгах
struct
nomer

номер записи в файле
char
name
[20]; //
фамилия автора
char
naz
v[30];
название книги
year
; //
год издания
float
price
цена
Требуется в выходной файл записать
сведения
тех
книгах, которые
среди самых старых являются самыми дешевыми:
struct Rec2
char
ame
[20]; //
фамилия автора
char
nazv
[30]; //
название книги
int year; //
год
издания
oat price; //
цена
КАТАЛОГ СОТОВЫХ ТЕЛЕФОНОВ
Входной файл содержит информацию о
сотовых т
елефонах
struct
nomer
;
номер записи в файле
char
name
[20]; //
производитель
diag
; // диагональ в дюймах
mem
; // объем памяти
float
price
цена
Требуется в выходной файл записать
информацию
тех
телефонах,
кот
рые среди самых дорогих имеют наибольшую диагональ:
struct Rec2
char name[20]; //
производитель
int diag; //
диагональ
дюймах
float price; //
цена
8. СТУДЕНТЫ ФАКУЛЬТЕТА
Входной файл содержит
информацию о студентах некоторого ф
а−
культета
struct
nomer

номер записи в файле
char
name
[20]; //
фамилия
ear

год рождения
char
group
[20]; //
группа
float
sred
; //
средний балл
Требуется в выходной файл записать
сведения
тех
студентах
кот
рые
среди самых молодых имеют максимальный средний балл
struct Rec2
char
name
[20]; //
фамилия
year
; //
год рождения
char
group
[20]; //
группа
float
sred
; //
средний балл
Лабораторная работа № 12
Линейные списки
Уровень
ебуется
создать линейный список целых чисел
элементами
кот
рого являются
случайные целые числа или вводимые
с клавиатуры
определить его характеристики в соответствии с в
риантом.
Программа должна содерж
ать следующие функции:
оздание списка и заполнени
е его
элементов случайными числ
а−
ми или вводимыми с клавиатуры
ывод
списка
на экран
даление
всего
списка.
Варианты заданий
1. В
линейном списке
целых чисел найти максимум и минимум.
2. Найти количество и сумму тех элементов
линейного списка
, которые
делятся на 5 и не делятся на 7.
3. Найти количество
простых чисел в линейном списке
. Найти количество и сумму
положительных
элементов
линейного спи
, которые делятся на 5.
. Найти количество
составных чисел в линейном списке
Вычислить сумму
только симметричных элементов
линейного списка
Вычислить среднее арифметическое чисел
линейного списка
, соде
жащих только четные цифры.
Найти количество элементов
линейного списка
, больших предыдущего
и меньших последующих.
линейном списке
целых чисел найти
количество минимальных эл
е−
ментов.
Вычислить сумму элементов
линейного списка
являющихся прост
ми числами и
расположенных в интервале (А,
Найти количество элементов
линейного списка
, больших
всех пред
дущих элементов
линейном списке
целых чисел найти
количество максимальных
элементов.
Найти сумму всех двузначных элементов
линейного списка
Найти
количество таких
элементов
линейного списка
, которые
имеют
в младшем разряде цифру 7
Вычислить
сумму
элемент
линейного списка
, содержащих
хотя бы
одну
нечетную цифру
линейном списке
целых чисел найти
количество простых чисел.
линейном списке
целых чисел найти
среднее арифметическое н
е−
четных чисел, делящихся на 5.
Уровень
Имеется текстовый файл
с целыми числами.
Требуется
сначала
все
числа из данного файла
записать в линейный список
Затем найти колич
е−
ство элементов в линейном списке, обладающих свойством
. После чего
лить из списка все элементы, обладающие свойством
. Свойства
указан
ы в индивидуальных
вариантах
. После каждого преобразования л
нейного списка вывести его на экран (после заполнения и после удаления
элементов).
Программа дол
жна содержать следующие функции:
оздание списка и заполнение его
целыми числами из текст
вого
файл
ывод
списка
на экран
оличество элементов списка, обладающих свойством
даление всех элементов списка, обладающих свойством
даление
всего
списка.
Варианты заданий
1.
: число является четным.
: число содержит в своем составе цифр
2 и 3.
число является положительным.
число начинается с цифры 1
число содержит цифру 1.
число является простым.
число не содержит цифру 0.
первая цифра числа совпадает с п
сле
ней
число является нечетным.
число является сост
авным
число является простым.
число содержит в своем составе цифру
число является двузначным.
число не
содержит в своем составе
цифру 7
8.
число является симметричным.
: число
является трехзначным
9.
сумма цифр числа р
авна 10.
: число
является четным
10.
число не содержит четных цифр.
: число
является простым
11.
число является составным.
: число
начинается с 2
12.
число начинается с 3.
число
является составным
13.
число является степенью д
войки.
первая цифра числа является
четной
14.
число содержит хотя бы одну четную цифру.
: число
содержит в
младшем разряде цифру 3
15.
число содержит цифру 3.
число
является составным
16.
число является трехзначным.
число содер
жит в своем составе
цифру 2
17.
число является степенью тройки.
число не содержит в своем с
ставе цифру 5
Уровень
Имеется текстовый файл с целыми числами.
Требуется
сначала все
числа из данного файла
записать в
двусвязный
линейный список
Зате
удалить
из списка
все элементы
, обладаю
щие
свойством
. После чего
продубл
ровать все элементы линейного списка, об
ладающие
свойством
. Наконец, упорядочить все элеме
нты линейного списка, обладающие
свойством
, оставив остальные элементы на своих места
. Свойства
указ
ны в индивидуальных
вариантах
. После каждого преобразования
линейн
го списка вывести его на экран.
Программа дол
жна содержать следующие функции:
оздание списка и заполнение его
целыми числами из текст
вого
файла
ывод
списка
на
экран
даление всех элементов списка, обладающих свойством
ублирование всех элементов списка, обладающих свойством
ортировка всех элементов списка, обладающих свойством
даление всего списка.
Варианты заданий
число является отрицательным
число не содержит четных цифр.
число начинается с цифры 1
С2.
число содержит цифру 1.
число является составным.
число я
ляется простым.
С3.
:
число не содержит цифру 0.
: число
начинается с 2
первая ци
ра числа совпадает с после
ней
С4.
число является нечетным.
число начинается с 3.
число являе
ся с
ставным
С5.
число является простым.
число является степенью двойки.
число с
держит в своем составе цифру 5
С6.
:
число является двузначным.
число является четным
:
число не
держит в своем составе цифру 7
С7.
число является симметричным.
число содержит хотя бы одну
четную цифру.
: число
является трехзначным
С8.
сумма цифр числа равна 10.
: число
содержит в младшем разряде
число являет
ся двузначным.
:
сумма цифр числа является четным числом.
число
является пр
изведением двух различных простых ч
сел
T:
число является простым.
10.
число является квадратом некоторого натурального числа.
с−
является степенью некоторого п
ростого числа
число является с
ставным.
Лабораторная работа № 1
. О
бработка линейных
динамич
ских
структур
Данная лабораторная работа является продолжением лабораторной
работы № 11.
Выполнить тот же вариант
, что и в лабораторной работе
№ 11.
Урове
нь
Требуется создать
двоичный файл
ыгрузить все его содержимое в
лине
ный список
обработать список в соответствии с вариантом
Уровни
Требуется создать
двоичный
файл
Fin
ыгрузить все его содержимое
в л
нейный список
LIn
. Выполнить тот же вар
ант
, что и в лабораторной
раб
№ 11
но
при этом сначала создать результирующий список
LOut
, а
уже после этого информацию из
переместить в
FOut
. Схема данной
лаб
раторной работы такая:
LIn
LOut
FOut
се операции необходимо выполнять
лько
со списком
Lin
, файл
Fin
жен только для хранения информации.
з него
азрешается
только
сч
тать информацию в
Lin
Лабораторная работа № 1
. О
бработка
бинарных
деревьев
Уровень
Имеется текстовый файл
с изображением целых чисел
Требуется
сначала в
се числа из данного файла
записать в двоичное
дерево
Затем о
работать дер
во в соответствии с заданием.
Программа должна содержать следующие функции.
CreateTree
char
fname
ELEMENT
root
построение
дерева из
элеме
тов файла
fname
PrintTree
ELEMENT *
root
вывод
дерева
экран
DestroyTree
ELEMENT **root
удаление
дерева
арианты заданий
1.
Дан текстовый файл с изображениями целых чисел
остроить
из них
сбалансированное дерево. Определить количество элементов в левом по
дереве той вершины, кото
рая является максимальным элементом в дереве.
2.
Дан текстовый файл с изображением целых чисел. Построить
сбала
сир
ванное
дерево. Определить количество элементов на самом нижнем
уровне д
рева.
3.
Дан текстовый файл с изображением целых чисел. Построить
дерево
пои
ка. Определить уровень дерева, на котором все элементы являются
четными. Найти их сумму и количество листьев на этом уровне.
4.
Дан текстовый файл с изображением целых чисел. Построить сбала
сированное дерево, не включая в него повторно встре
ченные элементы.
Определить количество элементов
листьев в левом поддереве вершины,
которая имеет минимальное знач
ние.
5.
Дан текстовый файл с изображением целых чисел. Построить дерево
поиска. Определить количество элементов на самом нижнем уровне дер
Дан текстовый файл с изображением целых чисел. Построить дерево
пои
ка. Удалить из дерева все
вершины
, содержащие простые числа.
7.
Дан текстовый файл с изображением целых чисел. Построить дерево
поиска. Определить уровень, на котором находится наи
большее колич
е−
ство вершин
листьев.
8.
Дан текстовый файл с изображением целых чисел. Построить
сбала
сированное
дерево. Определить количество наиболее часто встречающег
ся элеме
та в дереве.
9.
Дан текстовый файл с изображением целых чисел. Построить сб
ала
сированное дерево. Определить количество простых чисел на самом ни
нем уровне д
рева.
10.
Дан текстовый файл с изображением целых чисел. Построить дерево
поиска. Определить количество вершин в дереве, имеющих
ровно
двух п
томков
11.
Дан текстовый фа
йл с изображением целых чисел. Построить сбала
сированное дерево, не включая в него повторно встреченные элементы.
Определить кол
ичество вершин в дереве, имеющих
только одного пото
Дан текстовый ф
айл с изображениями целых чисел.
остроить сб
а−
ланс
рованное дерево, не включая в него повторно встреченные элементы.
Определить количество элементов в
правом
поддереве той вершины, кот
рая является
минимальным
элементом в дереве.
13. Дан текстовый файл с изображением целых чисел. Построить дерево
поиска.
Определить количество элементов на каждом четном уровне дер
ва.
Дан текстовый файл с изображением целых чисел. Построить дерево
иска
. Определить количество
всех простых
элемент
в дереве
B15
Дан текстовый файл. Построить частотный словарь слов
на основе
дерева поиска.
Частотный словарь (слова которого лексикографически
упорядочены) з
писать в другой текстовый файл.
Уровень
Имеется текстовый файл
с изображением целых чисел
Создать два
бинарных дерева из данных чисел
сбалансированное
дерево
и дерево
поиска
На каждом уровне дерева
найти минимальный из всех эл
е−
ментов, которые обладают свойством
. Также вывести на экран все пути
в дереве
, ведущие
от корня к листьям, содержащие хотя бы один эл
е−
мент, облада
щий
свойством
Программа д
жна содержать следующие функции:
остроение сбалансированного
дерева из чисел файла
остроение дерева поиска из чисел файла
ывод
произвольного бинарного
дерева
экран
ахождение минимальных элементов на каждом уровне и з
пись
их в массив
ывод пут
ей от корня к листьям
отвечающих
заданным услов
даление
произвольного бинарного
дерева
арианты заданий
число является четным.
: число состоит из
попарно
различных
цифр.
число является положительным.
только одна цифра в числе
встр
еч
ется ровно два раза, остальные
не более одного раза
число содержит цифру 1.
: цифры в числе упорядочены по
возра
с−
танию
число не содержит цифру 0.
: число я
вляе
тся симметричными в
двои
ном представлении.
число является нечетным
: число я
вляе
тся
простым и не содержит
в своем составе цифру 5
число является простым.
в числе
хотя бы одна
цифр
а встречается
более одного р
:
число является двузначным.
:
число
состоит только из простых
цифр
число начинае
тся
1.
каждая цифра, входящая в число, встреч
а−
ется ровно два раза
:
сумма цифр числа является четным числом.
число
является пр
изведением двух различных простых ч
сел
10.
число является квадратом некоторого натурального числа.
с−
является степенью н
которого простого числа
Лабораторная работа № 15
Работа с битами памяти
Уровень
Пусть имеется некоторое
элементное множество целых чисел
элементы которого запи
саны в массив
размера
(элементы ма
с−
сива попарно разли
чны).
Требуется в текстовый файл записать построчно
все такие подмн
жества множества
каждое из которых содержит хотя
бы один элемент
, обладающий
свойством
Свойства
указаны в инд
видуальных вар
антах.
Варианты заданий
число состоит из
попарно
различных цифр.
четные
цифры в числе
чередуются с нечетными
цифры в числе упорядочены по
возраст
нию
число я
вляе
тся симметричными в двои
ном представлении.
число я
вляе
тся
простым и не содержит в своем составе цифру 5
в числе
хотя бы одна
цифр
а встречается более одного р
число
состоит только из простых цифр
число
является составным
число
является произведением двух различных простых чисел
10.
число
является степенью некоторого просто
го числа
Литература
Дейтел Х.
М. Как программировать на С / Х.
М. Дейтел, П.
Дж. Де
тел.
: Бином
Пресс, 2009.
910 с.
Искусство программирования на С. Фундаментальные алгоритмы,
структуры данных и п
римеры приложений / Р. Хэзфилд
и др.
:
аСофт, 2001.
736 с.
Керниган Б.
Язык программирования
Си / Б. Керниган, Д. Ритчи.
М. :
Издательский дом
Вильямс
, 2009.
304 с.
Подбельский В.В. Программирование на языке Си / В.
В. Подбел
ский,
С. Фомин.
: Финансы и статистика, 2004.
600 с
Прата С. Язык программирования С
екции и упражнения / С. Прата.
: Издательский дом
Вильямс
, 2006.
960 с.
Рацеев С.
М. Задачи по программировани
ю и основные алгоритмы. Ч. 1, 2
М. Рацеев.
Ульяновск
: УлГУ, 2009.
Рацеев С.
М. Язык Си. Ст
руктуры данных и алгоритмы / С.
М. Рацеев.
Ульяновск
: УлГУ, 2011.
214 с.
Рацеев С.
М. Программирование на языке Си
[Электронный
учебный
курс
/ С.
М. Рацеев.
Ульяновск
: УлГУ
, 2012.
1 CD
№ гос. рег
стра
ции
0321301786.
Скляров В.
А. Программир
ование на языках Си и Си++ / В.
А. Скл
я−
ров.
: Высшая школа, 1999.
288 с.
Угаров В.
В.
Информатика и программирование
/ В.
В. Угаров, Ю.
В.
Цыганова.
Ульяновск
: УлГУ, 2003
62 с.
Шень А. Программирование: теоремы и задачи / А. Шень.
:
МЦНМО
, 2004.
Учебное издание
Сергей Михайлович Рацеев
ЛАБОРАТОРНЫЙ ПРАКТИКУМ
ПО ПРОГРАММИРОВАНИЮ
Директор Издательского центра
Т.В. Филиппова
Редактирование, подготовка оригинал
макета
Е.П. Мамаевой
Оформление обложки
Н.В. Пеньковой
Подписа
но в
печать
. Формат
84/1
Гарнитура
Times
New
Roman
Усл. печ. л.
. Уч.
изд. л.
Тираж
экз
Заказ №
Оригинал
макет подготовлен в Издательском центре
Ульяновского государственного университета
432017, г. Ульяновск, ул. Л. Толсто
Отпечатано с оригинал
макета в Издательском центре
Ульяновского государственного университета
432017, г. Ульяновск, ул. Л. Толстого, 42

Приложенные файлы

  • pdf 1675563
    Размер файла: 731 kB Загрузок: 2

Добавить комментарий