Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пример выполнения заданий на Pascale.doc
Скачиваний:
17
Добавлен:
15.02.2015
Размер:
421.89 Кб
Скачать

Тема 1. Арифметика действительных чисел. Вычисления по формулам Задача 11 в

Задание: Даны x, y, z. Вычислить a, b если

Математическое обоснование:

Вданных формулах трудность представляет только нахождение значения числа в сложной степени. Эта задача решается представлением степени через натуральный логарифм:

= =exp(b*ln(a))

Алгоритм:

  1. Вводим значения x, y, z;

  2. Вычисляем a и b ;

  3. Выводим результат.

Блок-схема:

Реализация:

program t1_num11v;

var

x,y,z,a,b:real;

begin

Write('x=');

Readln(x);

Write('y=');

Readln(y);

Write('z=');

Readln(z);

a:=exp(exp(1/3*ln(abs(x)))*ln(y))+sqr(cos(y-3))*cos(y-3);

b:=abs(x-y)*(1+sqr(sin(z))/(x+y))/(exp(abs(x-y))+x/2);

Writeln('Ответ: ');

Writeln('a=',a:10:6);

Writeln('b=',b:10:6);

Readln;

end.

Протокол:

  1. В процессе диалога с пользователем вводим значения x=1, y=2, z=3;

  2. Вычисление а= exp(exp(1/3*ln(abs(x)))*ln(y))+sqr(cos(y-3))*cos(y-3);

  3. Вычисление b= abs(x-y)*(1+sqr(sin(z))/(x+y))/(exp(abs(x-y))+x/2);

4) Печать ‘a=2.157729’

5) Печать ‘b=0.312787’

Задача 31 и.

Задание: Дано действительное число a. Не пользуясь никакими другими арифметическими

операциями, кроме умножения, получить

за 6 операций.

Алгоритм:

1) Вводим значение а ;

  1. Вычисляем b ;

  2. Выводим результат.

Блок-схема:

Реализация:

program t1_num31i;

var

a,b:extended;

begin

Write('a=');

Readln(a);

b:=a*a*a;

b:=b*b*a;

b:=b*b*b;

Writeln('Число a в 21-ой степени :',b:10:6);

Readln;

end.

Протокол:

  1. В процессе диалога вводим значение а=3

  2. Вычисляем b=a*a*a;

  3. Вычисляем b=b*b*a;

  4. Вычисляем b=b*b*b;

  5. Печать 'Число a в 21-ой степени : 10460353203.000000'

Тема 2. Разветвления

Задача 13.

Задание:

Даны действительные числа x, y. Если x и y отрицательны, то каждое значение заменить его модулем; если отрицательно только одно из них, то оба значения увеличить на 0.5; если оба значения неотрицательны и ни одно из них не принадлежит отрезку [0.5; 2.0], то оба значения уменьшить в 10 раз; в остальных случаях x и y оставить без изменений.

Алгоритм:

  1. Вводим значения x, y

  2. Проверяем соответствие значений введенных чисел условиям, указанным в задаче

  3. Изменяем значения соответственно условию

  4. Выводим на экран результат

Блок-схема:

Реализация:

program t2_num13;

var

x,y:real;

begin

Writeln('Введите действительные x, y');

Write('x=');

Readln(x);

Write('y=');

Readln(y);

if (x<0) and (y<0) then

begin

x:=abs(x);

y:=abs(y);

end

else

if ((x<0) and (y>=0)) or ((x>=0) and (y<0)) then

begin

x:=x+0.5;

y:=y+0.5;

end

else

if ((x<0.5) or (x>2)) and ((y<0.5) or (y>2)) then

begin

x:=x/10;

y:=y/10;

end;

Writeln('Результат :',x:8:4,', ',y:8:4);

Readln;

end.

Протокол:

  1. В процессе диалога вводим x=1, y=1;

2.1) Условие (x<0) и (y<0) не выполняется переход к шагу 2.2;

2.2) Условие отрицательности только одного элемента не выполняется (x>0, y>0) переход к шагу 2.3;

2.3) x, y входят в область [0.5; 2.0]переход к шагу 3;

3) Печать значений переменных: x=1, y=1.