Шпаргалка: Информатика и ВТ
Название: Информатика и ВТ Раздел: Рефераты по информатике, программированию Тип: шпаргалка |
Информатика и вычислительная техника Задание. Вычислить произведение элементов массива, превышающих заданное число С, то есть yk > C, для х Î[a,b] и изменяющегося с шагом h. yk =1 + x + Ö x, где x < 5 yk =Ö 2 – cosx, где 5 £ x £ 8 yk =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. Текст программы. 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. Составить программу для вычисления значения х и произвести вычисления на компьютере. 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. Составить структурную схему и написать программу вычисления значения у(х) для любого значения аргумента х. y =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. 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. Программирование алгоритмов циклической структуры с использованием массивов. Задание 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. |