Составить программу для вычисления значения функции f(x)=x*cos(1/x)+2 на отрезке [a, b] с шагом h. результаты представить в виде таблицы (1-ый столбец - значения аргумента, 2- ой -значение функции
Const n = 10; var a,b,h,x: real; begin writeln('a , b , h ='); read(a, b, h); x : = a - h; writeln('x': n, ' | ', 'y': n); repeat x : = x + h; writeln(x: n: 3, ' | ', (x * cos(1 / x) + 2): n: 3); until x > = b; end.
ievlevasnezhana7
19.06.2020
Первый допустим. 2) k: =10; не должен быть допустим, поскольку 10 не входит в 0..9. умолчанию паскаль игнорирует эту ошибку, позволяя даже 255 присвоить.третий оператор допустим.4) k: ='5'; недопустимо, потому что нельзя преобразовать тип char в правой части к типу 0..9, являющемуся подмножеством однобайтных целых. 5) k: =ord(d); в таком виде записать нельзя, потому что d нигде не описано. если предположить, что на месте d находится цифра, то оператор допустим. 6) k: =ord(d)-ord('0'); как и для 2) - оператор не должен быть но он допустим. допустим он будет и в варианте k: =ord(d)-ord(0), даже когда выдаст отрицательные значения.все это сужает область возможного применения данных типа "диапазон" и в целом типа "set of ". не позволяя во многих случаях использовать их для организации эффективных проверок . например, для можно было бы описать диапазон 6..18 для контроля принадлежности возраста к школьному. можно было но, как выясняется, нельзя.
keti0290103
19.06.2020
Function posblank(s: string; cursor: integer): integer; {возвращает позицию первого пробельного символа в строке s, начиная с позиции, указанной cursor. если такого символа нет, возвращает 0.} var n: integer; begin n : = length(s); while (s[cursor] < > ' ') and (cursor < n) do cursor : = cursor + 1; if cursor = n then if s[cursor] = ' ' then posblank : = n else posblank : = 0 else posblank : = cursor end; function posnonblank(s: string; cursor: integer): integer; {возвращает позицию первого непробельного символа в строке s, начиная с позиции, указанной cursor. если такого символа нет, возвращает 0.} var n: integer; begin n : = length(s); while (s[cursor] = ' ') and (cursor < n) do cursor : = cursor + 1; if cursor = n then if s[cursor] = ' ' then posnonblank : = 0 else posnonblank : = n else posnonblank : = cursor end; procedure getword(s: string; var cursor: integer; var wd: string); {процедура помещает в wd очередное слово из строки s начало слова указано в cursor, после завершения процедуры cursor будет указывать на первый пробельный символ, следующий за найденным словом. лидирующие и хвостовые пробельные символы усекаются. если слово не найдено, то в wd помещается пустая строка} var n, ibegin: integer; begin n : = length(s); if n> 0 then begin cursor : = posnonblank(s, cursor); if cursor > 0 then begin ibegin : = cursor; cursor : = posblank(s, cursor); if cursor > 0 then wd : = copy(s, ibegin, cursor - ibegin) else wd : = copy(s, ibegin, n - ibegin + 1) end else wd : = '' end else begin wd: =''; cursor: =0 end end; var c, cc, w: string; ic: integer; fin, fout: text; begin assign(fin, 'input.txt'); reset(fin); assign(fout, 'output.txt'); rewrite(fout); while not eof(fin) do begin ic : = 1; cc : = ''; readln(fin, c); while ic > 0 do begin getword(c, ic, w); if w < > '' then cc : = cc + ' ' + w end; cc : = copy(cc, 2, length(cc) - 1); writeln(fout, cc) end; close(fin); close(fout); end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Составить программу для вычисления значения функции f(x)=x*cos(1/x)+2 на отрезке [a, b] с шагом h. результаты представить в виде таблицы (1-ый столбец - значения аргумента, 2- ой -значение функции