Файл: Лабораторная работа Программирование циклических вычислительных процессов Для функции.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.11.2023
Просмотров: 187
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
B5
. СТУДЕНТЫ ФАКУЛЬТЕТА
Входной файл содержит информацию о студентах некоторого фа- культета: struct Rec1
{ long nomer; // номер записи в файле char name[30]; // фамилия int year; // год рождения char group[30]; // группа float sred; // средний балл
};
Требуется в выходной файл записать информацию о студентах, кото- рые принадлежат какой-то одной конкретной группе, причем записи долж- ны быть отсортированы в алфавитном порядке относительно фамилий: struct Rec2
{ long nomer; // номер записи в файле char name[20]; // фамилия int year; // год рождения float sred; // средний балл
};
B
6. РАБОТА С ФАЙЛАМИ
Во входном файле задана последовательность записей, которые со- держат полный путь к тому или иному файлу на жестком диске: struct Rec1
{ long nomer; // номер записи в файле char fileName[256]; // полный путь к файлу
};
Требуется из полного имени файла fileName выделить только имя файла и записать его в переменную name. При считывании очередной за- писи из входного файла требуется проверить, имеется ли файл с именем fileName на жестком диске. Если такой файл имеется, то в переменную flag записать 1, иначе 0. Также в переменную size записать размерность файла
70
(в байтах); если же такого файла нет, то в переменную size записать -1.
Компоненты выходного файла имеют такой вид: struct Rec2
{ long nomer; // номер записи в файле char fileName[256]; // полный путь к файлу char name[256]; // имя файла без учета каталогов int flag; // наличие файла с именем fileName на жестком диске long size; // размерность файла с именем fileName в байтах
};
B
7. ГОРОДА
Входной файл содержит информацию о городах: struct Rec1
{ long nomer; // номер записи в файле char name[50]; // название int year; // год основания long count; // количество жителей
};
Требуется в выходной файл записать информацию о городах, кото- рые являются самыми густонаселенными: struct Rec2
{ char name[50]; // название int year; // год основания long count; // количество жителей
};
B8.
МАГАЗИН
Входной файл содержит информацию о товарах: struct Rec1
{ long nomer; // номер записи в файле
71
char name[50]; // название char firm[100]; // фирма-изготовитель char date[50]; // дата изготовления float price; // цена
};
Требуется в выходной файл записать сведения о тех продуктах, ко- торые являются самыми дорогими: struct Rec2
{ char name[50]; // название char firm[100]; // фирма-изготовитель char date[50]; // дата изготовления float price; // цена
};
B9.
БИБЛИОТЕКА
Входной файл содержит сведения о книгах некоторой библиотеки: struct Rec1
{ int nomer; // номер записи в файле char name[30]; // фамилия автора char nazv[30]; // название книги int year; // год издания
};
Требуется в выходной файл записать данные о тех книгах, которые являются самыми старыми: struct Rec2
{ char name[30]; // фамилия автора char nazv[30]; // название книги int year; // год издания
};
72
};
Требуется в выходной файл записать сведения о тех продуктах, ко- торые являются самыми дорогими: struct Rec2
{ char name[50]; // название char firm[100]; // фирма-изготовитель char date[50]; // дата изготовления float price; // цена
};
B9.
БИБЛИОТЕКА
Входной файл содержит сведения о книгах некоторой библиотеки: struct Rec1
{ int nomer; // номер записи в файле char name[30]; // фамилия автора char nazv[30]; // название книги int year; // год издания
};
Требуется в выходной файл записать данные о тех книгах, которые являются самыми старыми: struct Rec2
{ char name[30]; // фамилия автора char nazv[30]; // название книги int year; // год издания
};
72
B10.
ОРГАНИЗАЦИЯ
Входной файл содержит информацию о работниках некоторой орга- низации: struct Rec1
{ long nomer; // номер записи в файле char name[20]; // фамилия int year; // год рождения float zarpl; // заработная плата
};
Требуется в выходной файл записать сведения о тех работниках, ко- торые являются самыми молодыми: struct Rec2
{ char name[20]; // фамилия int year; // год рождения float zarpl; // заработная плата
};
B11
. СТУДЕНТЫ ФАКУЛЬТЕТА
Входной файл содержит информацию о студентах некоторого фа- культета: struct Rec1
{ long nomer; // номер записи в файле char name[30]; // фамилия int year; // год рождения char group[30]; // группа float sred; // средний балл
};
Требуется в выходной файл записать все сведения о студентах из од- ной фиксированной группы: struct Rec2
{ char name[30]; // фамилия
73
int year; // год рождения float sred; // средний балл
};
B
12. СТРАНЫ
Входной файл содержит информацию о странах: struct Rec1
{ long nomer; // номер записи в файле char name[50]; // название char language[50]; // государственный язык float size; // площадь long count; // количество жителей
};
Требуется в выходной файл записать информацию о таких странах, которые имеют наибольшую площадь: struct Rec2
{ char name[50]; // название float size; // площадь long count; // количество жителей
};
B
13. ПЕРЕВОД ЧИСЕЛ В ДРУГУЮ СИСТЕМУ СЧИСЛЕНИЯ
Входной файл содержит структуры: struct Rec1
{ long nomer; // номер записи в файле long a; // число в 10-тичной системе unsigned char basis; // основание новой системы счисления
};
Во входном файле задана последовательность десятичных чисел.
Получить последовательность тех же чисел, но в системе счисления, опре- деляемой полем «basis» (значение которого может быть от 2 до 36), и в
74
};
B
12. СТРАНЫ
Входной файл содержит информацию о странах: struct Rec1
{ long nomer; // номер записи в файле char name[50]; // название char language[50]; // государственный язык float size; // площадь long count; // количество жителей
};
Требуется в выходной файл записать информацию о таких странах, которые имеют наибольшую площадь: struct Rec2
{ char name[50]; // название float size; // площадь long count; // количество жителей
};
B
13. ПЕРЕВОД ЧИСЕЛ В ДРУГУЮ СИСТЕМУ СЧИСЛЕНИЯ
Входной файл содержит структуры: struct Rec1
{ long nomer; // номер записи в файле long a; // число в 10-тичной системе unsigned char basis; // основание новой системы счисления
};
Во входном файле задана последовательность десятичных чисел.
Получить последовательность тех же чисел, но в системе счисления, опре- деляемой полем «basis» (значение которого может быть от 2 до 36), и в
74
символьном представлении. Дополнительные цифры отобразить буквами
«A», «B», «C», «D» и т. д.
Полученные числа записать в выходной файл (FOut) типа: struct Rec2
{ long nomer; // номер записи в файле unsigned char basis; // основание новой системы счисления char rez[256];
// число в соответствующей системе счисления
};
B
14. КАТАЛОГ МОНИТОРОВ
Входной файл содержит сведения о мониторах LCD: struct Rec1
{ int nomer; // номер записи в файле char mark
[20]; // производитель int diag
; // диагональ в дюймах char matrix[20];
// тип матрицы (TN, IPS, PLS и т.д.) float price; // цена
};
Требуется в выходной файл записать данные о тех мониторах, кото- рые имеют наибольшую диагональ: struct Rec2
{ char mark
[20]; // производитель int diag
; // диагональ в дюймах char matrix[20]; // тип матрицы float price; // цена
};
B
15. ИНФОРМАЦИЯ О ФАЙЛАХ
Входной файл содержит сведения о некоторых файлах на ПК: struct Rec1
{ long nomer; // номер записи в файле
75
«A», «B», «C», «D» и т. д.
Полученные числа записать в выходной файл (FOut) типа: struct Rec2
{ long nomer; // номер записи в файле unsigned char basis; // основание новой системы счисления char rez[256];
// число в соответствующей системе счисления
};
B
14. КАТАЛОГ МОНИТОРОВ
Входной файл содержит сведения о мониторах LCD: struct Rec1
{ int nomer; // номер записи в файле char mark
[20]; // производитель int diag
; // диагональ в дюймах char matrix[20];
// тип матрицы (TN, IPS, PLS и т.д.) float price; // цена
};
Требуется в выходной файл записать данные о тех мониторах, кото- рые имеют наибольшую диагональ: struct Rec2
{ char mark
[20]; // производитель int diag
; // диагональ в дюймах char matrix[20]; // тип матрицы float price; // цена
};
B
15. ИНФОРМАЦИЯ О ФАЙЛАХ
Входной файл содержит сведения о некоторых файлах на ПК: struct Rec1
{ long nomer; // номер записи в файле
75
char fileName[256]; // полный путь к файлу long size; // размерность файла с именем fileName в байтах
};
Требуется в выходной файл записать информацию о тех файлах, ко- торые имеют наибольший размер: struct Rec2
{ char fileName[256]; // полный путь к файлу long size; // размерность файла с именем fileName в байтах
};
Уровень C
Разработать программу, основной блок которой в режиме «МЕНЮ» позволяет выбрать и запустить рабочие функции следующего назначения:
• CreateFileIn(char *fileName) – создание двоичного файла данных, элементами которого являются записи со структурой, указанной в индивидуальном варианте.
• AddFileIn (char *filename) – добавление записей в конец входного файла.
• ReadFileIn(char *fileName) – просмотр записей во входном файле последовательно от первой до последней.
• CreateFileOut(char *fileName1, char *fileName2) – обработка дан- ных из входного файла по заданию индивидуального варианта и вывод результатов в выходной файл.
• ReadFileOut(char *fileName) – просмотр записей в выходном фай- ле последовательно от первой до последней.
•
Две функции сортировки, которые сортируют входной файл по двум полям (поля выбрать по желанию).
Варианты заданий
C1.
САМОЛЕТЫ
Входной файл содержит информацию о самолетах: struct Rec1
{ int nomer; // номер записи в файле
76
};
Требуется в выходной файл записать информацию о тех файлах, ко- торые имеют наибольший размер: struct Rec2
{ char fileName[256]; // полный путь к файлу long size; // размерность файла с именем fileName в байтах
};
Уровень C
Разработать программу, основной блок которой в режиме «МЕНЮ» позволяет выбрать и запустить рабочие функции следующего назначения:
• CreateFileIn(char *fileName) – создание двоичного файла данных, элементами которого являются записи со структурой, указанной в индивидуальном варианте.
• AddFileIn (char *filename) – добавление записей в конец входного файла.
• ReadFileIn(char *fileName) – просмотр записей во входном файле последовательно от первой до последней.
• CreateFileOut(char *fileName1, char *fileName2) – обработка дан- ных из входного файла по заданию индивидуального варианта и вывод результатов в выходной файл.
• ReadFileOut(char *fileName) – просмотр записей в выходном фай- ле последовательно от первой до последней.
•
Две функции сортировки, которые сортируют входной файл по двум полям (поля выбрать по желанию).
Варианты заданий
C1.
САМОЛЕТЫ
Входной файл содержит информацию о самолетах: struct Rec1
{ int nomer; // номер записи в файле
76
char name[50]; // название самолета int year
; // год выпуска float weight;
// грузоподъемность в тоннах float price
; // цена
};
Требуется в выходной файл записать данные о тех самолетах, кото- рые среди самых старых имеют наибольшую грузоподъемность: struct Rec2
{ char name[50]; // название самолета int year
; // год выпуска float weight
; // грузоподъемность в тоннах float price
; // цена
};
C2.
КАТАЛОГ ПРОЦЕССОРОВ
Входной файл содержит сведения о процессорах: struct Rec1
{ int nomer; // номер записи в файле char mark
[20]; // производитель char core[20]; // ядро процессора int frequency; // частота int count;
// количество ядер float price
; // цена
};
Требуется в выходной файл записать данные о тех процессорах, ко- торые среди самых дорогих имеют наибольшую частоту: struct Rec2
{ char mark
[20]; // производитель char core[
20]; // ядро процессора int frequency; // частота float price
; // цена
};
77
; // год выпуска float weight;
// грузоподъемность в тоннах float price
; // цена
};
Требуется в выходной файл записать данные о тех самолетах, кото- рые среди самых старых имеют наибольшую грузоподъемность: struct Rec2
{ char name[50]; // название самолета int year
; // год выпуска float weight
; // грузоподъемность в тоннах float price
; // цена
};
C2.
КАТАЛОГ ПРОЦЕССОРОВ
Входной файл содержит сведения о процессорах: struct Rec1
{ int nomer; // номер записи в файле char mark
[20]; // производитель char core[20]; // ядро процессора int frequency; // частота int count;
// количество ядер float price
; // цена
};
Требуется в выходной файл записать данные о тех процессорах, ко- торые среди самых дорогих имеют наибольшую частоту: struct Rec2
{ char mark
[20]; // производитель char core[
20]; // ядро процессора int frequency; // частота float price
; // цена
};
77
C3.
ХАРАКТЕРИСТИКИ НОУТБУКОВ
Входной файл содержит сведения о ноутбуках: struct Rec1
{ int nomer; // номер записи в файле char name[30]; // производитель int diag
; // диагональ в дюймах int frecuency; // тактовая частота int ddr; // объем ОП в Мбайт int hdd; // объем HDD или SSD в Гбайт float price; // цена
};
Требуется в выходной файл записать информацию о тех ноутбуках, которые среди самых дорогих имеют наибольшую диагональ: struct Rec2
{ char name[30]; // производитель int diag; // диагональ в дюймах float price; // цена
};
C
4. КАТАЛОГ МОНИТОРОВ
Входной файл содержит сведения о мониторах LCD: struct Rec1
{ int nomer; // номер записи в файле char mark
[20]; // производитель int diag
; // диагональ в дюймах char matrix[20]; // тип матрицы float price; // цена
};
Требуется в выходной файл записать информацию о тех мониторах, которые среди самых дорогих имеют наименьшую диагональ: struct Rec2
{ char mark[20]; // производитель
78
int diag; // диагональ в дюймах char matrix[20]; // тип матрицы float price; // цена
};
C5.
ФИНАНСОВЫЕ ДОКУМЕНТЫ БУХГАЛТЕРИИ
Входной файл содержит информацию о работниках некоторой орга- низации: struct Rec1
{ long nomer; // номер записи в файле char name[20]; // фамилия int year; // год рождения float zarpl; // заработная плата
};
Требуется в выходной файл записать сведения о тех работниках, ко- торые среди самых молодых имеют наибольшую заработную плату: struct Rec2
{ char name[20]; // фамилия int year; // год рождения float zarpl; // заработная плата
};
C6.
КНИЖНЫЙ МАГАЗИН
Входной файл содержит информацию о книгах: struct Rec1
{ int nomer; // номер записи в файле char name[20]; // фамилия автора char nazv[30]; // название книги int year; // год издания float price; // цена
};
79
};
C5.
ФИНАНСОВЫЕ ДОКУМЕНТЫ БУХГАЛТЕРИИ
Входной файл содержит информацию о работниках некоторой орга- низации: struct Rec1
{ long nomer; // номер записи в файле char name[20]; // фамилия int year; // год рождения float zarpl; // заработная плата
};
Требуется в выходной файл записать сведения о тех работниках, ко- торые среди самых молодых имеют наибольшую заработную плату: struct Rec2
{ char name[20]; // фамилия int year; // год рождения float zarpl; // заработная плата
};
C6.
КНИЖНЫЙ МАГАЗИН
Входной файл содержит информацию о книгах: struct Rec1
{ int nomer; // номер записи в файле char name[20]; // фамилия автора char nazv[30]; // название книги int year; // год издания float price; // цена
};
79
Требуется в выходной файл записать сведения о тех книгах, которые среди самых старых являются самыми дешевыми: struct Rec2
{ char name[20]; // фамилия автора char nazv[30]; // название книги int year; // год издания float price; // цена
};
C7.
КАТАЛОГ СОТОВЫХ ТЕЛЕФОНОВ
Входной файл содержит информацию о сотовых телефонах: struct Rec1
{ long nomer; // номер записи в файле char name[20]; // производитель int diag
; // диагональ в дюймах int mem
; // объем памяти float price; // цена
};
Требуется в выходной файл записать информацию о тех телефонах, которые среди самых дорогих имеют наибольшую диагональ: struct Rec2
{ char name[20]; // производитель int diag; // диагональ в дюймах float price; // цена
};
C
8. СТУДЕНТЫ ФАКУЛЬТЕТА
Входной файл содержит информацию о студентах некоторого фа- культета: struct Rec1
{ long nomer; // номер записи в файле
80
char name[20]; // фамилия int year; // год рождения char group[20]; // группа float sred; // средний балл
};
Требуется в выходной файл записать сведения о тех студентах, кото- рые среди самых молодых имеют максимальный средний балл: struct Rec2
{ char name[20]; // фамилия int year; // год рождения char group[20]; // группа float sred; // средний балл
};
81
};
Требуется в выходной файл записать сведения о тех студентах, кото- рые среди самых молодых имеют максимальный средний балл: struct Rec2
{ char name[20]; // фамилия int year; // год рождения char group[20]; // группа float sred; // средний балл
};
81
Лабораторная работа № 12. Линейные списки
Уровень A
Требуется создать линейный список целых чисел, элементами кото- рого являются случайные целые числа или вводимые с клавиатуры, и определить его характеристики в соответствии с вариантом.
Программа должна содержать следующие функции:
• создание списка и заполнение его элементов случайными числа- ми или вводимыми с клавиатуры;
• вывод списка на экран;
• удаление всего списка.
Варианты заданий
A
1. В линейном списке целых чисел найти максимум и минимум.
A
2. Найти количество и сумму тех элементов линейного списка, которые делятся на 5 и не делятся на 7.
A
3. Найти количество простых чисел в линейном списке.
A4
. Найти количество и сумму положительных элементов линейного спис- ка, которые делятся на 5.
A5
. Найти количество составных чисел в линейном списке.
A6.
Вычислить сумму только симметричных элементов линейного списка.
A7.
Вычислить среднее арифметическое чисел линейного списка, содер- жащих только четные цифры.
A8.
Найти количество элементов линейного списка, больших предыдущего и меньших последующих.
A9.
В линейном списке целых чисел найти количество минимальных эле- ментов.
A10.
Вычислить сумму элементов линейного списка, являющихся просты- ми числами и расположенных в интервале (А, В).
A11.
Найти количество элементов линейного списка, больших всех преды- дущих элементов.
82
A12.
В линейном списке целых чисел найти количество максимальных элементов.
A13.
Найти сумму всех двузначных элементов линейного списка.
A14.
Найти количество таких элементов линейного списка, которые имеют в младшем разряде цифру 7.
A15.
Вычислить сумму элементов линейного списка, содержащих хотя бы одну нечетную цифру.
A16.
В линейном списке целых чисел найти количество простых чисел.
A17.
В линейном списке целых чисел найти среднее арифметическое не- четных чисел, делящихся на 5.
Уровень B
Имеется текстовый файл с целыми числами. Требуется сначала все числа из данного файла записать в линейный список. Затем найти количе- ство элементов в линейном списке, обладающих свойством Q. После чего удалить из списка все элементы, обладающие свойством T. Свойства Q и T указаны в индивидуальных вариантах. После каждого преобразования ли- нейного списка вывести его на экран (после заполнения и после удаления элементов).
Программа должна содержать следующие функции:
• создание списка и заполнение его целыми числами из текстового файла;
• вывод списка на экран;
• количество элементов списка, обладающих свойством Q;
• удаление всех элементов списка, обладающих свойством T;
• удаление всего списка.
Варианты заданий
B1. Q
: число является четным. T: число содержит в своем составе цифры
2 и 3.
B2. Q: число является положительным. T: число начинается с цифры 1.
B3. Q: число содержит цифру 1. T: число является простым.
83
B4. Q: число не содержит цифру 0. T: первая цифра числа совпадает с по- следней.
B5. Q: число является нечетным. T: число является составным.
B6. Q: число является простым. T: число содержит в своем составе цифру
5.
B7. Q: число является двузначным. T: число не содержит в своем составе цифру 7.
B8. Q: число является симметричным. T: число является трехзначным.
B9. Q: сумма цифр числа равна 10. T: число является четным.
B10. Q: число не содержит четных цифр. T: число является простым.
B11. Q: число является составным. T: число начинается с 2.
B12. Q: число начинается с 3. T: число является составным.
B13. Q: число является степенью двойки. T: первая цифра числа является нечетной.
B14. Q: число содержит хотя бы одну четную цифру. T: число содержит в младшем разряде цифру 3.
B15. Q: число содержит цифру 3. T: число является составным.
B16. Q: число является трехзначным. T: число содержит в своем составе цифру 2.
B17. Q: число является степенью тройки. T: число не содержит в своем со- ставе цифру 5.
1 2 3 4 5 6