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

Основы алгоритмизации и программирования кр 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]<A1

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]<A1

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.