Смекни!
smekni.com

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

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