Uploaded by Deqisto

ЛР введение в программирование МЭИ

advertisement
Фролов Н.Г. ЭР-07-20
Лабораторная работа №6
Задача 1_3_4_9
Условие задачи:
Начальный вклад клиента составил А руб. В первый месяц ставка по вкладу
составила p%, в каждый следующий месяц она будет увеличиваться на q%.
Определить, через сколько месяцев накопленная сумма станет больше 2А.
Рассматривать срок не более М месяцев.
Состав данных:
Имя
Смысл
Тип
Структура
Исходные данные
A
Начальный вклад
вещественный простая переменная
p
Ставка по вкладу в первый месяц вещественный простая переменная
q
Ставка по вкладу в каждый
следующий месяц
вещественный простая переменная
M
Максимальное число месяцев
целый
простая переменная
Выходные данные
El
искомый номер месяца
целый
сообщение «срок истек»
строковый
простая
переменная
Промежуточные переменные
t
текущий номер года
целый
простая переменная
At
текущая сумма вклада
вещественный простая переменная
1
Фролов Н.Г. ЭР-07-20
Блок-схема алгоритма:
Передача
A,p,q,M
At=A
t=1
(At<2*A) && (t<=M)
да
At=At*(1+p/100)
p=p+q
t=t+1
At>2*A
да
El=t -1
El=“срок исток”
Передача El
2
Фролов Н.Г. ЭР-07-20
Программа функции:
Вызов функции:
Задача 1_5_2_9
Условие задачи:
Найти сумму и число элементов вектора Х, для которых |Хк - А|<B.
Состав данных:
Имя
Смысл
Тип
Структура
Исходные данные
3
Фролов Н.Г. ЭР-07-20
X
Исходный вектор
вещественный Одномерный массив
Выходные данные
С
Количество элементов,
удовлетворяющих условию
целый
Одномерный массив
Сумма элементов,
удовлетворяющих условию
вещественный Простая переменная
Промежуточные переменные
n
Количество элементов вектора X
целый
Простая переменная
k
Счётчик элементов вектора
целый
Простая переменная
Блок-схема алгоритма:
Передача X
n=length(X)
C=0
k=0
нет
k<=n-1
да
|Xk – A|<B
C=0
да
C=C+Xk
r=r+1
4
k=k+1
Фролов Н.Г. ЭР-07-20
Программа
функции:
Вызов функции:
Задача 3_6_9
Условие задачи:
Для каждой строки матрицы А (6х5) найти среднее арифметическое
положительных элементов, а для каждой строки матрицы В (4х7) – среднее
арифметическое элементов больших единицы.
5
Фролов Н.Г. ЭР-07-20
Назначение функции: Подсчёт среднего арифметического элементов
больших заданного числа для каждой строки матрицы.
Вход функции: Матрица Y, заданное число x.
Выход функции: Sr – среднее арифметическое элементов больших а в
каждом столбце матрицы Y.
Заголовок функции:
Sred(Y,x):=
Состав данных:
Имя
Смысл
Тип
Структура
Исходные данные
Y
Заданная матрица
Вещественный
Двумерный массив
x
Заданное число
Вещественный
Простая переменная
Выходные данные
Sr
Cреднее арифметическое элементов
Вещественный
Одномерный массив
Промежуточные переменные
n
Число строк матрицы X
целый
Простая переменная
m
Число столбцов матрицы X
целый
Простая переменная
p
Счётчик строк матрицы X
целый
Простая переменная
q
Счётчик столбцов матрицы X
целый
Простая переменная
6
Фролов Н.Г. ЭР-07-20
Блок-схема алгоритма
Передача Y,x
n=rows(X) ;
m=cols(X)
p<=n-1
Нет
Да
elp=0; Sp=0;
q=0
q<=m-1
Нет
Да
Xp,q>a
Да
Sp= Sp + Xp,q
elp=elp+1
q=q+1
7
Фролов Н.Г. ЭР-07-20
Srp= Sp / elp
p=p+1
Передача Sr
Код функции S:
Вызов функции:
8
Фролов Н.Г. ЭР-07-20
Задача 2_3_2_11
Условие задачи:
Если сумма элементов двух первых строк матрицы А меньше суммы элементов
двух последних её строк, изменить матрицу А по правилу Аk,j = Аk,j + Tk.
Состав данных вызывающего кода
Имя
Смысл
Тип
Структура
Исходные данные
A
Заданная матрица
Вещественный Двумерный массив
Т
Заданный вектор
Вещественный Двумерный массив
Выходные данные
A
Изменённая матрица
Вещественный Двумерный массив
Промежуточные данные
9
Фролов Н.Г. ЭР-07-20
S
Сумма элементов матрицы А
Вещественный Простая переменная
Вызывающий код алгоритма:
Блок-схема вызывающего кода:
10
Фролов Н.Г. ЭР-07-20
Функция вычисления суммы S:
Заголовок функции:
sm(Х):=
11
Фролов Н.Г. ЭР-07-20
Состав данных подпрограммы sm:
Имя
Смысл
Тип
Структура
Исходные данные
A
Заданная матрица
Вещественный Двумерный массив
Выходные данные
S
Сумма элементов строк
Вещественный Простая переменная
Промежуточные данные
p
Счётчик элементов
Целый
Простая переменная
n,m
Размер матрицы
Целый
Простая переменная
Блок-схема подпрограммы summa:
Передача Х
n=rows(X); m=cols(X)
S1=0; S2=0
p=0
Нет
p<=n-1
S1  S1  X(0 p)  X(1 p)
S2  S2  X(n1 p)  X(n2 p)
p=p+1
12
Передача S1,S2
Фролов Н.Г. ЭР-07-20
Код функции sm:
Функция изменения матрицы Х:
Заголовок функции: change(X,T):=
Состав данных функции change
Имя
Смысл
Тип
Структура
Исходные данные
A
Заданная матрица
Вещественный Двумерный массив
Выходные данные
А
Измененная матрица
Вещественный Двумерный массив
Промежуточные данные
n
Число строк
Целый
Простая переменная
m
Число столбцов
Целый
Простая переменная
p
Счётчик строк
Целый
Простая переменная
q
Счётчик столбцов
Целый
Простая переменная
13
Фролов Н.Г. ЭР-07-20
Блок-схема функции change:
Передача Х
n=rows(X); m=cols(X)
p=0
p<=n-1
q=0
q<=m-1
X(p q)  X(p q)  T q
p=p+1
q=q+1
Передача Х
Код функции change:
14
Download