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

Министерство общего и профессионального образования
                            Российской Федерации

              Алтайский государственный технический университет
                             им. И.И. Ползунова



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

            по дисциплине «Информатика и вычислительная техника»



                                  Вариант 0



                                     Выполнил: студент гр. 9М-91 заочн. ф-та



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

                                                     Ильин Валентин Иванович



                                Барнаул 1999


Задание.
           Вычислить произведение элементов массива,  превышающих  заданное
           число С, то есть yk > C, для х ? [a,b] и изменяющегося  с  шагом
           h.
                 1 + x + ? x, где x < 5
           yk=   ? 2 – cosx, где 5 ? x ? 8
                 ln (1+x), где x > 8
Этап 1. Обозначения.
X – значение аргумента x;
Y - значение yk;
C – заданное число;
А – начальное значение аргумента x;
В – конечное значение аргумента x;
Н – шаг изменения аргумента x;
Р – произведение элементов yk массива.

Этап 2. Обсуждение алгоритма.
Задается  начальное  значение  аргумента  x  =  a   и   начальное   значение
произведения элементов массива Р  =  1.  Так  как,  число  повторений  цикла
заранее неизвестно, организуется циклический  (итерациооный)  вычислительный
прцесс. Внутри цикла осуществляется проверка значений х, и в зависимости  от
того x < 5, или 5 ? x ? 8, или x >  8,  выбирается  формула  для  вычисления
значений yk. Кроме того, есливыполняется условие x < 5, то  проверяется  еще
одн условие х ? 0 (так как подкоренное выражение при вычислении yk не  может
быть  отрицательным).  Вслучае  выполнения  этого   условия,   значению   yk
присваивается значение yk = 1 (для того, чтобы при вычислении не  изменилось
значение произведения Р, а процесс перешел к вычислению следующего  значения
yk при следующем значении х). Затем, на основании  полученного  значения  yk
проверяется  условие       yk  >  С.  Если  оно  выполняется,  то   значение
произведения Р умножается на полученное значение yk. После  этого,  аргумент
х увеличивается на  шаг  h.  Цикл  выполняется  до  тех  пор,  пока  текущее
значение х не превысит значения b – конечное значение аргумента х.

Этап 3. Структурная схема.
Структурная схема представлена на рис.1.


Рисунок 1.



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

PROGRAM_KR0;
VAR_A,B,C,H,P,X,Y:REAL;
BEGIN
  WRITELN(‘Введите значения a и b’);
  READLN(A,B);
 WRITELN(‘Введите шаг Н и число С’);
  READLN(H,C);
  X:=A;
  P:=1;
  WHILE_X<=B_DO
    BEGIN
      IF_X<5_THEN_IF_X>=0_THEN_Y:=1+X+SQRT(X);
                                                   ELSE_Y:=1;
                      ELSE_IF_X>8_THEN_Y:=LN(1+X);
                                                 ELSE_Y:=SQRT(2-COS(X));
      IF_Y>C_THEN_P:=P*Y;
      X:=X+H;
    END;
  WRITE(‘Произведение элеменьов массива равно’, P:8:2);
END.

Пояснения к программе.
Когда после запуска программы на экране появится текст:
Введите значения a и b,
нужно на клавиатуре выбрать конкретные числа, которые будут  присвоены  этим
переменным.
Затем появится сообщение:
Введите шаг Н и число С.
Необходимо ввести также конкретные  значения  этих  переменых.  После  этого
программа начнет выполнение вычислительного процесса.  В  результате  работы
программы на экране появится текст:
Произведение элеменьов массива равно число.
                            Лабораторные работы.
                                 Вариант 10.


                  Тема 1. Линейный вычислительный процесс.

Задание 1. Составить программу для вычисления значения х и
           произвести вычисления на компьютере.
                                    [pic]



PROGRAM_LR1;
VAR_A,B,D,P,G:REAL;
BEGIN
  WRITE(’Введите через пробел значения a, b, d, p, g’);
  READ(A,B,D,P,G);
  Х:=A*SIN(SQR(P))+B*SQR(COS(P))/(A*D*(SQR(P)+SQR(G)));
  WRITE(’X=’,X:7:2);
END.



               Тема 2. Разветвляющиеся вычислительный процесс.

Задание 2. Составить структурную схему и написать программу
           вычисления значения у(х) для любого значения
           аргумента х.
                             sin2?x+cos?x,, если x > 5
                       y =
                             x3+x2+1, если x ? 1



PROGRAM_LR2;
VAR_X,Y:REAL;
BEGIN
  WRITELN(’Введите х’);
  READLN(X);
  IF_X>5_THEN_Y:=SQR(SIN(SQRT(X)))+COS(SQRT(X));
                            WRITE(’Y=’,Y:8:2);
               ELSE_IF_X<=1_THEN_Y:=SQR(X)*X+SQR(X)+1;
                                                      WRITE(’Y=’,Y:8:2);
                                          ELSE_WRITE(’Y не определено при
данном
                                                         значении Х);
