Содержание
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Уровень А
Постановка задания
Требуется определить массив целых чисел (например, размера 30), заполнить его случайными числами (в диапазоне от А до В, где А и В задаются в директивах #define) или ввести его элементы с клавиатуры и преобразовать массив в соответствии с вариантом задания.
Программа должна содержать следующие функции:
- инициализация элементов массива случайными числами или вводимыми с клавиатуры;
- вывод массива на экран;
- вычисление минимального/максимального элемента массива.
Варианты заданий
№ | Формулировка |
А1 | Заменить все положительные элементы массива на наименьший элемент массива |
А2 | Заменить все элементы массива, находящиеся в интервале (L, R) на наибольший элемент массива. |
А3 | Заменить все отрицательные элементы массива на сумму минимального и максимального элементов. |
А4 | Заменить положительные четные элементы массива на наибольший элемент массива. |
А5 | Циклически сдвинуть массив на одну позицию влево и найти минимальный элемент. |
А6 | Заменить все элементы массива, которые делятся на 5 и не делятся на 7, на минимальный элемент. |
А7 | Заменить все нечетные значения целочисленного массива на модуль минимального элемента. |
А8 | Циклически сдвинуть массив на одну позицию вправо и найти максимальный элемент. |
А9 | Поменять порядок элементов массива на противоположный и найти сумму минимального и максимального элементов. |
А10 | Заменить все элементы массива, меньшие числа М, на наибольший элемент. |
А11 | Заменить отрицательные нечетные элементы массива на наименьший элемент массива. |
А12 | Заменить все элементы массива, которые делятся на 7, на максимальный элемент. |
А13 | Заменить все двузначные элементы массива на максимальный элемент. |
А14 | Заменить все нечетные двузначные элементы массива на наибольший элемент. |
А15 | Циклически сдвинуть массив на две позиции влево и найти минимальный элемент. |
А16 | Заменить все четные двузначные элементы массива на наименьший элемент. |
А17 | Циклически сдвинуть массив на две позиции вправо и найти максимальный элемент. |
Уровень В
Постановка задания
Требуется определить массив целых чисел (например, размера 30), заполнить его случайными числами (в диапазоне от А до В, где А и В задаются в директивах #define) или ввести его элементы с клавиатуры. Найти минимальный элемент массива из всех элементов, обладающих свойством Q. Все элементы массива, обладающие свойством Т, заменить на их обратные изображения (например, 123 заменить на 321). Отсортировать массив по возрастанию. После инициализации и каждого преобразования выводить массив на экран. Свойства Q и Т задаются в вариантах задания.
Программа должна содержать следующие функции:
- инициализация элементов массива случайными числами или вводимыми с клавиатуры;
- вывод массива на экран;
- нахождение минимального элемента из всех элементов, обладающих свойством Q;
- сортировка элементов массива;
- целочисленная функция, которая возвращает число в перевернутом виде.
Варианты заданий
№ | Свойство Q | Свойство Т |
В1 | Число является четным. | Число содержит в своем составе цифры 2 и 3. |
В2 | Число является положительным. | Число начинается с цифры 1. |
В3 | Число содержит цифру 1. | Число является простым. |
В4 | Число не содержит цифру 0. | Первая цифра числа совпадает с последней. |
В5 | Число является нечетным. | Число является составным. |
В6 | Число является простым. | Число содержит в своем составе цифру 5. |
В7 | Число является двузначным. | Число не содержит в своем составе цифру 7. |
В8 | Число является симметричным. | Число является трехзначным. |
В9 | Сумма цифр числа равна 10. | Число является четным. |
В10 | Число не содержит четных цифр. | Число является простым. |
В11 | Число является составным. | Число начинается с 2. |
В12 | Число начинается с 3. | Число является составным. |
В13 | Число является степенью двойки. | Первая цифра числа является нечетной. |
В14 | Число содержит хотя бы одну четную цифру. | Число содержит в младшем разряде цифру 3. |
В15 | Число содержит цифру 3. | Число является составным. |
В16 | Число является трехзначным. | Число содержит в своем составе цифру 2. |
В17 | Число является степенью тройки. | Число не содержит в своем составе цифру 5. |
Уровень С
Постановка задания
Требуется определить массив целых чисел (например, размера 30), заполнить его случайными числами (в диапазоне от А до В, где А и В задаются в директивах #define) или ввести его элементы с клавиатуры. Упорядочить по возрастанию только те элементы целочисленного массива, которые обладают свойством Q, оставив остальные элементы на своих местах. Удалить из массива все элементы, обладающие свойством Т. После инициализации и каждого преобразования выводить массив на экран. Свойства Q и Т задаются в вариантах задания.
Программа должна содержать следующие функции:
- инициализация элементов массива случайными числами или вводимыми с клавиатуры;
- вывод массива на экран;
- логическая функция, которая проверяет, обладает ли целое число свойством Т;
- сортировка элементов массива, обладающих свойством Q;
- удаление элементов массива, обладающих свойством Т.
Варианты заданий
№ | Свойство Q | Свойство Т |
С1 | Число является четным. | Число состоит из попарно различных цифр. |
С2 | Число является положительным. | Только одна цифра в числе встречается ровно два раза, остальные — не более одного раза. |
С3 | Число содержит цифру 1. | Цифры в числе упорядочены по возрастанию. |
С4 | Число не содержит цифру 0. | Число является симметричным в двоичном представлении. |
С5 | Число является нечетным. | Число является простым и не содержит в своем составе цифру 5. |
С6 | Число является простым. | В числе хотя бы одна цифра встречается более одного раза. |
С7 | Число является двузначным. | Число состоит только из простых цифр. |
С8 | Число начинается на 1. | Каждая цифра, входящая в число, встречается ровно два раза. |
С9 | Сумма цифр числа является четным числом. | Число является произведением двух различных простых чисел. |
С10 | Число является квадратом некоторого натурального числа. | Число является степенью некоторого простого числа. |
Образец выполнения (вариант В2)
Условие задания
- Свойство Q: число является положительным.
- Свойство Т: число начинается с цифры 1.
Реализация задачи на языке Си
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | #include <stdio.h> // консольный вывод (printf) #include <conio.h> // задержка программы (getch) #include <time.h> // для засеивания зерна генерации (time) #include <stdlib.h> // для генерации случайного числа (rand) #include <locale.h> // русификация диалогов #define N 15 // количество элементов в массиве #define A -50 // минимальное значение элементов массива #define B +50 // максимальное значение элементов массива // инициализация элементов массива случайными числами из отрезка [A .. B] void Init(int* pv) { int i; for(i = 0; i < N; i++) pv[i] = A + rand() % (B - A + 1); } // вывод массива на экран void Print(const int* const pv) { int i; for(i = 0; i < N; i++) printf("%6d", pv[i]); putchar('\n'); } // нахождение минимального элемента из всех элементов, обладающих свойством Q // Q: число является положительным int Get_min_Q(const int* const pv) { int min = B + 1; int i; for(i = 0; i < N; i++) if((pv[i] > 0) && (pv[i] < min)) min = pv[i]; return min; } // функция, которая проверяет, что заданное число начинается с цифры 1 // 0 - да; 1 - нет int Is_first_digit(int pnumber) { while(pnumber > 10) pnumber /= 10; return (pnumber == 1); } // функция, которая возвращает заданное число в перевернутом виде (например, 123 -> 321) int Reverse_number(int pnumber) { int reverse = 0; int digit; while(pnumber > 0) { digit = pnumber % 10; reverse = reverse * 10 + digit; pnumber /= 10; } return reverse; } // функция, которая заменяет элементы массива, обладающие свойством Т на их обратные изображения // T: число начинается с цифры 1 void Reverse(int* pv) { int i; for(i = 0; i < N; i++) if(Is_first_digit(pv[i])) pv[i] = Reverse_number(pv[i]); } // сортировка массива по возрастанию (метод выбора минимального) void Selection_sort(int* pv) { int i, j; int imin; int swap; for(i = 0; i < (N - 1); i++) { imin = i; for(j = i + 1; j < N; j++) if(pv[j] < pv[imin]) imin = j; swap = pv[i]; pv[i] = pv[imin]; pv[imin] = swap; } } // главная функция программы (точка входа) int main(void) { int v[N]; // целочисленный одномерный массив setlocale(LC_ALL, ""); // русификация диалогов srand(time(NULL)); // для генерации псевдослучайных чисел Init(v); printf("Исходный массив имеет вид:\n\t"); Print(v); printf("Минимальный элемент из положительных элементов: %d", Get_min_Q(v)); Reverse(v); printf("\nЭлементы массива после обратного изображения имеют вид:\n\t"); Print(v); Selection_sort(v); printf("Элементы массива после сортировки по возрастанию имеют вид:\n\t"); Print(v); getch(); // задержка работы программы, чтобы была возможность просмотреть результаты return 0; // завершение работы программы и передача управления в ОС } |
Результаты работы программы
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Добавить комментарий