Контрольная работа по дисциплине «Компьютерные технологии и программирование»

Автор: Пользователь скрыл имя, 05 Мая 2012 в 23:45, контрольная работа

Описание работы

Цель: Овладеть навыками организации алгоритмов и программ линейной структуры и их дальнейшей отладки на ПЭВМ в среде Borland Паскаль.
Вариант №17.
Ввести с клавиатуры исходную информацию для вычисления следующих арифметических выражений:


Числовые значения, входящие в выражения, описать как константы.

Работа содержит 1 файл

Контрольная работа.doc

— 773.50 Кб (Скачать)

           begin

             if cos(A+B)<>t then

              begin

               ks:=ks+1;

              S[ks]:=sin(A+B)/cos(A+B);

{               writeln(i,'-y element массивa S:',S[ks]:6:4,' ','при А=',A,' ','В=',B,' ');}

              end

             else writeln('Не существует, т.к. cos(A+B)=0')

           end;

      end;

    writeln('Количество значений в каждом массиве:');

    writeln('                        Y=',ky,'  Z=',kz,'  S=',ks);

     begin

      if ky>0 then

        begin

          writeln;

          writeln('                            массив Y:');

          for i:=1 to ky do

            begin

              write('  ',y[i]:12:6);

              if i mod 5 = 0 then

                writeln

              else write;

            end;

        end

      else begin

      writeln;

      writeln('Массив Y не заполнен, т.к. значений для условия А>В небыло');

           end;

     end;

     begin

      if kz>0 then

        begin

          writeln;

          writeln('                            массив Z:');

          for i:=1 to kz do

            begin

              write('  ',z[i]:12:6);

              if i mod 5 = 0 then

                writeln

              else write;

            end;

        end

      else begin

      writeln;

      writeln('Массив Z не заполнен, т.к. значений для условия А<В небыло');

           end;

     end;

     begin

      if ks>0 then

        begin

          writeln;

          writeln('                            массив S:');

          for i:=1 to ks do

            begin

              write('  ',s[i]:12:6);

              if i mod 5 = 0 then

                writeln

              else write;

            end;

        end

      else begin

      writeln;

      writeln('Массив S не заполнен, т.к. значений для условия А=В небыло');

           end;

     end;

    readkey;

end. 

Результаты  работы программы:

Задайте интервал псевдослучайных значений, от и до - -10 10 1

Количество значений в каждом массиве:

                        Y=13  Z=10  S=2

                            массив Y:

      0.141120     -0.756802      0.989358      0.412118      0.656987

      0.656987     -0.958924      0.656987     -0.841471     -0.279415

     -0.841471     -0.756802      0.656987

                            массив Z:

     -0.145500      0.540302     -0.911130      1.000000      0.283662

     -0.911130     -0.653644     -0.653644     -0.989992     -0.653644

                            массив S:

     -7.244607      0.300632

 

Задание 5

Тема: Программирование вычислительных процессов разветвляющейся  структуры.

Цели: - научиться записывать арифметические выражения;

      - составлять программы линейной  и разветвляющейся структуры;

      - освоить реализацию программы  на ЭВМ.

Вариант №2.

Часть 1: Программирование вычислительных процессов разветвляющейся структуры на примере вычисления значения функции одной переменной

Блок-схема  алгоритма.

 
 

Текст программы.

program Zad_5_1;

{$N+}

uses crt;

var

   x:real;

   Y,y1,y2,y3:extended;

const

     t=1e-9;

BEGIN

   clrscr;

   write('Введите значение x = ');

   read(x);

   {ODZ}

   if x>t then

     begin

     y1:=sqr(x)-0.8;

       if y1<>t then

         begin

           y2:=ln(6*x);

           y3:=((y2/ln(10)-exp(x))/(y1))+(x*sqr(sqr(x*x)));

           Y:=abs(y3)/y3*exp(ln(abs(y3))/3);

           writeln('Y = ',Y:10:4);

         end

       else writeln('Знаменатель = 0');

     end

         else writeln('ОДЗ x>=0 - не выдержано! Т.о. нет возможности вычеслить lg(x)');

   readkey;

