Разработка алгоритмов
1. Есть массив целых чисел, напишите алгоритм нахождения суммы его четных чисел.
Решение.
1. Инициализация: A[], n, i = 0, sum = 0. 2. Если (A[i] % 2 = 0), то sum = sum +A[i] 3. i = i + 1 4. Если (i < n)переход к п. 2. 5. if (sum = 0) печать: таких чисел нет, переход к п.7. 6. Печать sum. 7. Конец алгоритма.
2. Есть массив целых чисел, составить алгоритм нахождения суммы трех его чисел кратных 5.
Решение.
1. Инициализация: A[], n, i = 0, sum = 0, к = 0. 2. Если (A[i] % 5 = 0) {sum = sum +A[i], k++, if (k = 3) переход к п. 6} 3. i = i + 1 4. Если (i < n)переход к п. 2. 5. if (k! = 3) печать: таких трех чисел нет, переход к п.7. 6. Печать sum. 7. Конец алгоритма.
3. Есть массив целых чисел, составить алгоритм нахождения суммы его нечетных и отрицательных чисел.
Решение.
1. Инициализация: A[], n, i=0, sum=0. 2. Если ((A[i] % 2! = 0) & (A[i] < 0)) sum = Sum+ A[i]. 3.. i = i + 1. 4. Если (i< n) переход к п. 2 5. Если ((sum= 0) печать - таких чисел нет, переход к п.7 6. Печать sum. 7. Конец алгоритма.
4. Есть массив целых чисел, составить алгоритм нахождения суммы его чисел, удовлетворяющих условию | ai| < i^2.
Решение.
1. Инициализация: A[], n, i=0, sum=0. 2. Если (A[i] < 0) A[i] = -A[i]. 3. Если (A[i] < = i*i) sum = sum + A[i]. 4. i = i + 1. 5. Если (i < n) переход к п. 2 6. Если (sum = 0) печать: таких чисел нет, переход к п.8. 7. Печать sum. 8. Конец алгоритма.
5. Есть массив целых чисел, напишите алгоритм нахождения суммы его четных чисел и нечетных членов.
Решение.
1. Инициализация: A[], n, i=0, sum1=0, sum1=0. 2. Если (A[i] % 2=0) sum1=sum1+A[i]. // сумма четных чисел 3. Если (i %2! =0) sum2=sum2 + A[i]. //сумма нечетных членов 4. i = i + 1. 5. Если (i< n) переход к п. 2 6. Печать sum1 и sum2. 8. Конец алгоритма
6. Есть массив целых чисел, напишите алгоритм нахождения числа и суммы тех его членов, которые делятся на 5 и не делятся на 7.
Решение.
1. Инициализация: A[], n, i=0, sum=0. 2. Если ((A[i] % 5 = 0) & (A[i] % 7! =0)) {sum=sum +A[i], k++} 3. i = i + 1. 4. Если (i< n) переход к п. 2 5. Если (sum = 0) печать: таких чисел нет, переход к п.7. 6. Печать sum, k. // k – число таких чисел 7. Конец алгоритма
7. Есть массив целых чисел, напишите алгоритм нахождения произведения членов массива кратных числу р.
Решение.
1. Инициализация: A[], n, i = 0, multy = 1. 2. Если (A[i] % P = 0) multy = multy*A[i]. 3. i = i+1 4. Если (i< n) переход к п. 2 5. Если (multy = 1) печать: таких чисел нет, переход к п.7. 6. Печать multy. 7. Конец алгоритма.
8. Есть массив целых чисел. Напишите алгоритм замены в нем нулями членов, модуль которых при делении на р дает в остатке q.
Решение.
1. Инициализация: A[], n, i = 0, sum = 0, p, q. 2. Если (A[i] < 0) B[i] = -A[i]. 3. B[i] = A[i]. 4. Если (B[i] % p = q) A[i] = 0. 5. i = i + 1 6. Если (i < n)переход к п. 2. 7. Печать A[]. 8. Конец алгоритма.
7. Разработка простых кодов на языке С++ Задачи 1. Задан массив А[10] найти сумму его четных членов. Составить код программы.
Код программы
#include " stdafx.h" #include < iostream> using namespace std;
main() { int i, n; float s=0.0, A[9];
cout< < " Input n= \n"; cin> > n;
cout< < " Enter items of array A: \n"; for(i=0; i< =n-1; i++) cin> > A[i];
for(i=0; i< =n-1; i=i+2) s=s+A[i];
cout< < " Sum of even members= " < < s;
return 0; }
2. Даны натуральные числа m, n. Получить все их общие делители. Составить код программы.
Код программы
#include " stdafx.h" #include < math.h> #include < iostream> using namespace std;
main() { int i, n, m, max;
cout < < " Input n= "; cin> > n;
cout< < " Input m = "; cin> > m;
max=n> m? n: m; cout< < " common multiple: \n";
for(i=1; i< =max; i++) { if(((m%i==0)& & (n%i==0)) cin> > i; } return 0; }
3. Даны целые положительные числа а1, а2,...аn. Получить новую последовательность, выбросив из исходной все члены со значением max(a1, a2,..., an). Код программы
#include " stdafx.h" #include < iostream> using namespace std;
main() { int i, n, A[10], B[10], max=0, k=0;
cout< < " Input n= \n"; cin> > n;
cout< < Input array A: \n"; for(i=0; i< =n-1; i++) { cin> > A[i]; if (A[i]> max)max=A[i]; }
for(i=0; i< =n-1; i++) { if (A[i]! =max) { B[k]=A[i]; k++; } } cout< < New array: \n"; for(i=0; i< =k-1; i++) cout< < B[i];
return 0; }
4. Составить код программы ввода элементов массива и его распечатка в обратном порядке.
5. Составить код программы определения максимального и минимального элементов массива и их номеров в нем.
6. Составить код программы вычисления факториала n!
7. Даны целые числа а1, а2,...аn (в этой последовательности могут быть повторяющиеся члены). Составить код программы вычисления, сколько чисел входит в последовательность более чем по одному разу Выяснить, имеется ли в последовательности хотя бы одна пара совпадающих чисел.
8. Составить код программы разложения целого числа N> =11 на сумму трех биноминальных коэффициентов.
|