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

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

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

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

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



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


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



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

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

                                                            Оценка:_________

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

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



                                   2003 г.


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



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

Задание:

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

           [pic]
у=
           0,000135(А4, если А1(0.


Где А1 – сумма элементов массива Х;
А4 – сумма косинусов положительных элементов массива Х;
М1 – количество элементов массива Х, значения которых меньше А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;
   2. Листинг программы:

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.