END. 

Результаты  работы программы:

Введите значение x = 10

Y =   999.9999 

 

Часть 2: Программирование вычислительных процессов разветвляющейся структуры на примере вычисления значения функции одной переменной, заданной на интервале

Блок-схема  алгоритма.

 

Текст программы.

program Zad_5_2;

{$N+}

uses crt;

var

   x:real;

   Y:extended;

const

     t=1e-9;

BEGIN

   clrscr;

   write('Введите значение x = ');

   read(x);

   {Условие  существования функции}

   if x<(1+t) then

     begin

               Y:=sqrt(5-x); {Подкорен.выраж.не провер. т.к. по усл.сущ.функ. 0 под корнем исключен}

       writeln('Y=',Y);

     end;

   if ((x>(2+t)) and (x<(3-t))) then

     begin

       Y:=sin(x)*(cos(x)*cos(x))*exp(-0.5*x);

       writeln('Y=',Y);

     end;

   if ((x>(3+t)) and (x<(7+t))) then

     begin

               Y:=sqrt(2*x-3); {Подкорен.выраж.не провер. т.к. по усл.сущ.функ. 0 под корнем исключен}

       writeln('Y=',Y);

     end;

   if x>(7+t) then

     begin

                     Y:=(sqrt(exp(x)+1))/((x*x*x)+3); {Подкорен.выраж. и числит.не провер.т.к.по усл.сущ.функ.0 под корн.и в числ.исключен}

       writeln('Y=',Y);

     end;

   if ((x>(1+t)) and (x<(2+t)) or (abs(x-3)<t)) then

       writeln('Функция не существует');

readkey;

END. 

Результаты  работы программы:

Введите значение x = 10

Y= 1.47972610207218E-0001

 

Задание № 6

Тема: Программирование вычислительных процессов циклической структуры

        Цель: Научиться составлять программы циклической структуры.

Вариант №10.

Часть 1: Программирование вычислительных процессов циклической структуры на примере вычисления значения функции одной переменной

Блок-схема  алгоритма.

 

Текст программы.

program Zad6_1;

{$N+}

uses crt;

var

   x,xn,xk,h:real;

   y1,y2,y3,y:extended;

{  y:array[xn..xk] of extended; }

{  ky,i:integer;  }

const

     t=1e-9;

BEGIN

   clrscr;

   write('Введите xn, xk, h через пробел - ');

   read(xn,xk,h);

{  ky:=0; }

   x:=xn;

   while x<=xk do

     begin {сначала проверим ОДЗ}

                 if abs(sin(x))>t then   {а с записью sin(x)<>t выдает ошибку - деление на 0}

         begin

           y1:=exp(-x)-(cos(x)/sin(x));

             if y1<>t then    {? почему нельзя 0}

               begin

                 if abs(x-0.8)<>t then

                  begin

                   y2:=(ln(abs(x-0.8))+exp(x));

                     if abs(x)>t then

                       begin

                         y3:=exp(5)-1/x;

                           if abs(y3)>t then

                             begin

                               if y2>=t then

                                 begin

                                   y:=(sqrt(y2)/y1)+(abs(y3)/y3*exp(ln(abs(y3))/3));

                                   writeln('при значении х=',x:6:2,'  y=',y:12:6);

                                 end

                               else writeln('Подкоренное выражение =0');

                             end

                           else write;

                       end

                     else writeln('x=0 т.о. значение 1/x существовать ен может');

                  end

                 else writeln('Выражение по lg=0, невозможно вычислить lg');

               end

             else writeln('Выражение в числителе = 0');

         end

       else writeln('Невозможно вычислить ctg(x)');

   x:=x+h;

     end;

   readkey;

END. 

Результаты  работы программы:

Введите xn, xk, h через пробел - -10 10 1

при значении х=-10.00  y=    5.295749

при значении х= -9.00  y=    5.295997

при значении х= -8.00  y=    5.296471

при значении х= -7.00  y=    5.297494

Информация о работе Контрольная работа по дисциплине «Компьютерные технологии и программирование»