Основы алгоритмизации и программирования (кр№1, вар1)
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Заочный факультет
(дистанционная форма обучения)
Кафедра автоматизированных систем управления (АСУ)
ПРОГРАММИРОВАНИЕ
Контрольная работа №1
Дата выполнения работы: 04.08.2003
Дата проверки:_________
Оценка:_________
Преподаватель:__________________
Подпись преподавателя:___________
2003 г.
Контрольная работа № 1
№ варианта – 1.
Задание:
Задан массив чисел X[1..15].
Определить значение переменной у. Исходные данные и результат напечатать с пояснительным текстом.
у=
0,000135А4, если А10.
Где А1 – сумма элементов массива Х;
А4 – сумма косинусов положительных элементов массива Х;
М1 – количество элементов массива Х, значения которых меньше А1.
Для решения задачи составим структурную схему алгоритма.
Для этого определиим используемые переменные и их тип.
Х[1..15] – массив, состоящий из 15 элементов, каждый из которых записан в
экспоненциальной форме и имеет вещественный тип данных;
i – номер очередного элемента;
n – номер конечного элемента массива;
М1 - количество элементов массива, значения которых меньше суммы всех элементов массива.
Переменные i, n, M1 имеют целочисленный тип данных;
А1 – используется для подсчета суммы всех элементов массива Х;
А4- используется для подсчета сумм косинусов положительных элементов массива Х;
у - искомая по условию задачи переменная.
Переменные А1, А4, у имеют вещественный тип данных.
Алгоритм выполнения:
Для генерации элементов массива используем процедуру
Randomize;
n:=15;
i:=1;
Генерируем элементы массива Х с помощью функции random и выводим их на экран
while i<=n do
begin
writeln (i,'-й член массива',random:10);
x[i]:=random;
i:=i+1;
end;
Цикл будет повторятся n раз (в данном случае 15), генерируя новый элемент массива Х и заполняя таким образом массив данных.
Задаем начальные вычисляемые значения и выводим их на экран.
A1:=0;
A4:=0;
y:=0;
M1:=0;
Для вычисления суммы всех элементов массива Х и занесения этой суммы в переменную А1 используем цикл
i:=1;
while i<=n do
begin
A1:=A1+X[i];
i:=i+1;
end;
Определение на положительность каждого элемента массива.
Если элемент положителен, определяем его косинус и суммируем его значение в переменную А4
i:=1;
while i<=n do
begin
if X[i]>0
then A4:=A4+cos(X[i]);
i:=i+1;
end;
Определяем, меньше ли значения каждого элемента массива Х[i] по сравнению
с суммой всех элементов массива A1. Те элементы, значения которых меньше A1, суммируются количественно в переменную М1
i:=1;
while i<=n do
begin
if
X[i]
then
M1:=M1+1;
i:=i+1;
end; Проверка
условия задачи
и определение
искомого значения
у в соответствии
с условием. if
A1<0 then
y:=(A4*2.8E-03+A1)/(M1*A1+3E-01) else
y:=A4*1.35E-04; Листинг
программы: program
kr1var1; uses
crt; var {задаем
переменные
и их тип} X:
array [1..15] of real; i,n,M1:integer; A1,A4,y:real; s1:string; begin clrscr; {используем
процедуру
генерации
элементов
массива} randomize; writeln; n:=15; i:=1; {генерируем
элементы массива
Х и выводим их
на экран} while
i<=n do begin
writeln (i,'-й
член
массива',random:10);
x[i]:=random; i:=i+1; end; {задание
начальных
значений и
вывод их на
экран}
A1:=0;
A4:=0; y:=0; M1:=0; writeln; writeln ('A1:
',A1:10); writeln ('A4:
',A4:10); writeln ('M1:
',M1); writeln ('y:
',y:10); {суммирование
элементов
массива и определение
А1} i:=1; while i<=n do
begin
A1:=A1+X[i];
i:=i+1;
end; {определение
на положительность
каждого элемента
массива, если
элемент положителен,
определяем
его косинус
и суммируем значение
записывается
в переменную
А4} i:=1; while i<=n do
begin
if X[i]>0
then A4:=A4+cos(X[i]);
i:=i+1;
end; {определяем,
меньше ли значения
каждого элемента
массива по
сравнению с
суммой всех
элементов
массива. Те
элементы, значения
которых меньше
суммы всех
элементов
массива,суммируются
количественно
в переменную
М1} i:=1; while i<=n do
begin
if X[i]
then M1:=M1+1;
i:=i+1;
end; {проверка
условия задачи
и определение
искомого значения
у Вывод
на экран результатов
вычислений} if
A1<0 then
y:=(A4*2.8E-03+A1)/(M1*A1+3E-01) else
y:=A4*1.35E-04; writeln; writeln; writeln ('A1:
',A1:10); writeln ('A4:
',A4:10); writeln ('M1:
',M1); writeln ('y:
',y:10); readln; end.