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


Ответ
 
Опции темы Опции просмотра
Старый 17.06.2012, 20:53   #1 (permalink)
ololo111
Новичок
 
Регистрация: 17.06.2012
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Создать две Паскаль программы по готовым блок-схемам

Блоки правильные! но задание под ними. помогите кто-нибудь.
Миниатюры
1.jpg   2.jpg  
ololo111 вне форума   Ответить с цитированием

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

Участники форума уже создавали что то похожее, обратите внимание

Посчитать кусок программы, Паскаль
Нужно создать блок-схемы по кодам программы. Delphi
Помогите создать блок-схему
Создать файл для результатов работы программы

Старый 17.06.2012, 21:08   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

В первом задании в f(u,v) во второй строке - сумма u+v в круглых скобках или под знаком абсолютной величины?
Vladimir_S вне форума   Ответить с цитированием
Старый 17.06.2012, 21:23   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

... и молчанье гробовое было ему ответом... Ладно, вроде каракули на блок-схеме показывают, что всё-таки абсолютная величина. Между прочим, следовать блок-схеме я не собираюсь: там наворочена куча промежуточных переменных (H,G), абсолютно ненужных и бессмысленных. Детский сад какой-то. Вот:
Код:
Var
 x,y,z:Real;

Function f(u,v:Real):Real;
begin
 If u*v>0 then f:=Ln(Abs(u))+Ln(Abs(v)) else f:=Abs(u+v);
end;

Begin
 Write('x= ');
 Readln(x);
 Write('y= ');
 Readln(y);
 z:=f(Sqrt(Abs(x))+y,x)+f(Exp(x),Abs(y));
 Writeln('z= ',z:0:5);
 Readln
End.
Код:
Var
 A,B,h,x:Real;
 n,i:Byte;

Function f(z:Real):Real;
begin
 f:=z*Ln(2)*Ln(z)/Ln(10);
end;

Begin
 Write('A= ');
 Readln(A);
 Write('B= ');
 Readln(B);
 Write('n= ');
 Readln(n);
 h:=(B-A)/(n-1);
 x:=A;
 for i:=1 to n do
  begin
   write(i:2,'   x= ',x:3:1,'   y= ');
   if Abs(x)=0 then writeln('Not defined!') else writeln(f(x):6:3);
   x:=x+h;
  end;
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Старый 17.06.2012, 22:41   #4 (permalink)
ololo111
Новичок
 
Регистрация: 17.06.2012
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

этоо. а, извиняюсь, да в круглых
ololo111 вне форума   Ответить с цитированием
Старый 17.06.2012, 22:51   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от ololo111 Посмотреть сообщение
этоо. а, извиняюсь, да в круглых
Точно? А то на блок-схеме я вижу вертикальные! Но если круглые, то в функции после else уберите ABS.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 17.06.2012, 23:07   #6 (permalink)
ololo111
Новичок
 
Регистрация: 17.06.2012
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

else f:=(u+v); получается... ответ не изменился, чё-то с проверкой не сходится, ни в 1м ни во 2м...
в 1м при Х=1 и У=0, в выводе Z=2.17
при Х=1 и У=1, в выводе Z=-0.08


во втором при A=1; B=1; N=2, в выводе X=1; I=2
этоо
ololo111 вне форума   Ответить с цитированием
Старый 18.06.2012, 10:20   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Так, ну это уже вообще черт-те-что. И сбоку бантик.
Цитата:
Сообщение от ololo111 Посмотреть сообщение
else f:=(u+v); получается... ответ не изменился, чё-то с проверкой не сходится, ни в 1м ни во 2м...
Значит, говорите, "не сходится"? Ну что же, будем проверять:
ddd_1.jpg
Теперь смотрим результат работы программы:
ddd_2.jpg
Цитата:
Сообщение от ololo111 Посмотреть сообщение
в 1м при Х=1 и У=0, в выводе Z=2.17 при Х=1 и У=1, в выводе Z=-0.08
Значит так. Не сходится - и сходиться не должно! А если должны получиться приведенные Вами числа, то это значит, что Вы напортачили в формулах. И больше это не означает ничего.
Цитата:
Сообщение от ololo111 Посмотреть сообщение
во втором при A=1; B=1; N=2, в выводе X=1; I=2
Ну да, так и получается. И что не устраивает?
ddd_3.jpg

Этоо
Vladimir_S вне форума   Ответить с цитированием
Старый 18.06.2012, 19:27   #8 (permalink)
ololo111
Новичок
 
Регистрация: 17.06.2012
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

во 2м ответ кагбы непонятный, ну всёравно спасибо
ololo111 вне форума   Ответить с цитированием
Ads

Яндекс

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


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

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




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

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