Контрольная работа по теме "Информатика"

Автор работы: Пользователь скрыл имя, 25 Февраля 2013 в 19:41, лабораторная работа

Описание

Работа содержит ответы на вопросы для экзамена (или зачета) по дисциплине "Информатика"

Работа состоит из  1 файл

_Лабораторная работа.doc

— 451.50 Кб (Скачать документ)

 

Министерство образования  и науки Российской Федерации

Федеральное государственное  образовательное  бюджетное учреждение

высшего профессионального  образования

Волгоградский государственный  технический университет

Кафедра «Вычислительная  техника»

 

 

 

 

 

Семестровая работа

 

по дисциплине «Информатика»

 

Вариант №

 

 

 

 

 

 

 

 

 

 

Выполнил:  

студент группы ТОА-124

Иванов И.И.

 

                                                                         Проверил:

ст. преп. Приходькова  И.В.

 

 

 

 

 

 

 

Волгоград 2013 г.

 

 

Лабораторная работа №1

Вычислить, производя упрощения при помощи дополнительной переменной.

 

 

Тестовый пример:   A=1  B=1     Z=8,08

 

входные данные: А, В

выходные данные: Z

 

 

Program lab_1;

Var A,B,Z, p: real;

Begin

Write('A='); ReadLn(A);

Write('B='); ReadLn(B);

 

