Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2009, 08:02   #1
Бурундук
Пользователь
 
Аватар для Бурундук
 
Регистрация: 13.10.2009
Сообщений: 21
По умолчанию Pascal - Циклы и подпрограммы

1. Составить программу вычислении значений функции F(x) на отрезке [a; b] с шагом h. Результат представить в виде таблицы, первый столбец которой — значения аргумента, второй — соответствующие значения функции:F(x)=sinX-cosX, a=0, b=P/2, h=P/20

2. Вычислить: sin x +sin x2+ … + sin xn.

3. Написать программу вычисления суммы факториалов всех нечетных чисел от 1 до 9.
Заранее благодарю
Если возможно - с комментариями, что к чему
Бурундук вне форума Ответить с цитированием
Старый 13.10.2009, 08:24   #2
Consol
Пользователь
 
Регистрация: 19.08.2009
Сообщений: 89
По умолчанию

Если возможно то вам без наработок во фриланс
Consol вне форума Ответить с цитированием
Старый 13.10.2009, 08:52   #3
Бурундук
Пользователь
 
Аватар для Бурундук
 
Регистрация: 13.10.2009
Сообщений: 21
По умолчанию

По поводу 1ой задачи есть :
Код:
var Rez : array[1..100, 1..100] of real;
x,a,b,h:real;
n,i:integer;

 begin
 x:=a;
 h:=Pi/20;
 n:=0;
 while x <= b do
 begin
 n := n+1;
      Rez[n, 1] := x; // аргумент
      Rez[n, 2] := sin(x)-cos(x); // знач функции
      x := x + h;
 end ;
 writeln('Rezultat :');
 writeln('Argument  Znachenie func ');
 for i:= 1 to n do
    writeln(Rez[i,1]:10:2, ' ', Rez[i,2]:10:2);
    readln;
 end.
Только не уверен что она правильно считает

Последний раз редактировалось Stilet; 13.10.2009 в 09:13.
Бурундук вне форума Ответить с цитированием
Старый 13.10.2009, 09:19   #4
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Можно в масив не записывать, а сразу выводить.

После строки n:=1; еще допишите b:=Pi/2; И тут
Код:
 while x <= b do
 begin
 n := n+1;
      Rez[n, 1] := x; // аргумент
      Rez[n, 2] := sin(x)-cos(x); // знач функции
      x := x + h;
 end ;
сделайте так
Код:
 while x <= b do
 begin
      Rez[1, n] := x; // аргумент
      Rez[2, n] := sin(x)-cos(x); // знач функции
      x := x + h;
      n := n+1;
 end ;
Тогда тут
Код:
 for i:= 1 to n do
    writeln(Rez[i,1]:10:2, ' ', Rez[i,2]:10:2);
Нужно так
Цитата:
for i:= 1 to n do
writeln(Rez[1,i]:10:2, ' ', Rez[2,i]:10:2);
Но это лично мое мнение, просто в строку масива красивее

Последний раз редактировалось Stilet; 13.10.2009 в 13:17.
profi вне форума Ответить с цитированием
Старый 13.10.2009, 09:26   #5
Бурундук
Пользователь
 
Аватар для Бурундук
 
Регистрация: 13.10.2009
Сообщений: 21
По умолчанию

Цитата:
Сообщение от profi Посмотреть сообщение
После строки n:=0; еще допишите b:=Pi/2; И тут
Код:
 while x <= b do
 begin
 n := n+1;
      Rez[n, 1] := x; // аргумент
      Rez[n, 2] := sin(x)-cos(x); // знач функции
      x := x + h;
 end ;
сделайте так
Код:
 while x <= b do
 begin
      Rez[1, n] := x; // аргумент
      Rez[2, n] := sin(x)-cos(x); // знач функции
      x := x + h;
      n := n+1;
 end ;
Тогда тут
Код:
 for i:= 1 to n do
    writeln(Rez[i,1]:10:2, ' ', Rez[i,2]:10:2);
Нужно так

Но это лично мое мнение, просто в строку красивее
Пасиб, всё работает
осталось со 2ой и 3ей разобратся
Бурундук вне форума Ответить с цитированием
Старый 13.10.2009, 09:32   #6
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

А еще одно напишие не n:=0; а n:=1;
Вторая задача не сложная. Делаете массив sinx:array[1..10] of integer; заполняете его числами после этого каждый элемент массива у вас будет x1, x2 и т.д. тогда делаете так в цикле
Код:
sum:=sum+sin(sinx[i]);
profi вне форума Ответить с цитированием
Старый 13.10.2009, 17:53   #7
Бурундук
Пользователь
 
Аватар для Бурундук
 
Регистрация: 13.10.2009
Сообщений: 21
По умолчанию

Код:
function summa(n:integer):longint;
var
  k:longint;
  i:byte;
begin
k:=1;
i:=2;
while i<=n do
 begin
  k:=k*i;
  inc(Result,k);
  inc(i,2);
 end;
end;

var
  n:integer;
begin
repeat
write('vvedite n: ');readln(n);
until ((n<10)and(n mod 2 = 1));
writeln('summa ryada 1!+3!+5!+...+9! :  ', summa(n));
readln;
end.
3-ю задачу так можно решить? =)

Последний раз редактировалось Бурундук; 13.10.2009 в 17:56.
Бурундук вне форума Ответить с цитированием
Старый 13.10.2009, 18:10   #8
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Вот Вам факториал:
Код:
function f(x:integer):LongInt;
var 
 i:integer;
 n:LongInt;
begin
 n:=1;
 for i:=1 to x do n:=n*i;
 f:=n;
end;
Прикрутите ему вызов определенных чисел и все.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 13.10.2009, 19:14   #9
Бурундук
Пользователь
 
Аватар для Бурундук
 
Регистрация: 13.10.2009
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Вот Вам факториал:
Код:
function f(x:integer):LongInt;
var 
 i:integer;
 n:LongInt;
begin
 n:=1;
 for i:=1 to x do n:=n*i;
 f:=n;
end;
Прикрутите ему вызов определенных чисел и все.
С этим сложней
Бурундук вне форума Ответить с цитированием
Старый 13.10.2009, 19:42   #10
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Код:
For i:=1 to 9 do
 If i mod 2=1 then 
  Begin
   J:=F(i);
   Writeln(J);
  End;
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Циклы в Pascal Кара Помощь студентам 2 02.10.2009 23:21
Pascal.Циклы. Задача NitriNKa Помощь студентам 2 02.05.2009 13:29
[Pascal] Функции и процедуры(подпрограммы) Рамик Помощь студентам 2 23.03.2009 17:00
Циклы (Pascal) Дима82 Помощь студентам 4 07.06.2008 17:07