Файл: Лабораторная работа Программирование циклических вычислительных процессов Для функции.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.11.2023
Просмотров: 188
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
{ if (Check(a, 5)) count++; printf("a = "); scanf("%d", &a);
} printf("count = %d\n", count); return 0;
}
Уровень B
Варианты заданий
B1.
Найти значения и порядковые номера элементов, являющихся наименьшим среди четных чисел и наибольшим среди нечетных чисел.
B2.
Найти порядковый номер наибольшего по значению числа, являюще- гося симметричным в десятичном представлении.
B3.
Вычислить количество всех четных цифр во всех нечетных элементах последовательности.
B4.
Найти значение наибольшего элемента и его порядковый номер среди всех элементов, имеющих в своем составе цифру 3.
B5.
Найти количество чисел, которые не превосходят числа A и являются полными квадратами некоторого натурального числа.
B6.
Найти количество таких элементов, которые делятся на одну из своих цифр.
B7.
Найти количество таких элементов, сумма цифр в которых есть про- стое число.
B8.
Найти количество таких элементов, в которых чередуются четные и нечетные цифры.
B9.
Найти количество таких элементов, которые состоят из двух равных частей и имеют в своем составе цифру 3.
B10.
Найти в последовательности минимальное число, имеющее наиболь- шее количество цифр.
B11.
Найти такие элементы (а также их сумму), цифры в которых не пре- восходят заданного числа М (0
B12.
Найти такие элементы (а также их сумму), которые состоят только из четных цифр.
B13.
Найти в последовательности число, имеющее в своем составе наибольшее количество четных цифр.
B14.
Найти порядковый номер наибольшего по значению числа, являюще- гося симметричным в двоичном представлении.
B15.
Найти сумму элементов последовательности, которые являются пол- ными кубами некоторого натурального числа.
B16.
Найти сумму таких элементов последовательности, которые делятся на сумму своих цифр.
B
17. Вычислить общую сумму всех нечетных цифр во всех четных элементах.
Уровень C
В последовательности целых чисел найти максимальное количество чисел, идущих подряд, которые обладают свойством Q, и максимальное количество чисел, идущих подряд, которые не обладают свойством Q.
Свойство Q задается в варианте. Программа должна содержать логическую функцию, проверяющую, обладает ли заданное число свойством Q.
Варианты заданий
C1. Q: число является простым.
C2. Q: число является симметричным в двоичном представлении.
C3. Q: число делится на одну из своих цифр.
C4. Q: число является полным квадратом некоторого натурального числа.
C5. Q: в числе чередуются четные и нечетные цифры.
C6. Q: число является симметричным в десятичном представлении.
C7. Q
: число состоит из двух равных частей и имеет в своем составе цифру 1.
C8. Q: число состоит из попарно различных цифр.
C9. Q: цифры в числе образуют неубывающую последовательность.
C10. Q: сумма цифр числа является простым числом.
23
Лабораторная работа № 5. Определение характеристик
одномерных массивов
Уровень A
Требуется определить массив целых чисел (например, размера 30), заполнить его случайными числами (в диапазоне от A до B, где A и B за- даются в директивах #define) или ввести его элементы с клавиатуры и определить его характеристики в соответствии с вариантом.
Программа должна содержать следующие функции:
• инициализация элементов массива случайными числами или вво- димыми с клавиатуры;
• вывод массива на экран.
Варианты заданий
A
1. В массиве целых чисел найти сумму элементов, расположенных между первым четным элементом и последним нечетным элементом массива.
A
2. Найти количество и сумму тех элементов массива, которые делятся на
5 и не делятся на 7. Вывести все содержащиеся в данном массиве четные числа в порядке убывания их индексов, а также их количество.
A
3. Найти количество тех элементов массива, которые больше своего ле- вого соседа и меньше своего правого соседа. Вывести на экран номера ми- нимальных элементов.
A4
. Найти количество тех элементов массива, которые больше своего ле- вого соседа. Найти количество и сумму положительных элементов масси- ва, которые делятся на 3.
A5.
Найти максимальный и минимальный элементы и номер элемента, наиболее близкого к среднему арифметическому минимального и макси- мального элементов.
A6.
Вычислить сумму только симметричных элементов массива.
A7.
Вычислить среднее арифметическое чисел, содержащих только четные цифры.
24
A8.
Найти количество элементов, больших всех предыдущих и меньших всех последующих.
A9.
В массиве целых чисел найти количество минимальных элементов.
A10.
Вычислить сумму элементов массива, являющихся простыми числа- ми и расположенных в интервале (L, R).
A
11. Найти количество элементов, больших всех предыдущих элемен- тов.
A12.
В массиве целых чисел найти количество максимальных элементов.
A13.
Найти сумму всех двузначных нечетных элементов целочисленного массива.
A14.
Найти количество таких элементов целочисленного массива, которые имеют в младшем разряде цифру 7.
A15.
Найти сумму элементов массива, меньших всех последующих эле- ментов.
A16.
Вычислить сумму элементов массива, содержащих хотя бы одну не- четную цифру.
A17.
В массиве целых чисел найти количество простых чисел.
Пример программы уровня A. Найти количество всех положитель- ных элементов целочисленного массива, сумма цифр которых больше 10.
#include
#include
#include
#define N 10
#define A -50
#define B 50
/* инициализация элементов массива a случайными числами в диапазоне от A до B */ void Init(int *a, int n)
{ int i; for(i = 0; i < n; i++)
25
a[i] = A + rand() % (B - A + 1);
}
/* вывод массива на экран */ void Print(int *a, int n)
{ int i; 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;
}
26
}
/* вывод массива на экран */ void Print(int *a, int n)
{ int i; 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;
}
26
Уровень B
Требуется определить массив целых чисел (например, размера 30), заполнить его случайными числами (в диапазоне от A до B, где A и B за- даются в директивах #define) или ввести его элементы с клавиатуры и определить его характеристики в соответствии с вариантом.
Программа должна содержать следующие функции:
• инициализация элементов массива случайными числами или вво- димыми с клавиатуры;
• вывод массива на экран.
Варианты заданий
B1.
Найти порядковые номера и сумму двух попарно различных наиболь- ших элементов.
B2.
Найти наибольшее количество одинаковых элементов.
B3.
Вычислить максимальное число подряд идущих положительных чисел, не превышающих числа M и имеющих в своем составе цифру 5.
B4.
Найти количество попарно различных элементов массива, меньших числа M.
B5.
Определить порядковые номера трех наименьших элементов и их сумму.
B6.
Среди элементов массива найти индексы всех таких, которые могут быть получены суммированием двух элементов этого же массива.
B7.
Напечатать все те элементы массива, сумма цифр в которых находится в интервале от L до R.
B8.
Определить, имеется ли в массиве элемент, равный сумме наибольше- го четного элемента и наименьшего нечетного элемента.
B9.
Подсчитать количество элементов в массиве, являющихся точным квадратом другого элемента в этом массиве.
B10.
Среди всех симметричных чисел найти наиболее длинное (по количе- ству цифр).
B11.
Напечатать все те элементы массива, цифры которых образуют гео- метрическую прогрессию.
27
B12.
Напечатать индексы элементов массива и сами элементы, сумма цифр которых кратна индексу этого элемента.
B13.
Напечатать такие элементы массива и их количество, сумма цифр ко- торых есть простое число.
B14.
Определить, есть ли в числовом массиве элемент, взаимно простой с каждым из остальных элементов массива, и напечатать его.
B15.
Среди элементов массива найти такие, которые могут быть получены с помощью произведения двух элементов этого же массива.
B16.
Подсчитать сумму элементов в массиве, являющихся точным кубом другого элемента в этом массиве.
B17.
Напечатать сумму и количество таких элементов массива, сумма цифр которых является составным числом.
Уровень C
Требуется определить массив целых чисел a (например, размера 30), заполнить его случайными числами (в диапазоне от A до B, где A и B за- даются в директивах #define) или ввести его элементы с клавиатуры.
Определить количество попарно различных элементов массива a, облада- ющих свойством Q (рассмотреть три случая: произвольный массив, упоря- доченный массив, массив с достаточно узким диапазоном значений эле- ментов). Свойства Q задаются в вариантах.
Программа должна содержать следующие функции:
• инициализация элементов массива случайными числами или вво- димыми с клавиатуры;
• вывод массива на экран;
• количество попарно различных элементов со свойством Q для произвольного массива;
• количество попарно различных элементов со свойством Q для упорядоченного массива;
• количество попарно различных элементов со свойством Q для массива с достаточно узким диапазоном значений элементов.
28
Варианты заданий
C1. Q: число является четным.
C2. Q: число является положительным.
C3. Q: число содержит цифру 1.
C4. Q: число не содержит цифру 0.
C5. Q: число является нечетным.
C6. Q: число является простым.
C7. Q: число является двузначным.
C8. Q: число является составным.
C9. Q: число является нечетным.
C10. Q: число содержит цифру 5.
29
Лабораторная работа № 6. Модификация одномерных массивов
Уровень A
Требуется определить массив целых чисел (например, размера 30), заполнить его случайными числами (в диапазоне от A до B, где A и B за- даются в директивах #define) или ввести его элементы с клавиатуры и пре- образовать массив в соответствии с вариантом задания.
Программа должна содержать следующие функции:
• инициализация элементов массива случайными числами или вво- димыми с клавиатуры;
• вывод массива на экран;
• вычисление минимального/максимального элемента массива.
Варианты заданий
A1.
Заменить все положительные элементы массива на наименьший эле- мент массива.
A2.
Заменить все элементы массива, находящиеся в интервале (L, R), на наибольший элемент массива.
A3.
Заменить все отрицательные элементы массива на сумму минимально- го и максимального элементов.
A4.
Заменить положительные четные элементы массива на наибольший элемент массива.
A5.
Циклически сдвинуть массив на одну позицию влево и найти мини- мальный элемент.
A6.
Заменить все элементы массива, которые делятся на 5 и не делятся на
7, на минимальный элемент.
A7.
Заменить все нечетные значения целочисленного массива на модуль минимального элемента.
A8.
Циклически сдвинуть массив на одну позицию вправо и найти макси- мальный элемент.
A9.
Поменять порядок элементов массива на противоположный и найти сумму минимального и максимального элементов.
30
A10.
Заменить все элементы массива, меньшие числа M, на наибольший элемент массива.
A11.
Заменить отрицательные нечетные элементы массива на наименьший элемент массива.
A12.
Заменить все элементы массива, которые делятся на 7, на максималь- ный элемент.
A13.
Заменить все двузначные элементы массива на максимальный эле- мент.
A14.
Заменить все нечетные двузначные элементы массива на наибольший элемент.
A15.
Циклически сдвинуть массив на две позиции влево и найти мини- мальный элемент.
A16.
Заменить все четные двузначные элементы массива на наименьший элемент.
A17.
Циклически сдвинуть массив на две позиции вправо и найти макси- мальный элемент.
Пример программы уровня A. Заменить все положительные эле- менты массива, заканчивающиеся на цифру 3, на наименьший элемент массива.
#include
#include
#include
#define N 10
#define A -50
#define B 50
/* инициализация элементов массива a случайными числами в диапазоне от A до B */ void Init(int *a, int n)
{ int i; for(i = 0; i < n; i++)
31
a[i] = A + rand() % (B - A + 1);
}
/* вывод массива a на экран */ void Print(int *a, int n)
{ int i; for(i = 0; i < n; i++) printf("%4d", a[i]); putchar('\n');
}
/* минимальный элемент массива a */ int 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 0;
}
32
}
/* вывод массива a на экран */ void Print(int *a, int n)
{ int i; for(i = 0; i < n; i++) printf("%4d", a[i]); putchar('\n');
}
/* минимальный элемент массива a */ int 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 0;
}
32
Уровень B
Требуется определить массив целых чисел (например, размера 30), заполнить его случайными числами (в диапазоне от A до B, где A и B за- даются в директивах #define) или ввести его элементы с клавиатуры. Найти минимальный элемент массива из всех элементов, обладающих свойством
Q.
Все элементы массива, обладающие свойством T, заменить на их обрат- ные изображения (например, 123 заменить на 321). Отсортировать массив по возрастанию. После инициализации и каждого преобразования выво- дить массив на экран. Свойства Q и T задаются в вариантах задания.
Программа должна содержать следующие функции:
• инициализация элементов массива случайными числами или вво- димыми с клавиатуры;
• вывод массива на экран;
• нахождение минимального элемента из всех элементов, облада- ющих свойством Q;
• сортировка элементов массива;
• целочисленная функция, которая возвращает число в переверну- том виде.
Варианты заданий
B1. Q
: число является четным. T: число содержит в своем составе цифры
2 и 3.
B2. Q: число является положительным. T: число начинается с цифры 1.
B3. Q: число содержит цифру 1. T: число является простым.
B4. Q: число не содержит цифру 0. T: первая цифра числа совпадает с по- следней.
B5. Q: число является нечетным. T: число является составным.
B6. Q
: число является простым. T: число содержит в своем составе циф- ру 5.
B7. Q: число является двузначным. T: число не содержит в своем составе цифру 7.
B8. Q: число является симметричным. T: число является трехзначным.
33
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.
Уровень C
Требуется определить массив целых чисел (например, размера 30), заполнить его случайными числами (в диапазоне от A до B, где A и B за- даются в директивах #define) или ввести его элементы с клавиатуры. Упо- рядочить по возрастанию только те элементы целочисленного массива, ко- торые обладают свойством Q, оставив остальные элементы на своих ме- стах. Удалить из массива все элементы, обладающие свойством T. После инициализации и каждого преобразования выводить массив на экран.
Свойства Q и T задаются в вариантах задания.
Программа должна содержать следующие функции:
• инициализация элементов массива случайными числами или вво- димыми с клавиатуры;
• вывод массива на экран;
• логическая функция, которая проверяет, обладает ли целое число свойством T;
• сортировка элементов массива, обладающих свойством Q;
• удаление элементов массива, обладающих свойством T.
34