Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/88: Рейтинг темы: голосов - 88, средняя оценка - 4.72
 Аватар для Limb0
20 / 20 / 0
Регистрация: 22.01.2012
Сообщений: 88

Протабулировать функцию y = sinx на промежутке [0; 3,1], с шагом h = 0,1 и вычислить среднее арифметическое

22.01.2012, 21:11. Показов 17312. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот условие задачи:
Протабулировать функцию y = sinx на промежутке [0; 3,1],
с шагом h = 0,1 и вычислить среднее арифметическое (s1) значений функции больших, чем 0,1 и меньших, чем 0,6.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uses crt;
var x,y,s,s1,h,xk:real;n:integer;
begin
clrscr;
x:=0; xk:=3.1; h:=0.1;
s:=0; n:=0;
while x<=xk+h/2 do
begin
y:=sin(x);
writeln(x:3:1, y:6:2);
if (y>0.1) and (y<0.6) then
begin s:=s+y; n:=n+1 end;
x:=x+h;
end;
if n>0 then
begin s1:=s/n; writeln('Середнее=',s1) end
else writeln('Таких значений нет n=0');
readln
end.
Почему здесь пишем while x <= xk + h / 2 do а не while x <= xk do
И зачем здесь if n>0 then
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.01.2012, 21:11
Ответы с готовыми решениями:

Протабулировать функцию y = sinx на промежутке [0; 3,1], с шагом h = 0,1 и рассчитать среднее арифметическое (Sl)
1. Протабулировать функцию y = sinx на промежутке , с шагом h = 0,1 и рассчитать среднее арифметическое (Sl) значений функций больших, чем...

Протабулировать функцию на промежутке a и b с шагом h вычислить произведение максимальных и минимальных значений функции
Протабулировать функцию на промежутке a и b с шагом h вычислить произведение максимальных и минимальных значений функции (Cи или на языке...

Протабулировать функцию на промежутке от а до b с шагом n
Протабулировать функцию на промежутке от а до b с шагом n согласно приложению. приложение----&gt;((sqrt(x-2))+1)/x-2) Материальное...

7
206 / 182 / 104
Регистрация: 10.01.2011
Сообщений: 302
22.01.2012, 22:29
Цитата Сообщение от Limb0 Посмотреть сообщение
Почему здесь пишем while x <= xk + h / 2 do а не while x <= xk do
Из-за неточностей вычислений с плавающей точкой
Цитата Сообщение от Limb0 Посмотреть сообщение
И зачем здесь if n>0 then
Цитата Сообщение от Limb0 Посмотреть сообщение
вычислить среднее арифметическое (s1) значений функции больших, чем 0,1 и меньших, чем 0,6.
Если таких значений не окажется, то не будет и их среднего арифметического.
1
 Аватар для Limb0
20 / 20 / 0
Регистрация: 22.01.2012
Сообщений: 88
22.01.2012, 22:38  [ТС]
То есть, как я понял h/2 здесь добавлено для того чтобы получился более точный ответ.

P.S Вы не знаете как отключить показ непрочитанных сообщений на сайте.
0
0 / 0 / 0
Регистрация: 17.01.2012
Сообщений: 10
22.01.2012, 23:05
эм... посмотрите что делать в моем случае.мне кажется есть что то общее.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Program Chisl;
 
var
  {Opredelim peremennye dlya hraneniya dannyh}
  N,counter:Integer;i:Byte;
begin
 
  {Vvedem N}
  Write('Vvedite N ne bolee 7 simvolov ');Readln(N);
 
  {Prisvoim schetchiku znachenie 1}
  counter:=1;
 
  {Zapustim cicle ot 1 do 7}
  for i:=1 to 7 do
    begin
 
      {Primenin celochislennoe delenie k vvedennomu chislu}
      N:=N div 10;
 
      {Esli ostatok est to uvelichim schetchik inache zavershim cicle}
      if (N > 0 ) then
        counter := counter+1;
        Writeln('count = ',counter)
      else
        writeln('4islo bolee semi znakov');
           Break;
    end;
 
  Readln;
end.
таким образом курсор перед else и Error 85: '';'' expected.
пробую исправить.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
--------
  for i:=1 to 7 do
    begin
 
      {Primenin celochislennoe delenie k vvedennomu chislu}
      N:=N div 10;
 
      {Esli ostatok est to uvelichim schetchik inache zavershim cicle}
      if (N > 0 ) then
        counter := counter+1;
        Writeln('count = ',counter);
      else
        writeln('4islo bolee semi znakov');
        Break;
    end;
  Readln;
