0 / 0 / 0 Регистрация: 12.09.2011 Сообщений: 51 |
|
1 |
|
Найти сумму и количество двузначных элементов массива20.09.2011, 17:12. Показов 9579. Ответов 6
Дан массив случайных чисел производной размерности.Найти сумму и количество двузначных элементов массива. Желательно решить задачу через Randome как то так по моему)
0 |
Puporev Почетный модератор 64287 / 47586 / 32739 Регистрация: 18.05.2008 Сообщений: 115,182 |
||||
20.09.2011, 17:27 |
2 |
|||
Решение
1 |
0 / 0 / 0 Регистрация: 12.09.2011 Сообщений: 51 |
|
20.09.2011, 20:04 [ТС] |
3 |
Большое спасибо!!
0 |
264 / 219 / 95 Регистрация: 07.04.2011 Сообщений: 1,358 |
|
20.09.2011, 20:06 |
4 |
Большое спасибо!! Модуль числа)))Т.е например «-1» с применением abs становится равно «1»
0 |
0 / 0 / 0 Регистрация: 12.09.2011 Сообщений: 51 |
|
20.09.2011, 20:11 [ТС] |
5 |
просто я не помню что мы это проходили))
0 |
Puporev Почетный модератор 64287 / 47586 / 32739 Регистрация: 18.05.2008 Сообщений: 115,182 |
||||
20.09.2011, 20:29 |
6 |
|||
РешениеУ тебя в условии двузначные числа, а они бывают и положительные и отрицательные, поэтому отрицательные берем по модулю. Если сделаешь массив только из положительных чисел, то модуль не нужен.
1 |
0 / 0 / 0 Регистрация: 12.09.2011 Сообщений: 51 |
|
20.09.2011, 20:37 [ТС] |
7 |
ну спасибо!!!)))
0 |
Формулировка задачи:
Дан массив случайных чисел производной размерности.Найти сумму и количество двузначных элементов массива.
Желательно решить задачу через Randome как то так по моему)
Код к задаче: «Найти сумму и количество двузначных элементов массива»
textual
writeln('Исходный массив:'); for i:=1 to n do begin a[i]:=random(200); write(a[i]:4); if a[i] in [10..99] then begin k:=k+1; s:=s+a[i]; end; end;
Полезно ли:
7 голосов , оценка 4.000 из 5
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Уровень А
Постановка задания
Требуется определить массив целых чисел (например, размера 30), заполнить его случайными числами или ввести его элементы с клавиатуры и определить его характеристики с помощью рекурсивной функции в соответствии с вариантом задания. Проверку правильности результата провести с помощью сравнения результатов итеративной и рекурсивной функций.
Программа должна содержать следующие функции:
- инициализация элементов массива случайными числами или вводимыми с клавиатуры;
- вывод массива на экран;
- итеративная функция, вычисляющая характеристики массива в соответствии с вариантом задания;
- рекурсивная функция, вычисляющая характеристики массива в соответствии с вариантом задания.
Варианты заданий
№ | Формулировка |
А1 | В массиве целых чисел с помощью рекурсивной функции найти количество четных элементов. |
А2 | В массиве целых чисел с помощью рекурсивной функции найти количество элементов массива, которые делятся на 5 и не делятся на 7. |
А3 | В массиве целых чисел с помощью рекурсивной функции найти количество простых чисел. |
А4 | В массиве целых чисел с помощью рекурсивной функции найти сумму нечетных элементов. |
А5 | Найти максимальный элемент целочисленного массива с помощью рекурсии. |
А6 | Вычислить сумму только симметричных элементов массива с помощью рекурсии. |
А7 | В массиве целых чисел с помощью рекурсивной функции найти сумму таких элементов, которые состоят только из четных цифр. |
А8 | В массиве целых чисел с помощью рекурсивной функции найти количество элементов, больших заданного числа А. |
А9 | В массиве целых чисел с помощью рекурсии найти количество минимальных элементов. |
А10 |
В массиве целых чисел с помощью рекурсии найти сумму элементов массива, расположенных в интервале (А, В). |
А11 |
Найти количество двузначных элементов массива с помощью рекурсии. |
А12 |
Найти минимальный элемент целочисленного массива с помощью рекурсии. |
А13 |
В массиве целых чисел с помощью рекурсии найти количество максимальных элементов. |
А14 |
Вычислить сумму только двузначных элементов массива с помощью рекурсии. |
А15 |
В массиве целых чисел с помощью рекурсивной функции найти сумму элементов, заканчивающихся на 7. |
А16 |
В массиве целых чисел с помощью рекурсивной функции найти сумму всех элементов массива, которые одновременно делятся на 3 и на 5. |
А17 |
В массиве целых чисел с помощью рекурсивной функции найти количество элементов, начинающихся на 3. |
Уровень В
Постановка задания
Метод «Разделяй и властвуй»
Требуется определить одномерный целочисленный массив а из n элементов (например, $n = 30$), заполнить его случайными числами (в диапазоне от А до В, где А и В задаются в директивах #define) или ввести его элементы с клавиатуры и определить следующие его характеристики с помощью метода «разделяй и властвуй»:
- количество элементов массива, обладающих свойством Q;
- сумму элементов массива, обладающих свойством Т;
- обладает ли хотя бы один элемент массива свойством Q;
- все ли элементы массива а обладают свойством Т.
Свойства Q и Т задаются в индивидуальных вариантах. Проверку правильности результата провести с помощью сравнения результатов итеративной и рекурсивной функций.
Программа должна содержать следующие функции:
- инициализация элементов массива случайными числами или вводимыми с клавиатуры;
- вывод массива на экран;
- итеративная функция, вычисляющая количество элементов массива, обладающих свойством Q;
- рекурсивная функция, вычисляющая количество элементов массива, обладающих свойством Q;
- итеративная функция, вычисляющая сумму элементов массива, обладающих свойством Q;
- рекурсивная функция, вычисляющая сумму элементов массива, обладающих свойством Т;
- итеративная логическая функция, проверяющая, обладает ли хотя бы один элемент массива свойством 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. |
Уровень С
Постановка задания
Метод «Разделяй и властвуй»
Требуется определить одномерный целочисленный массив а из n элементов (например, $n = 30$), заполнить его случайными числами (в диапазоне от А до В, где А и В задаются в директивах #define) или ввести его элементы с клавиатуры и определить следующие его характеристики с помощью метода «разделяй и властвуй»:
- количество элементов массива, обладающих свойством Q;
- сумму элементов массива, обладающих свойством Т;
- обладает ли хотя бы один элемент массива свойством Q;
- все ли элементы массива а обладают свойством Т.
Свойства Q и Т задаются в индивидуальных вариантах. Проверку правильности результата провести с помощью сравнения результатов итеративной и рекурсивной функций. Также требуется упорядочить массив по возрастанию с помощью рекурсивной функции (алгоритм сортировки задается в варианте).
Программа должна содержать следующие функции:
- инициализация элементов массива случайными числами или вводимыми с клавиатуры;
- вывод массива на экран;
- итеративная функция, вычисляющая количество элементов массива, обладающих свойством Q;
- рекурсивная функция, вычисляющая количество элементов массива, обладающих свойством Q;
- итеративная функция, вычисляющая сумму элементов массива, обладающих свойством Q;
- рекурсивная функция, вычисляющая сумму элементов массива, обладающих свойством Т;
- итеративная логическая функция, проверяющая, обладает ли хотя бы один элемент массива свойством Q;
- рекурсивная логическая функция, проверяющая, обладает ли хотя бы один элемент массива свойством Q;
- итеративная логическая функция, проверяющая, все ли элементы массива а обладают свойством Т;
- рекурсивная логическая функция, проверяющая, все ли элементы массива а обладают свойством Т;
- рекурсивная сортировка элементов массива.
Варианты заданий
№ | Свойство Q | Свойство Т | Метод сортировки |
С1 | Число является четным. | Число состоит из попарно различных цифр. | Прямого выбора |
С2 | Число является положительным. | Только одна цифра в числе встречается ровно два раза, остальные — не более одного раза. | Вставками |
С3 | Число содержит цифру 1. | Цифры в числе упорядочены по возрастанию. | Пузырьковая |
С4 | Число не содержит цифру 0. | Число является симметричным в двоичном представлении. | Прямого выбора |
С5 | Число является нечетным. | Число является простым и не содержит в своем составе цифру 5. | Вставками |
С6 | Число является простым. | В числе хотя бы одна цифра встречается более одного раза. | Пузырьковая |
С7 | Число является двузначным. | Число состоит только из простых цифр. | Прямого выбора |
С8 | Число начинается на 1. | Каждая цифра, входящая в число, встречается ровно 2 раза. | Вставками |
С9 | Сумма цифр числа является четным числом. | Число является произведением двух различных простых чисел. | Пузырьковая |
С10 | Число является квадратом некоторого натурального числа. | Число является степенью некоторого простого числа. | Вставками |
Образец выполнения (вариант А12)
Условие задачи
Найти минимальный элемент целочисленного массива с помощью рекурсии.
Реализация задачи на языке Си
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 |
#include <stdio.h> // консольный ввод-вывод #include <conio.h> // задержка программы #include <time.h> // для инициализации зерна генерации #include <locale.h> // русификация диалогов #include <stdlib.h> // генерация случ.чисел #define N 8 // размер массива #define A -50 // минимальное значение элементов массива #define B +50 // максимальное значение элементов массива // инициализация массива случайными числами из отрезка [A; B] void Init(int a[]) { int i; for(i = 0; i < N; i++) a[i] = A + rand() % (B — A + 1); } // вывод элементов массива на экран void Print(const int a[]) { int i; for(i = 0; i < N; i++) printf(«%6d», a[i]); printf(«n»); } // рекурсивная функция, вычисляющая минимальный элемент массива int Get_min_recursion(const int a[], const int pindex, int pindex_min) { if(pindex + 1 == N) return a[pindex_min]; if(a[pindex] < a[pindex_min]) pindex_min = pindex; return Get_min_recursion(a, pindex + 1, pindex_min); } // итеративная функция, вычислаяющая минимальный элемент массива int Get_min_iteration(const int a[]) { int min = a[0]; // гипотеза: минимальным является самый 1ый элемент массива int i; // перебираем оставшиеся элементы массива for(i = 1; i < N; i++) if(a[i] < min) // если текущий элемент меньше текущего минимального min = a[i]; // найден новый минимальный элемент return min; // в качестве ответа возвращается найденное минимальное значение массива } // главная функция программы (точка входа) int main(void) { int a[N]; // одномерный целочисленный массива // русификация диалогов + инициализация зерна генерации setlocale(LC_ALL, «»); srand(time(NULL)); // заполнение массива случайными числами + вывод элементов массива на экран Init(a); printf(«Исходный массив имеет вид:nt»); Print(a); // нахождение минимального элемента массива двумя способами: рекурисвно и итеративно printf(«nМинимальный элемент массива (рекурсивная реализация): %d», Get_min_recursion(a, 1, 0)); printf(«nМинимальный элемент массива (итеративная реализация): %d», Get_min_iteration(a)); getch(); // задержка работы программы, чтобы была возможность просмотреть результат return 0; // завершение работы программы и передача управления в ОС } |
Результаты работы программы
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
Laboratornye_po_informatike_1.pdf
Скачиваний:
39
Добавлен:
23.03.2016
Размер:
728.84 Кб
Скачать
Уровень A
Требуется определить массив целых чисел (например, размера 30), заполнить его случайными числами или ввести его элементы с клавиатуры и определить его характеристики с помощью рекурсивной функции в соответствии с вариантом задания. Проверку правильности результата провести с помощью сравнения результатов итеративной и рекурсивной функций.
Программа должна содержать следующие функции:
•инициализация элементов массива случайными числами или вводимыми с клавиатуры;
•вывод массива на экран;
•итеративная функция, вычисляющая характеристики массива в соответствии с вариантом задания;
•рекурсивная функция, вычисляющая характеристики массива в соответствии с вариантом задания.
Варианты заданий
A1. В массиве целых чисел с помощью рекурсивной функции найти количество четных элементов.
A2. В массиве целых чисел с помощью рекурсивной функции найти количество элементов массива, которые делятся на 5 и не делятся на 7.
A3. В массиве целых чисел с помощью рекурсивной функции найти количество простых чисел.
A4. В массиве целых чисел с помощью рекурсивной функции найти сумму нечетных элементов.
A5. Найти максимальный элемент целочисленного массива с помощью рекурсии.
A6. Вычислить сумму только симметричных элементов массива с помощью рекурсии.
A7. В массиве целых чисел с помощью рекурсивной функции найти сумму таких элементов, которые состоят только из четных цифр.
49
A8. В массиве целых чисел с помощью рекурсивной функции найти количество элементов, больших заданного числа A.
A9. В массиве целых чисел с помощью рекурсии найти количество минимальных элементов.
A10. В массиве целых чисел с помощью рекурсии найти сумму элементов массива, расположенных в интервале (А, В).
A11. Найти количество двузначных элементов массива с помощью рекурсии.
A12. Найти минимальный элемент целочисленного массива с помощью рекурсии.
A13. В массиве целых чисел с помощью рекурсии найти количество максимальных элементов.
A14. Вычислить сумму только двузначных элементов массива с помощью рекурсии.
A15. В массиве целых чисел с помощью рекурсивной функции найти сумму элементов, заканчивающихся на 7.
A16. В массиве целых чисел с помощью рекурсивной функции найти сумму всех элементов массива, которые одновременно делятся на 3 и на 5.
A17. В массиве целых чисел с помощью рекурсивной функции найти количество элементов, начинающихся на 3.
Пример программы уровня A. В массиве целых чисел с помощью рекурсии найти количество таких элементов, первая цифра которых совпадает с последней.
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> #define N 10 #define A -50 #define B 50
50
/* инициализация элементов массива a случайными числами в диапазоне от A до B */
void Init(int *a, int n)
{
int i;
for(i = 0; i < n; i++)
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 Check(int a)
{
int b = abs(a), c = b % 10; while (b > 9)
b /= 10; return (b == c);
}
/* рекурсивная функция, вычисляющая количество таких элементов массива, первая цифра которых совпадает с последней */
int CountRec(int *a, int *end)
{
return a < end ? Check(*a) + CountRec(a + 1, end) : 0;
}
51
/* итеративная функция, вычисляющая количество таких элементов массива, первая цифра которых совпадает с последней */
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);
printf(«count1 = %dn», CountRec(a, a + N)); printf(«count2 = %dn», CountIt(a, N)); return 0;
}
Уровень B
Метод «разделяй и властвуй»
Требуется определить одномерный целочисленный массив a из n элементов (например, n=30), заполнить его случайными числами (в диапазоне от A до B, где A и B задаются в директивах #define) или ввести его элементы с клавиатуры и определить следующие его характеристики с помощью метода «разделяй и властвуй»:
•количество элементов массива, обладающих свойством Q;
•сумму элементов массива, обладающих свойством T;
•обладает ли хотя бы один элемент массив a свойством Q;
•все ли элементы массива a обладают свойством T.
Свойства Q и T задаются в индивидуальных вариантах. Проверку правильности результата провести с помощью сравнения результатов итеративной и рекурсивной функций.
52
Программа должна содержать следующие функции:
•инициализация элементов массива случайными числами или вводимыми с клавиатуры;
•вывод массива на экран;
•итеративная функция, вычисляющая количество элементов массива, обладающих свойством Q;
•рекурсивная функция, вычисляющая количество элементов массива, обладающих свойством Q;
•итеративная функция, вычисляющая сумму элементов массива, обладающих свойством T;
•рекурсивная функция, вычисляющая сумму элементов массива, обладающих свойством T;
•итеративная логическая функция, проверяющая, обладает ли хотя бы один элемент массива свойством Q;
•рекурсивная логическая функция, проверяющая, обладает ли хотя бы один элемент массива свойством Q;
•итеративная логическая функция, проверяющая, все ли элементы массива a обладают свойством T;
•рекурсивная логическая функция, проверяющая, все ли элементы массива a обладают свойством T.
Варианты заданий
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.
53
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.
Уровень C
Метод «разделяй и властвуй»
Требуется определить одномерный целочисленный массив a из n элементов (например, n=30), заполнить его случайными числами (в диапазоне от A до B, где A и B задаются в директивах #define) или ввести его элементы с клавиатуры и определить следующие его характеристики с помощью метода «разделяй и властвуй»:
•количество элементов массива, обладающих свойством Q;
•сумму элементов массива, обладающих свойством T;
•обладает ли хотя бы один элемент массив a свойством Q;
•все ли элементы массива a обладают свойством T.
Свойства Q и T задаются в индивидуальных вариантах. Проверку правильности результата провести с помощью сравнения результатов итеративной и рекурсивной функций. Также требуется упорядочить массив по возрастанию с помощью рекурсивной функции (алгоритм сортировки задается в варианте).
54
Программа должна содержать следующие функции:
•инициализация элементов массива случайными числами или вводимыми с клавиатуры;
•вывод массива на экран;
•итеративная функция, вычисляющая количество элементов массива, обладающих свойством Q;
•рекурсивная функция, вычисляющая количество элементов массива, обладающих свойством Q;
•итеративная функция, вычисляющая сумму элементов массива, обладающих свойством T;
•рекурсивная функция, вычисляющая сумму элементов массива, обладающих свойством T;
•итеративная логическая функция, проверяющая, обладает ли хотя бы один элемент массива свойством Q;
•рекурсивная логическая функция, проверяющая, обладает ли хотя бы один элемент массива свойством Q;
•итеративная логическая функция, проверяющая, все ли элементы массива a обладают свойством T;
•рекурсивная логическая функция, проверяющая, все ли элементы массива a обладают свойством T;
•рекурсивная сортировка элементов массива.
Варианты заданий
C1. Q: число является четным. T: число состоит из попарно различных цифр. Рекурсивно упорядочить массив с помощью метода прямого выбора.
C2. Q: число является положительным. T: только одна цифра в числе встречается ровно два раза, остальные – не более одного раза. Рекурсивно упорядочить массив с помощью метода вставок.
C3. Q: число содержит цифру 1. T: цифры в числе упорядочены по возрастанию. Рекурсивно упорядочить массив с помощью пузырьковой сортировки.
C4. Q: число не содержит цифру 0. T: число является симметричными в двоичном представлении. Рекурсивно упорядочить массив с помощью метода прямого выбора.
55
C5. Q: число является нечетным. T: число является простым и не содержит в своем составе цифру 5. Рекурсивно упорядочить массив с помощью метода вставок.
C6. Q: число является простым. T: в числе хотя бы одна цифра встречается более одного раза. Рекурсивно упорядочить массив с помощью пузырьковой сортировки.
C7. Q: число является двузначным. T: число состоит только из простых цифр. Рекурсивно упорядочить массив с помощью метода прямого выбора.
C8. Q: число начинается на 1. T: каждая цифра, входящая в число, встречается ровно два раза. Рекурсивно упорядочить массив с помощью метода вставок.
C9. Q: сумма цифр числа является четным числом. T: число является произведением двух различных простых чисел. Рекурсивно упорядочить массив с помощью пузырьковой сортировки.
C10. Q: число является квадратом некоторого натурального числа. T: число является степенью некоторого простого числа. Рекурсивно упорядочить массив с помощью метода вставок.
56
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Так как задание не формализовано выводит последовательно суммы кратных 3 и двухзначных чисел
Program TZ5;
const
n=10;
var
a:array [1..n] of integer;
i,b:integer;
begin
randomize;
for i:=1 to n do begin
a[i]:=random (20);
a[i]:=a[i]-10;
writeln(i,’ ‘,a[i]);
end;
b:=0;
for i:=1 to n do
if (a[i] mod 3)=0 then
b:=b+a[i];
writeln(‘summa kratnyh 3m=’,b);
b:=0;
for i:=1 to n do
if abs(a[i]) >9 then b:=b+a[i];
writeln(‘summa dvuhznachnyh =’,b);
readln;
end.