Основы алгоритмизации и программирования (кр№1 вар1)

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Заочный факультет
(дистанционная форма обучения)

Кафедра автоматизированных систем управления (АСУ)

ПРОГРАММИРОВАНИЕ

Контрольная работа №1

Дата выполнения работы 04.08.2003

Дата проверки _________

Оценка _________

Преподаватель __________________

Подпись преподавателя ___________

2003 г.

Контрольная работа № 1

№ варианта – 1.

Задание

Задан массив чисел X[1..15].
Определить значение переменной у. Исходные данные и результат напечатать с пояснительным текстом.

у=
0,000135А4, если А10.

Где А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.