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

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

 

Заочный факультет

(дистанционная форма обучения)

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

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

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

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

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

Оценка:_________

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

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

2003 г.


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

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

Задание:

Задан массив чисел X[1..15].

Определить значение переменной у. Исходные данные и результат напечатать с пояснительным текстом.

у=

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;

  1. Листинг программы:

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.