Консультация № 155683
24.12.2008, 22:09
0.00 руб.
0 2 1
уважаемые эксперты!!!вот такой вопрос,помогите решить задание или подскажите что я не так делаю
1)задание: Вычислить значение двух функций для различных значений аргумента в диапазоне от "а" до "в" с шагом "h"(а в и h задаются,а<в)
результат вычислений оформляется ввиде таблицы.Если при каком-либо значении х функция неопределен,то в таблицу поместить символ "-"
сами функции:
y=tg(x)+1/sqrt(x*x-9)
z=exp(sqrt(x))+ln(x) // то есть е в степени корень из х //

2)Дана матрица
переслать в одномерный массив элементы матрицы,выделенные черным цветом(номера строк изменяются от i1 до i2, номера колонок от j1 до j2
( так же внизу дается рисунок,нарисован квадрат,а в нём ещё один только этот закрашен в черный цвет,квадрат в квадрате,только внутренний черный)

помогите пожалуйста,люди добрые



Приложение:
program ss;
const eps=0.000000000000001;
var a,b,h,x,y,z:real;

begin
Writeln('задайте a,b,h ');
readln(a,b,h);
writeln('x y z ');
x:=a;
while a<=b+eps do
begin
writeln(x:12:6);
if (x*x-9<=0) or (abs(cos(x))<eps) then write('-')
else
begin
y:=sin(x)/cos(x)+1/(sqrt(sqr(x)-9));
write(y:12:6);
end;
if x<=0 then write('----')
else
begin
z:=exp(sqrt(x))+ln(x);
writeln(z:12:6);
end;
x:=x+h;
end;
end.
у меня строки съезжаю и как то выводит не так результат,может конечно я ошибаюсь

Обсуждение

давно
Профессор
401888
1232
25.12.2008, 12:16
общий
Поскольку ко второй задаче никакого квадрата нет, попробуйте как-то изобразить пример здесь, например разным цветом цифр, иначе залачу не решить.

С первой разобрался.
давно
Профессор
401888
1232
25.12.2008, 13:11
общий
это ответ
Здравствуйте, Neoden!
Исправил Вашу первую задачу, вроде нормально выводит. Главная Ваша ошибка вместо
while a<=b+eps do
begin
нужно
while х<=b+eps do
begin

Код в приложении. Вторую сделаю добавлю.

Приложение:
program ss;
uses crt;
const eps=0.0000001;
var a,b,h,x,y,z:extended;
begin
clrscr;
Writeln('Vvedite a,b,h ');
readln(a,b,h);
writeln('x':3,'y':9,'z':12);
x:=a;
while x<=b+eps do
begin
write(x:5:2);
if (x*x-9<=0) or (abs(cos(x))<eps) then write(' - ')
else
begin
y:=sin(x)/cos(x)+1/sqrt(x*x-9);
write(y:12:6);
end;
if x<=0 then write(' - ')
else
begin
z:=exp(sqrt(x))+ln(x);
write(z:12:6);
end;
writeln;
x:=x+h;
end;
readln
end.

Форма ответа