Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ Pascal!

Автор: baby_blues 16.12.2011, 14:35

Помогите, пожалуйста с задачей.
Не могу найти у себя ошибку.
Условие: вычислить и напечатать таблицу значений функции для 40 значений аргумента, задаваемых по вводу.
с=0.85
при x<=-1 y=c*sqrt(x*x+1)
при -1<x<=1 y=x*x*x +с
при x>1 y=c*ln(x)

Моё решение:
program lab;
uses crt;
const c=0.85;
type mass=array[1..40] of real;
var y:real;
x:mass;
i: integer;
n: text;
begin
clrscr;
writeln('Введите x');
readln(x[i]);
x[i]:=0;
for i:=1 to 40 do
if (x[i]<=-1) then y:=c*sqrt(x[i]*x[i]+1);
if (x[i]>-1) and (x[i]<=1) then y:=x[i]*x[i]*x[i]+c;
if (x[i]>1) then y:=c*ln(x[i]);
writeln('x[i]=',x[i]:7:2,' y=',y:7:2);
close(n);
end.

Заранee спасибо!

Автор: граф Монте-Кристо 16.12.2011, 15:06

Считывать нужно, во-первых, в цикле - все 40 входных чисел, а Вы считываете одно, причём не очень понятно, куда, поскольку i у Вас не определено. А потом Вы ещё зачем-то обнуляете x[i].
Ну и ещё у Вас n не определено.

Автор: baby_blues 16.12.2011, 17:31

Спасибо! программа работает!

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)