end.
------
таким образом курсор перед else и Error 113 : Error in statement.

и еще раз пытаюсь исправить

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
--------
  for i:=1 to 7 do
    begin
 
      {Primenin celochislennoe delenie k vvedennomu chislu}
      N:=N div 10;
 
      {Esli ostatok est to uvelichim schetchik inache zavershim cicle}
      if (N > 0 ) then begin
        counter := counter+1;
        Writeln('count = ',counter); end
      else
        writeln('4islo bolee semi znakov');
           Break;
    end;
 
  Readln;
end.
------
ошибок нет. но программа перестает работать вообще.

смысл задания таков.Составить программу, определяющую число цифр в натуральном не более чем семизначном числе N
0
206 / 182 / 104
Регистрация: 10.01.2011
Сообщений: 302
22.01.2012, 23:27
Цитата Сообщение от Limb0 Посмотреть сообщение
То есть, как я понял h/2 здесь добавлено для того чтобы получился более точный ответ.
Чтобы последнее значение из заданного диапазона попало в цикл. (у вас: 3,1)

Цитата Сообщение от OverLord71 Посмотреть сообщение
Составить программу, определяющую число цифр в натуральном не более чем семизначном числе N
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uses crt;
var
  n: LongInt;
  k: Integer;
begin
  repeat
    ClrScr;
    Write('Введите число (не более 7 разрядов) ');
    Readln(n);
  until (n>0) and (n<10000000);
  k:=1;
  while n div 10>0 do
  begin
    n:=n div 10;
    Inc(k);
  end;
  Writeln(k);
  Readkey;
end.
1
0 / 0 / 0
Регистрация: 17.01.2012
Сообщений: 10
22.01.2012, 23:31
Andyc, спасибо,но я не снаком с такими вещами как repeat\until\while
попробывал взять вашу строку
Pascal
1
(n>0) and (n<10000000)
но все равно не работает(((
работает в случае если число одно или двузначное.дальше на трехзначные числа и больше выводит двойку.
0
206 / 182 / 104
Регистрация: 10.01.2011
Сообщений: 302
22.01.2012, 23:41
Вот вашу переделал. У N должен иметь тип LongInt, так как Integer не может быть больше 32767
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Program Chisl;
 
var
  {Opredelim peremennye dlya hraneniya dannyh}
  N: LongInt;
  counter:Integer;i:Byte;
begin
 
  {Vvedem N}
  Write('Vvedite N ne bolee 7 simvolov ');Readln(N);
 
  {Prisvoim schetchiku znachenie 1}
  counter:=1;
 
  {Zapustim cicle ot 1 do 7}
  for i:=1 to 7 do
    begin
 
      {Primenin celochislennoe delenie k vvedennomu chislu}
      N:=N div 10;
 
      {Esli ostatok est to uvelichim schetchik inache zavershim cicle}
      if (N > 0 ) then counter := counter+1
      else Break;
    end;
    if N>0 then  writeln('4islo bolee semi znakov')
    else Writeln('count = ', counter);
  Readln;
end.
1
 Аватар для Limb0
20 / 20 / 0
Регистрация: 22.01.2012
Сообщений: 88
23.01.2012, 19:35  [ТС]
Andyc
Спасибо +1. Сначала не совсем понимал о чем вы говорите но после прочтения этой http://http://xpoint.ru/know-h... intNumbers мне стало все понятно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.01.2012, 19:35
Помогаю со студенческими работами здесь

Протабулировать функцию X^n на промежутке [а; b] c шагом E
Протабулировать X в степени n на промежутке c шагом E Я написал так, но а не меняется int P=1; for(;a&lt;=b;a+=E) { for...

Протабулировать функцию на промежутке [1: 8] с шагом 0,6

Протабулировать функцию y = sin (x) на промежутке [0; pi] с шагом 0.1
Задача в паскале немогу решыть 1. Протабулировать функцию y = sin (x) на промежутке с шагом 0.1. Результаты вычислений вывести на...

Протабулировать функцию на промежутке с заданным шагом
Протабулировать функцию у = 4cos (х2-2) на промежутке с шагом h = 0,02. Результаты вычислений вывести на экран в виде таблицы. Вычислить...

Протабулировать функцию z (x) на некотором промежутке (a; b) с шагом h
#include&lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; float z(float x, float y = 1.5) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru