Файл: Лабораторная работа Программирование циклических вычислительных процессов Для функции.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.11.2023

Просмотров: 186

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Варианты заданий
C1. Q: число является четным. T: число состоит из попарно различных цифр.
C2. Q: число является положительным. T: только одна цифра в числе встречается ровно два раза, остальные – не более одного раза.
C3. Q: число содержит цифру 1. T: цифры в числе упорядочены по возрас- танию.
C4. Q: число не содержит цифру 0. T: число является симметричными в двоичном представлении.
C5. Q: число является нечетным. T: число является простым и не содержит в своем составе цифру 5.
C6. Q: число является простым. T: в числе хотя бы одна цифра встречается более одного раза.
C7. Q: число является двузначным. T: число состоит только из простых цифр.
C8. Q: число начинается на 1. T: каждая цифра, входящая в число, встреча- ется ровно два раза.
C9. Q: сумма цифр числа является четным числом. T: число является про- изведением двух различных простых чисел.
C10. Q: число является квадратом некоторого натурального числа. T: число является степенью некоторого простого числа.
35

Лабораторная работа № 7. Обработка текстовых строк
Требуется выделить в строке-предложении s все слова, разделенные символами-разделителями «_.,;:\n\t!?», и обработать выделенные слова в соответствии с вариантом задания.
Определения
Регулярное слово – слово, состоящее только из больших латинских букв.
Палиндром – это слово, которое одинаково читается слева направо и справа налево.
Алфавитный порядок задается таблицей ASCII.
Уровень A
Выделить в строке-предложении s все слова, разделенные символа- ми-разделителями «_.,;:\n\t!?». Обработать выделенные слова в соответ- ствии с вариантом.
Варианты заданий
A1.
Напечатать все слова, начинающиеся на большую и заканчивающиеся на меленькую букву.
A2.
Напечатать все слова, содержащие хотя бы одну цифру.
A3.
Напечатать все слова, содержащие хотя бы одну маленькую латинскую букву.
A4.
Напечатать все слова, содержащие хотя бы одну большую латинскую букву.
A5.
Напечатать все слова, состоящие только из маленьких латинских букв.
A6.
Напечатать все слова, состоящие только из больших латинских букв.
A7.
Напечатать все слова, состоящие только из цифр.
A8.
Напечатать все слова, состоящие не менее чем из четырех букв.
A9.
Напечатать все пятибуквенные слова.
A10.
Напечатать все слова, содержащие буквы и цифры.
A11.
Напечатать все слова, не содержащие ни одной цифры.
36

A12.
Напечатать все слова, не содержащие ни одной большой латинской буквы.
A13.
Напечатать все слова, содержащие хотя бы две цифры.
A14.
Напечатать все слова, содержащие две рядом стоящие буквы.
A15.
Напечатать все слова, содержащие две рядом стоящие цифры.
A16.
Напечатать все слова, состоящие не более чем из пяти букв.
A17.
Напечатать все слова, состоящие только из латинских букв.
Пример программы уровня A. Напечатать все слова, содержащие ровно две маленькие латинские буквы.
#include
#include
#define DELIMITERS " .,:;?!\n\t"
#define N 1024
/* количество маленьких латинских букв в строке (слове) s */ 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++)
;
37

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;
}
Уровень B
Выделить в строке-предложении s все слова, разделенные символа- ми-разделителями «_.,;:\n\t!?». Обработать выделенные слова в соответ- ствии с вариантом задания. Крайне не рекомендуется использование функции strtok() из библиотеки .
1   2   3   4   5   6

Варианты заданий
B1.
Подсчитать количество слов, начинающихся на большую букву и со- держащих хотя бы один арифметический знак. Напечатать все слова, со- держащие две рядом стоящие одинаковые буквы.
B2.
Подсчитать количество регулярных слов. Напечатать в перевернутом виде все слова, которые содержат два экземпляра заданного символа.
B3.
Напечатать все слова, начинающиеся с большой буквы. Напечатать са- мое длинное регулярное слово, которое состоит из одинаковых символов.
B4.
Напечатать слово, содержащее наибольшее количество цифр. Напеча- тать количество слов, содержащих хотя бы два арифметических знака.
B5.
Напечатать все регулярные слова. Напечатать в перевернутом виде са- мое длинное слово, состоящее только из цифр и латинских букв.
38

B6.
Найти количество слов, содержащих более одной цифры, и, исключив все арифметические знаки из этих слов, напечатать их. Напечатать в по- рядке возрастания все числа, встретившиеся в словах.
B7.
Определить количество слов, которые содержат заданное подслово и хотя бы одну цифру, и напечатать их. Напечатать в порядке убывания все числа, встретившиеся в словах.
B8.
Определить количество слов, содержащих и буквы, и цифры, и ариф- метические знаки. Напечатать их. Напечатать все симметричные слова, со- держащие наибольшее количество цифр.
B9.
Подсчитать количество регулярных слов, содержащих хотя бы две одинаковые буквы. Напечатать все слова, имеющие одну цифру, удалив из таких слов все арифметические знаки.
B10.
Найти самое длинное регулярное слово и удалить из него все гласные буквы. Найти все слова, в которых имеются либо только цифры, либо только латинские буквы.
B11.
Подсчитать количество слов, состоящих из одинаковых букв или одинаковых цифр. Напечатать в перевернутом виде слова, имеющие хотя бы один арифметический знак.
B12.
Напечатать все слова, которые начинаются с большой буквы и закан- чиваются заданным двухбуквенным подсловом. Определить количество слов, содержащих согласные латинские буквы, и напечатать порядковые номера этих слов.
B13.
Напечатать все слова, имеющие в своем составе согласные латинские буквы. Определить количество слов, которые не имеют в своем составе ни одной цифры, и напечатать эти слова.
B14.
Напечатать все симметричные слова, предварительно удалив из них цифры. Напечатать все слова, состоящие только из согласных латинских букв.
B15.
Найти все слова, содержащие числа в диапазоне от 10 до 100, и под- считать их сумму. Напечатать слова, не имеющие цифр, предварительно удалив арифметические знаки.
39


B16.
Подсчитать количество слов, начинающихся с большой буквы и оканчивающихся цифрой. Напечатать слова, содержащие заданное под- слово и хотя бы один арифметический знак.
B17.
Подсчитать количество слов, содержащих хотя бы одну согласную латинскую букву и хотя бы одну цифру. Напечатать все слова, состоящие только из четных цифр, и подсчитать сумму этих цифр.
B18.
Напечатать все слова, которые содержат хотя бы один арифметиче- ский знак и заканчиваются на цифру. Определить количество слов, содер- жащих все маленькие латинские гласные буквы.
B19.
Найти количество симметричных регулярных слов и напечатать их.
Напечатать в перевернутом виде все слова, содержащие согласные латин- ские буквы.
B20.
Найти и напечатать все слова, содержащие наибольшее количество букв, если только буквы расположены в алфавитном порядке. Подсчитать количество симметричных слов, имеющих более двух арифметических знаков.
Уровень C
Выделить в строке-предложении s все слова, разделенные символа- ми-разделителями «_.,;:\n\t!?». Найти количество всех слов в строке- предложении, которые обладают свойством Q. Вывести все слова исход- ной строки-предложения в лексикографическом порядке. Записать в стро- ку t любое из слов максимальной длины строки s. Удалить из строки t все символы, обладающие свойством T. Запрещается использование функции strtok() из библиотеки .
Программа должна содержать следующие функции:
• сортировка слов (указателей);
• удаление символов строки, обладающих свойством T.
Варианты заданий
C1. Q: в слове нет повторяющихся символов. Т: символ является малень- кой гласной латинской буквой.
C2
. Q: в слове все символы встречаются более одного раза. Т: символ явля- ется большой гласной латинской буквой.
40