P:=(sqrt(abs(A)+sqr(A+B))/(A*B);

Z:=B*(sin(p)/cos(p)+exp(p));

Writeln(' Z =', Z);

Readln;

End.

 

 

 

 

Лабораторная работа №2

Проверить на неотрицательность значение выражения

 sin(tg(2π x / k )).

Если выражение неотрицательно, то значение k утроить.

 

Тестовый пример:  x=1  k=1           k=1

                                 x=-1  k=1         k=3

 

входные данные: x,k

выходные данные: k

 

 

 

Program Lab_2;

Var x,k,y:Real;

Begin

Write('x='); ReadLn(x);

Write('k='); ReadLn(k);

y:=sin(sin(2*pi*x/k)/ cos(2*pi*x/k));

if y>=0

Then

  begin

  k:=3*k;

  Writeln('Значение k утроено k=' ,K)

  end

Else

   Writeln('Значение k не изменилось,   k=' ,K) ;

  ReadLn

End.

 

 

Лабораторная работа №3

Ввести три действительных числа x, y, z . Вычислить q,w по

формулам:

q = max(x ⋅ y ⋅ z, 3⋅ z ⋅ x, 2⋅ (x + y + z));

w = min(3⋅ x ⋅ y ⋅ z , q/ 2). Вычисленные значения выдать на печать.

 

Тестовый пример: x=1,  y=1, z=1      q= 6     ,w=3     

                                 x=-1,  y=-1, z=-1      q= 3     ,w= -3    

 

входные данные: x,y,z,

выходные данные: q,w

 

Program Lab_3;

      Var x,y,z,q,w: Real;

         

      Function max(a,b:real): real;

       begin

        if a> b then max:=a else max:=b;

       end;

 

      Function min(a,b:real): real;

       begin

        if a< b then min:=a else min:=b;

       end;

 

      Begin

          Write('x='); ReadLn(x);

          Write('y='); ReadLn(y);

          Write('z='); ReadLn(z);

          q:=max(max(x*y*z, 3*z*x), 2*(x+y+z)) ;

          w:= min(3*x*y*z, q/2);

          WriteLn('q=', q);

          WriteLn('w=', w);

       End.

 

 

Лабораторная работа №4

Найти наибольшее значение функции y=ax3+bx-c при изменении x

 от –4,5 до –33,5 с шагом –0,5. a=2,14; b=-4,21; c=3,25 .

 

Тестовый пример:

 

входные данные: a,b,c,

выходные данные: ymax, xm

 

 

 

Program Lab_4;

Var a,b,c,x,y,Ymax,xm: real;

Begin

a:=2.14;

b:=-4.21;

c:=3.25;

x:=-4.5;

xm:x;

Ymax:=a*x*sqr(x)+b*x+c;

Repeat

  x:=x+-0.5;

  y:=a*x*sqr(x)+b*x+c;

  if  (y> Ymax) and (x>=-33.5)  then begin xm:=x; Ymax:=y end;

Until x<=-33.5;

Writeln('Max значение y =', Ymax);

Writeln('При  значении x =', xm);

End.

 

 

Лабораторная работа №5

Задан одномерный массив В[10]. Найти  сумму положительных элементов и произведение отрицательных. Если сумма больше произведения, найти МАХ элемент массива, а если нет - выдать сообщение об этом.

 

Тестовый пример: B[1]=1  B[2]=1  B[3]=3  B[4]=1  B[5]=1 B[6]=1 B[7]=1

B[8]=-1  B[9]=-1  B[10]=-1 

 

входные данные: одномерный массив В[10].

выходные данные: Max=3

 

Program Lab_5;

Type arr= Array[1..10] of real;

Var B: arr;

    Sp,Po,M: real;

    i: integer;

Function Max(A:arr):real;

  var i: integer;

  p: real;

  Begin

   p:=A[1];

   for i:= 2 to 10 do if A[i]> p Then p:=A[i];

   Max:=p;

  end;

 

Begin

  For i:=1 to 10 do

    begin

     Write('Вводите очередной ',i,' -й элемент: ');

     ReadLn(B[i];

    end;

  Writeln('Ввод окончен.');

 

    //Найдём сумму положительных элементов

    Sp:=0;

    For i:=1 to 10 do

     If B[i]>0 Then Sp:=Sp+B[i];

     //Найдём произведение отрицательных

     Po:=1;

    For i:=1 to 10 do

     If B[i]<0 Then Po:=Po*B[i];

    

    If Sp>Po Then

     begin

     M:=Max(B);

     Writeln('сумма больше произведения, Max=', M)

     end

     Else

         Writeln('сумма не больше произведения, ') ;

End.

 

 

Лабораторная работа №6

В заданном одномерном массиве  F(N) (N<=50) вычислить разность между суммой элементов, стоящих на четных местах, и суммой элементов, стоящих на нечетных местах. Найденным значением заменить положительные элементы массива. Преобразованный массив вывести на экран.

Тестовый пример:N=5 F[1]=1  F [2]=1  F [3]=1  F [4]=1  F [5]=1

преобразованный одномерный массив F[1]=-1  F [2]=-1  F [3]=-1  F [4]=-1  F [5]=-1

 

входные данные: одномерный массив F [N].

выходные данные: преобразованный одномерный массив F [N].

 

 

Program Lab_5;

Type arr= Array[1..50] of real;

Var F: arr;

   Sch,Sn, R: real;

    i, N: integer;

 

Begin

  Write('Задайте N ='); ReadLn(N);

  For i:=1 to N do

    begin

     Write('Вводите очередной ',i,' -й элемент: ');

     ReadLn(F[i];

    end;

  Writeln('Ввод окончен.');

 

    //Найдём сумму элементов, стоящих на четных местах

    Sch:=0;

    i:=2;

    While i<=N do

    begin

      Sch:=Sch+F[i];

      i:=i+2;

    end;

   

   //Найдём  сумму элементов, стоящих на  нечетных местах

    Sn:=0;

    i:=1;

    While i<=N do

    begin

      Sn:=Sn+F[i];

      i:=i+2;

    end;

  //вычисляем разность между  суммой элементов, стоящих на  четных местах, и суммой элементов,

   R:=Sch-Sn;

 

   //Найденным  значением заменяем положительные  элементы массива.

   For i:=1 to N do

     If F[i]>0  Then F[i]:=R;

 

   //Печать преобразованного масссива

     For i:=1 to N do Write(F[i]:5:1);

   End.

 

Лабораторная работа №7

1. Ввести двумерный массив 5 3 A × . Определить в нём среднее

арифметическое элементов, стоящих на позициях с чётной суммой индексов.

Тестовый пример: A[i,j]   A[1,1] = 1  A[1,2] = 1 A[1,3] = 1  A[1,4] = 1 A[1,5] = 1 

                                            A[2,1] = 1  A[2,2] = 1 A[2,3] = 1  A[2,4] = 1 A[2,5] = 1 

                                            A[3,1] = 1  A[3,2] = 1 A[3,3] = 1  A[3,4] = 1 A[3,5] = 1

 

сумму элементов, стоящих на позициях с чётной суммой индексов =8

 

входные данные: двумерный массив A[i,j]  

выходные данные: сумма элементов, стоящих на позициях с чётной суммой индексов

 

Program Lab_7_1;

Type arr= Array[1..5,1..3] of real;

Var A: arr;

    S: real;

    i,j, k: integer;

 

Begin

  For i:=1 to 5 do

    begin

     Writeln('Вводим ',i,'-ю строку:');

     For j:=1 to 3 do

      begin

       Write('Вводите очередной ',j,' -й элемент: ');

       ReadLn(A[i,j]);

      end;

    end;

  Writeln('Ввод окончен.');

     //Найдём сумму элементов, стоящих на позициях с чётной суммой индексов

    S:=0;

    For i:=1 to 5 do

     for j:=1 to 3 do

       if ((i+j) mod 2=0) Then S:=S+A[i,j];

    Writeln('сумму элементов, стоящих на позициях с чётной суммой индексов =',S);

 

End.

 

2. Ввести двумерный массив N M A × . Элементы в нечетных столбцах массива умножить на индекс строки в которой они находится. Массив вывести до и после преобразования.

 

Тестовый пример: A[i,j]   A[1,1] = 1  A[1,2] = 1 A[1,3] = 1  A[1,4] = 1 A[1,5] = 1 

                                            A[2,1] = 1  A[2,2] = 1 A[2,3] = 1  A[2,4] = 1 A[2,5] = 1 

                                            A[3,1] = 1  A[3,2] = 1 A[3,3] = 1  A[3,4] = 1 A[3,5] = 1

                                            A[4,1] = 1  A[4,2] = 1 A[4,3] = 1  A[4,4] = 1 A[4,5] = 1 

                                       

преобразованный массив A[i,j] 

                                          A[1,1] = 1  A[1,2] = 1 A[1,3] = 1 

                                            A[2,1] = 2  A[2,2] = 1 A[2,3] = 2 

                                            A[3,1] = 3  A[3,2] = 1 A[3,3] = 3 

                                           

 

входные данные: двумерный массив A[i,j]  

выходные данные: преобразованный массив A[i,j]  

 

 

Program Lab_7_2;

 

 Type arr= Array[1..10,1..10] of real;

Var A: arr;

    S: real;

    i,j, k, N,M: integer;

   

    Procedure Print(A:arr);

    var i,j: integer;

    Begin

     for i:=1 to N do

      begin

       For j:=1 to M do

        begin

         Write(A[i,j]:5:1);

        end;

       writeln;

      end;

    writeln;

   End;

  

Begin

  Write('Число строк:'); ReadLN(N);

  Write('Число стлб :'); ReadLN(M);

 

  For i:=1 to N do

    begin

     Writeln('Вводим ',i,'-ю строку:');

     For j:=1 to M do

      begin

       Write('Вводите очередной ',j,' -й элемент: ');

       ReadLn(A[i,j]);

      end;

    end;

  Writeln('Ввод окончен.');

  Writeln('Введен массив:');

  Print(A);

 

  for i:=1 to N do

    begin

     j:=1;

      while j<=M do

       begin

        A[i,j]:=i*A[i,j];

        j:=j+2;

       end;

    end;

    Writeln('Преобразованный массив:');

    Print (A);

  End.

 

Семестровая работа

  1. Задан одномерный массив. Вычислить сумму отрицательных элементов этого массива. Записать ее модуль на место элемента, стоящего после максимального. Если такого элемента нет, то выдать сообщение. Результат вывести на экран.

Тестовый пример:N=5  A[1]=1  A [2]=-1  A [3]=1  A [4]=-1  A [5]=10

преобразованный одномерный массив A[1]=1  A [2]=-1  A [3]=-1  A [4]=1  A [5]=2

 

входные данные: одномерный массив A [N].

выходные данные: преобразованный одномерный массив A [N].

Program semestr_1;

Type arr= Array[1..50] of real;

Var A: arr;

    S, R: real;

    i, N, Nmax, FL: integer;

 

Begin

  Write('Задайте N ='); ReadLn(N);

  For i:=1 to N do

    begin

     Write('Вводите очередной ',i,' -й элемент: ');

     ReadLn(A[i]);

    end;

  Writeln('Ввод окончен.');

 

    //Найдём сумму отрицательных элементов

    S:=0;Nmax:=1; fl:=0;

    i:=1;

    While i<=N do

    begin

      if A[i]<0 then S:=S+A[i];

      if A[Nmax]< A[i] then begin fl:=1; Nmax:=i end;

      i:=i+1;

    end;

    If FL=1 then Writeln ('Max=', A[Nmax], ' его номер =', Nmax  );

    If FL =0 then Writeln('Максимальног элемента в массиве нет. ');

    If (FL=1) and (Nmax<N)

              then  begin  A[Nmax+1]:=abs(S);

                     for i:=1 to N do Write(A[i], ' ');

                     writeln

                    end

              else   Writeln('Записать невозможно ' ) ;

End.

 

2.Найти среднее арифметическое элементов каждой строки матрицы B(N,M) (N£10; M£15) и переписать их в одномерный массив C. Массив C распечатать. Если первый элемент в массиве С положительный , тогда найти минимальный элемент в массиве В, иначе в массиве С найти максимальный элемент.

Тестовый пример: B[i,j]   B[1,1] = 1  B[1,2] = 1 B[1,3] = 1 

                                            B[2,1] = 1  B[2,2] = 1 B[2,3] = 1 

                                          

Min=1

 

входные данные: двумерный массив B[i,j] 

выходные данные: Min, Max  

 

Program Semestr_2;

  type matr=Array[1..10,1..15] of real;

       lin=Array[1..10] of real;

    Var B: matr;

        C: lin;

       i,j,N,M: integer;

        min, max: real;

      

  Procedure Print(A:matr);

    var i,j: integer;

   Begin

     for i:=1 to N do

      begin

       For j:=1 to M do

        begin

         Write(A[i,j]:5:1);

        end;

       writeln;

      end;

    writeln;

   End;

 

   Procedure Minel(A:matr; var mi : real);

   var i, j: integer;

   begin

    mi:=A[1,1];

    for  i:=1 to N do

     for j:=1 to M do

      if A[i,j] < mi  then mi:= A[i,j]

 

   end;

  

 

   Procedure Maxel(A:matr; var ma : real);

   var i, j: integer;

   begin

    ma:=A[1,1];

    for  i:=1 to N do

     for j:=1 to M do

      if A[i,j] >ma  then ma:= A[i,j]

 

   end;

Begin

   //число строк

   Write('N='); ReadLn(N);

   // число столбцов

   Write('M='); ReadLn(M);

Информация о работе Контрольная работа по теме "Информатика"