Основы алгоритмизации и программирования кр 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
Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок.
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз,
а первые результаты появляются уже в течение первых 7 дней.
Зарегистрироваться и Начать продвижение
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.
|