C3. Q: в слове хотя бы один символ встречается более одного раза. Т: сим- вол является маленькой согласной латинской буквой.
C4. Q: в слове только один символ встречается более одного раза. Т: сим- вол является большой согласной латинской буквой.
C5. Q: в слове латинские буквы чередуются с символами (например,
«a2b5s»)
. Т: символ является цифрой.
C6
. Q: в слове гласные латинские буквы чередуются с согласными. Т: сим- вол является арифметическим знаком.
C7
. Q: в слове строчные латинские буквы чередуются с прописными.
Т: символ является простой цифрой.
C8
. Q: в слове буквы располагаются по возрастанию и не повторяются.
Т: символ является маленькой согласной латинской буквой.
C9
. Q: в слове гласные латинские буквы чередуются с цифрами. Т: символ является маленькой гласной латинской буквой.
C10
. Q: в слове согласные латинские буквы чередуются с четными цифра- ми. Т: символ является большой согласной латинской буквой.
41


Лабораторная работа № 8. Обработка и модификация
двумерных массивов
Уровень A
Требуется определить двумерный массив a целых чисел (например, размера 5×7), заполнить его случайными числами или ввести его элементы с клавиатуры и в одномерный массив b записать характеристики двумер- ного массива a в соответствии с вариантом задания.
Программа должна содержать следующие функции:
• инициализация элементов двумерного массива случайными чис- лами или вводимыми с клавиатуры;
• заполнение одномерного массива в соответствии с заданием;
• вывод одномерного массива на экран;
• вывод двумерного массива на экран.
Варианты заданий
A1.
Найти суммы четных положительных элементов каждой строки мат- рицы a(5, 7) и сохранить их в одномерном массиве b.
A2.
Найти количество четных положительных элементов каждой строки матрицы a(5, 7) и сохранить их в одномерном массиве b.
A3.
Найти суммы нечетных положительных элементов каждого столбца матрицы a(5, 7) и сохранить их в одномерном массиве b.
A4.
Найти количество нечетных положительных элементов каждого столбца матрицы a(5, 7) и сохранить их в одномерном массиве b.
A5.
Найти суммы положительных элементов, делящихся на 3, каждой строки матрицы a(5, 7) и сохранить их в одномерном массиве b.
A6.
Найти количество положительных элементов, делящихся на 5, каждой строки матрицы a(5, 7) и сохранить их в одномерном массиве b.
A7.
Найти суммы положительных элементов, не делящихся на 3, каждого столбца матрицы a(5, 7) и сохранить их в одномерном массиве b.
A8.
Найти количество положительных элементов, не делящихся на 5, каж- дого столбца матрицы a(5, 7) и сохранить их в одномерном массиве b.
42

A9.
Найти минимальные элементы каждой строки матрицы a(5, 7) и сохра- нить их в одномерном массиве b.
A10.
Найти минимальные элементы каждого столбца матрицы a(5, 7) и со- хранить их в одномерном массиве b.
A11.
Найти количество двузначных элементов каждой строки матрицы
a(5,
7) и сохранить их в одномерном массиве b.
A12.
Найти максимальные элементы каждой строки матрицы a(5, 7) и со- хранить их в одномерном массиве b.
A13.
Найти максимальные элементы каждого столбца матрицы a(5, 7) и сохранить их в одномерном массиве b.
A14.
Найти суммы двузначных элементов каждого столбца матрицы a(5, 7) и сохранить их в одномерном массиве b.
A15.
Найти количество минимальных элементов каждой строки матрицы
a(5,
7) и сохранить их в одномерном массиве b.
A16.
Найти количество максимальных элементов каждого столбца матри- цы a(5, 7) и сохранить их в одномерном массиве b.
A17.
Найти количество простых чисел каждой строки матрицы a(5, 7) и сохранить их в одномерном массиве b.
Пример программы уровня A. Найти количество положительных элементов, заканчивающихся на 1, каждой строки матрицы a(5, 7) и сохра- нить их в одномерном массиве b.
#include
#include
#include
#define M 5
#define N 7
#define A -50
#define B 50
/* инициализация элементов матрицы a случайными числами в диапазоне от A до B */ void InitA(int a[][N], int m, int n)
43