Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 16.12.2011, 16:08   #1 (permalink)
Juliet
Member
 
Регистрация: 16.12.2011
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите, пожалуйста, с программой на Паскале

Заданы четыре вектора x={x1,x2,x3}; y={y1,y2,y3}; z={z1,z2,z3,z4} и p={p1,p2,p3,p4}. Логической переменной a присвоить значение TRUE, если скалярное произведение векторов x и y больше скалярного произведения векторов z и p и значение FALSE, в противном случае.
Вычисление скалярного произведения оформить в виде процедуры.
Исходные данные: x=(1;2;3); y=(2,5;6;3,2); z=(3,7;1,2;6,4;-5,3); p=(-1;4;1;-2)
Juliet вне форума   Ответить с цитированием

Старый 16.12.2011, 16:08
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Пока вам дают ответы вы можете почитать похожие темы

Помогите пожалуйста с программой на паскале
Помогите, пожалуйста, с программой

Старый 16.12.2011, 16:18   #2 (permalink)
Juliet
Member
 
Регистрация: 16.12.2011
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

И вот еще одна...))
Проверить численно первый замечательный предел lim(x→∞)(sin(x)/x)=1, задавая x значения 1; 1/2; 1/4; 1/8;… до тех пор, пока левая часть равенства не будет отличаться от правой менее, чем на заданную погрешность Ɛ.
Juliet вне форума   Ответить с цитированием
Старый 16.12.2011, 16:28   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Так устроит?
Код:
TYPE
 Vect=Array[1..4] of Real;
CONST
 x:Vect=(1,2,3,0);
 y:Vect=(2.5,6,3.2,0);
 z:Vect=(3.7,1.2,6.4,-5.3);
 p:Vect=(-1,4,1,-2);

Function SP(M1,M2:Vect):Real;
var
 j:Byte;
 Sum:Real;
begin
 for j:=1 to 4 do
  Sum:=Sum+M1[j]*M2[j];
 SP:=Sum;
end;

BEGIN
 Write(SP(x,y)>SP(z,p));
 Readln;
END.
Vladimir_S вне форума   Ответить с цитированием
Старый 16.12.2011, 16:35   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Juliet Посмотреть сообщение
И вот еще одна...))
Проверить численно первый замечательный предел lim(x→∞)(sin(x)/x)=1, задавая x значения 1; 1/2; 1/4; 1/8;… до тех пор, пока левая часть равенства не будет отличаться от правой менее, чем на заданную погрешность Ɛ.
Ладно, проверим:
Код:
CONST
 Eps=0.00001;
VAR
 i:Word;
 x:Real;
BEGIN
 i:=0;
 Repeat
  i:=i+1;
  x:=1.0/i;
 Until ABS(Sin(x)/x-1)<Eps;
 Writeln('i= ',i,'   Result= ',Sin(x)/x:0:6);
 Readln;
END.
Vladimir_S вне форума   Ответить с цитированием
Старый 16.12.2011, 16:36   #5 (permalink)
Juliet
Member
 
Регистрация: 16.12.2011
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо большое, но надо именно процедурой сделать...)
Juliet вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 16.12.2011, 16:36   #6 (permalink)
Juliet
Member
 
Регистрация: 16.12.2011
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Ладно, проверим:
Код:
CONST
 Eps=0.00001;
VAR
 i:Word;
 x:Real;
BEGIN
 i:=0;
 Repeat
  i:=i+1;
  x:=1.0/i;
 Until ABS(Sin(x)/x-1)<Eps;
 Writeln('i= ',i,'   Result= ',Sin(x)/x:0:6);
 Readln;
END.
Спасибо огромное)))
Juliet вне форума   Ответить с цитированием
Старый 16.12.2011, 16:43   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Juliet Посмотреть сообщение
Спасибо большое, но надо именно процедурой сделать...)
Да пожалуйста:
Код:
TYPE
 Vect=Array[1..4] of Real;
CONST
 x:Vect=(1,2,3,0);
 y:Vect=(2.5,6,3.2,0);
 z:Vect=(3.7,1.2,6.4,-5.3);
 p:Vect=(-1,4,1,-2);

VAR
 R1,R2:Real;

Procedure SP(M1,M2:Vect;var Res:Real);
var
 j:Byte;
begin
 Res:=0;
 for j:=1 to 4 do
  Res:=Res+M1[j]*M2[j];
end;

BEGIN
 SP(x,y,R1);
 SP(z,p,R2);
 Write(R1>R2);
 Readln;
END.
Vladimir_S вне форума   Ответить с цитированием
Старый 16.12.2011, 17:06   #8 (permalink)
Juliet
Member
 
Регистрация: 16.12.2011
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Код:
TYPE
Vect=Array[1..4] of Real;
CONST
x:Vect=(1,2,3,0);
y:Vect=(2.5,6,3.2,0);
z:Vect=(3.7,1.2,6.4,-5.3);
p:Vect=(-1,4,1,-2);

VAR
R1,R2:Real;

Procedure SP(M1,M2:Vect;var Res:Real);
var
j:Byte;
begin
Res:=0;
for j:=1 to 4 do
Res:=Res+M1[j]*M2[j];
end;

BEGIN
SP(x,y,R1);
SP(z,p,R2);
Write(R1>R2);
Readln;
END.
__________________
Хм...спасибо...но что-то не работает она... Здесь ошибку выдает: x:Vect=(1,2,3,0);
Juliet вне форума   Ответить с цитированием
Старый 16.12.2011, 17:27   #9 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Juliet Посмотреть сообщение
Хм...спасибо...но что-то не работает она... Здесь ошибку выдает: x:Vect=(1,2,3,0);
Ну, не знаю - естественно, перед выкладыванием программы тестировались. У меня работают безупречно. А что у Вас за Паскаль? Если АВС, то я против его глюков - пас.
Да, и напишите подробнее - что за ошибка? Что пишет?
Vladimir_S вне форума   Ответить с цитированием
Старый 16.12.2011, 17:41   #10 (permalink)
Juliet
Member
 
Регистрация: 16.12.2011
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
А что у Вас за Паскаль? Если АВС, то я против его глюков - пас.
Да, ABC Pascal у меня...

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Да, и напишите подробнее - что за ошибка? Что пишет?
Пишет: ожидалось равенство "=" и курсор ставит между x и :
Juliet вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 01:45.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.