Лабораторный практикум по математическому моделированию
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 на сумму трех биноминальных коэффициентов.
Лабораторный практикум по математическому моделированию
Москва
Составители: Н. В. Белотелов, Ю. И. Бродский, С. Ф. Винокуров, М. Н. Высоцкий, М. А. Коровко, Е. Б. Кручина, С. С. Миносьянц, А. Н. Мягков, Н. Н.Оленев, Ю. Н. Павловский, Н. П. Тарасова.
УДК 519.711.3.314 (076) ББК 22.18: 60.7я7 Л12 Рецензенты: Доктор физ.-мат. наук, зав. сектором моделирования Института геологии рудных месторождений, петрографии, минералогии и геохимии РАН, В.И. Мальковский Чл.-корр. РАН, гл. научн. сотр. Вычислительного центра имени А. А. Дородницына РАН, И.Г. Поспелов
Методическое пособие предназначено для студентов всех специальностей РХТУ им. Д. И. Менделеева, изучающих курс «Математическое моделирование». Во введении даётся описание моделей. Кратко описывается содержание, основные цели и задачи, решаемые с помощью математических моделей. В пособии приводится последовательность действий при выполнении лабораторных работ. Приводятся правила введения данных при выполнении лабораторных работ. В данном пособии приводятся требования к оформлению и представлению работ. Приводится список вопросов по пройденным темам, для самопроверки и подготовки к контрольным работам.
УДК 519.711.3.314 (076) ББК 22.18: 60.7я7
Учебное издание
|