END.
  Тема 3. Циклический вычислительный процесс (структурный и итерационный).

Задание 3. Составить структурную схему и программу для
           вычисления таблицы значений функции y=f(x) на
           отрезке [a,b], если х на этом отрезке изменяется с шагом
           h.
                             x ? [14, 16], h=0.5



PROGRAM_LR3;
VAR_A,B,H,X,Y:REAL;
BEGIN
  WRITELN(’Введите a,b,h’);
  READLN(A,B,H);
  X:=A;
  WRITELN(’I___X___I___Y___I’);
  REPEAT
    Y:=(X-SIN(X))/(LN(X)+1);
    WRITELN(’I’,X:7:2,’I’,Y:7:2,’I’);
    X:=X+H:
  UNTIL_X>B;
END.



Задание 4. Составить структурную схему и программу для
           вычисления значения функции:


PROGRAM_LR4;
VAR_K,M,N:INTEGER;
          S,P:REAL;
BEGIN
  WRITELN(’Введите m и n’);
  READLN(M,N);
  S:=0;
  FOR_K:=M_TO_N_DO
    BEGIN
      P:=(SQR(K)+5)/(SQR(K)*K+K);
      S:=S+P;

    END;
  WRITE(’S=’,S:10:4);
END.



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

Задание 5. Составить структурную схему и программу с
           использованием одномерных массивов.
           В заданной последовательности x1,x2,x3,...,xn
           отрицательные числа заменить на их квадраты.

PROGRAM_LR5;
CONST_N1=100;
VAR_K,N:INTEGER;
          X:ARRAY[1..N1]_OF_REAL;
BEGIN
  WRITE(’Введите количество чисел в последовательности n=’);
  READLN(N);
  WRITELN(’Введите элементы последовательности’);
  FOR_K:=1_TO_N_DO
    BEGIN
      READ(X[K]);
      IF_X[K]<=0_THEN_X[K]:=SQR(X[K]);
      WRITELN(X[K]);
    END;
END.



Задание 6. Составить структурную схему и программу с
           использованием двумерных массивов.
           Получить элементы матрицы А=I IaijI I, i = 1..m, j = 1..n
                  i – j + 1, если i ? j
           aij =
                  i / (? i + j), если i = j

                 m = n = 3

PROGRAM_LR6;
VAR_I,J,M,N:INTEGER;
          A:ARRAY[1..10,1..10]_OF_REAL;
BEGIN
  WRITELN(’Введите m, n’);
  READLN(M,N);
  FOR_I:=1_TO_M_DO
    BEGIN
      FOR_J:=1_TO_N_DO
        BEGIN
          IF_I=J_THEN_A[I,J]:=I/SQRT(J+1);
                      ELSE_A[I,J]:=I-J+1;
         A[I,J]:=ABS(A[I,J]);
         WRITELN(’A[’,I:2,’,’,J:2,’]=’,A[I,J]:10:3);
          END;
    END;
END.



Задание 7. Составить программу, в которой вычисление
           факториала F = k! (k! = 1*2*3*…*k) выделить в
           отдельный модуль.


PROGRAM_LR7;
VAR_M,N:INTEGER;
          Y:REAL;
FUNCTION_FACT(K:INTEGER): INTEGER;
VAR_F,I,K:INTEGER;
BEGIN
  F:=1;
  FOR_I:=1_TO_K_DO
    F:=F*I;
    FACT:=F;
END;
BEGIN
  WRITE(’Введите m и n’);
  READLN(M,N);
  Y:=(FACT(N)- FACT(M))/(2* FACT(N)- FACT(M+1));
  WRITE(’Y=’,Y:10:4);
END.
-----------------------
[pic]



                                   Вывод x



                                    Конец



                             Ввод a, b, d, p, g



                                   Начало


[pic]



                                   Вывод y



                                   Вывод y


                                    x ? 1

                                    x > 5

[pic]



                         Вывод  «Y – не определено»



                                    Конец



                                   Ввод x



                                   Начало


[pic]

[pic]



                                 Вывод x, y


                                    x > b

                                  x = x + h


                                    Конец



                                Ввод a, b, h



                                   Начало


[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]



                                  S = S + P

                                k = m, n, +1


                                   Вывод S


                                    S = 0


                                    Конец



                                  Ввод m, n



                                   Начало


                                   xk ? 0


                                   Ввод xk


                                  xk = xk2

                                k = 1, n, +1


                                   Вывод S



                                    Конец



                                   Ввод n



                                   Начало


                                 aij = IaijI

                              y = i / (? i + j)

                                j = 1, n, +1

                                    i = j

                               aij = i – j + 1

                                i = 1, m, +1


                                  Вывод aij



                                  Ввод m, n



                                   Начало



                                    Конец


[pic]


                                    Конец



                                   Вывод P


                                  P = P * y

                                    y < C

                                    x ? 0

[pic]



[pic]



                                    x > 8

[pic]



[pic]



                                    x < 5

                                   x ?  b

                                  x = x + h


                                    P = 1


                                    x = a


                               Ввод a, b, C, h



                                   Начало