Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

задачи на турбо паскале

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> задачи на турбо паскале
Имя
Сообщение << Старые топики   Новые топики >>
задачи на турбо паскале - 2008-12-24 18:15:16.760000   
ylyaka

Сообщений: 4
Оценки: 0
Присоединился: 2008-12-24 16:19:14.093333
Здравствуйте… помогите пожалуйста решить несколько задач…неожиданностью стала для меня информатика,а сказали к экзамену решить,а он завтра 8( у меня паника,не знаю что делать!
Заранее всем огромнейшее спасибо!!!!!
Извините что я такая наглая,прост обстоятельства так неожиданно сложились( сейчас вот сижу читаю про палькаль…

Задание 1.Ввести с клавиатуры x, y и вычислить,используя метод промежуточного аргумента :
z=Ctg(1+|x+y|)-1+|x+y|^3
Задание 2.Ввести х и вычислить :
  {2|x+1| , Если x<-1
y={0 ,Если x=-1
  {lg|x+1| ,Если x>-1
Задание 3. Построить таблицу значений функции "у" на отрезке [a,b] с шагом "h" c приостановкой выдачи результатов через каждые N строк таблицы. Найти максимальное и минимальное значение "у" и соответствующие им значения аргумента "х".
y(x) = sin(x) +|sin(x)|
a=-5 ; b=10; h=0.2; N=10.
Замечание : таблица должна иметь следующий вид :
_____________________________________________
|_№_п/п_____|_______x________|________y______|
|____….______|______…______ _|_______…______|

Задание 4. Вычислить :
  tg 1     tg 3      tg 5           tg 19
S=—– - —– - —– - … - ——–
   3+2     5-3      7+4            21-11
Post #: 1
RE: задачи на турбо паскале - 2008-12-24 19:18:32.743333   
Zmaster

Сообщений: 930
Оценки: 0
Присоединился: 2007-02-09 19:02:43.500000
Я решу первое задание, если мне кто-нибудь объяснит, что такое метод промежуточного аргумента.
Post #: 2
RE: задачи на турбо паскале - 2008-12-24 21:28:31.320000   
Данила88

Сообщений: 38
Оценки: 0
Присоединился: 2008-12-06 14:44:29.386666
Стилистикой турбо паскаля не владею, однако структура такова:(Fortran77)
3)
dimension x(1000),y(1000)Объявление массивов аргумента и функции
read(*,*)a,b,h,nВВод данных
m=int((b-a)/h)+1 Установление количества шагов
do 1 i=1,m *
x(i)=a+h*(i-1) *
y(i)=sin(x)+abs(sin(x))*
p=i/n *
if(p-int(p).eq.0) then * Установление множеств зн-й аргументов и функции,вывод их по каналу 1,
pause * остановка через каждые n шагов
endif *
write(1,*)i,y(',i,'),x(',i,')*
1continue *
i=1
4continue
w=y(i)
r=y(i+1)
if(r.gt.w) then
go to 3
else
i=i+1
go to 4
endif
3continue
i=i+1
if(i.eq.m) then
go to 5 Остальное- установление max элемента
endif
go to 4
5continue
do 6 i=1,m
if(w.eq.y(i)) then
v=x(i)
6continue
write(1,*)w,v вывод max элемента
end
2)
read(*,*)x
if(x.lt.-1) then
y=2*abs(x-1)
endif
if(x.gt.-1) then
y=log(abs(x+1))
endif
if(x.eq.0) then
y=0
endif
write(1,*)y
end




Post #: 3
RE: задачи на турбо паскале - 2008-12-24 21:51:06.070000   
K1ller

Сообщений: 94
Оценки: 0
Присоединился: 2008-11-25 23:19:36.140000
var x,y :real; begin &nbsp;readln(x); &nbsp;if(x=-1) then y:=0; &nbsp;if(x&lt;-1) then y :=2*(1+x)*(-1); &nbsp;if(x&gt;-1) then y:=0.434*ln(x+1); &nbsp;writeln(y); end. Вторая
Post #: 4
RE: задачи на турбо паскале - 2008-12-24 22:55:00.686666   
ylyaka

Сообщений: 4
Оценки: 0
Присоединился: 2008-12-24 16:19:14.093333
Спасибо огромное Вам всем!Побольше бы таких отзывчивых людей на свете как Вы)
Post #: 5
RE: задачи на турбо паскале - 2008-12-24 23:06:17.286666   
K1ller

Сообщений: 94
Оценки: 0
Присоединился: 2008-11-25 23:19:36.140000
Var x,y,z,result,cosinus,sinus,cotangens : real; begin &nbsp;readln(x,y); &nbsp;z:=x+y; &nbsp;if(z&lt;0) then z:=z*-1; &nbsp;sinus:=sin(z+1); &nbsp;cosinus:=cos(z+1); &nbsp;cotangens:=cosinus/sinus; &nbsp;result:=cotangens-1+z*z*z; &nbsp;writeln(result); end. Певая
quote:

Я решу первое задание, если мне кто-нибудь объяснит, что такое метод промежуточного аргумента.

Действительно, что же это. То, что я написал, похоже?
 
Post #: 6
RE: задачи на турбо паскале - 2008-12-24 23:36:26.306666   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
quote:

ORIGINAL: Данила88

Стилистикой турбо паскаля не владею, однако структура такова:(Fortran77)


это прекрасно, чёрт возьми
Post #: 7
RE: задачи на турбо паскале - 2008-12-24 23:38:36.013333   
K1ller

Сообщений: 94
Оценки: 0
Присоединился: 2008-11-25 23:19:36.140000
Var x,a,b,h : real; ar : array[1..10000] of real; br : array[1..10000] of real; i,min,max : real; count,n,tmp,j,xmin,xmax : longint; begin &nbsp;writeln('Vvedyte&nbsp; a,b,h,n'); &nbsp;readln(a,b,h,n); &nbsp;min:=3; &nbsp;max:=-3; &nbsp;count:=1; &nbsp;i:=a; &nbsp;repeat &nbsp;ar[count]:=sin(i)+abs(sin(i)); &nbsp;br[count]:=i; &nbsp;if(ar[count]&gt;max) then begin max:=ar[count]; xmax:=count;&nbsp; end; &nbsp;if(ar[count]&lt;min) then begin min:=ar[count]; xmin:=count;&nbsp; end; &nbsp;inc(count); &nbsp;i:=i+h; &nbsp;until i&gt;b+h; &nbsp;tmp:=n; &nbsp;writeln('№&nbsp;&nbsp;&nbsp;&nbsp; x&nbsp;&nbsp;&nbsp;&nbsp; y'); &nbsp;for j:= 1 to count-1 do &nbsp;begin &nbsp; if j&gt;n then begin readln; n:=n+tmp; end; &nbsp; writeln(j,' ',br[j]:0:4,' ',ar[j]:0:4); &nbsp;end; &nbsp;writeln('min=',min:0:3,' v tochke ',br[xmin],' max=',max:0:3,' v tochke ',br[xmax]); end.
Третья. За безошибочную работу программы не отвечаю)) Введи пару тестов, проверь ее.
З.Ы Я думаю, для экзамена тебе хватит и трех задач. 4 бала обеспечено, если, конечно, препод не спросит как работает программа))
Post #: 8
RE: задачи на турбо паскале - 2008-12-25 00:35:06.116666   
ylyaka

Сообщений: 4
Оценки: 0
Присоединился: 2008-12-24 16:19:14.093333
Спасибо тебе огромное.
я вот тут поискала в инете и нашла вот такой вариант 3 задачи:

Program PRIMER_Tabl;
Uses CRT;
Const
    a=0; b=3; h=0.5;
Var
    x,y,maxf,maxx,minf,minx: real;
    k,n :integer;
    key: char;
Function F(xx:real):real;
    Begin
          F:=sqr(xx)*sin(xx)
     End;
Begin

ClrScr;
     x:=a; maxf:=-1e38; minf:=1e38;
     {Для рисования таблицы воспользуемся таблицей ASCII-кодов. Нужный символ можно
       получить, если при нажатой клавише ALT на дополнительной цифирной клавиатуре
       набрать код символа, и после этого отпустить ALT. См. Замечание 3.}
      Writeln('—-T—¬');
      Writeln('¦   x   ¦  y   ¦');
      Writeln('+–+–+');
       Repeat
            y:=f(x);
            Writeln('  ',x:3:1,' ',y:6:3,' ');

            if (y>maxf) then Begin maxf:=y; maxx:=x End;
            if (y<minf) then Begin minf:=y; minx:=x End;
            x:=x+h;
       Until (x>b+h/2);
       Writeln('L–+—');
Writeln('MaxF = F(',maxx:3:1,') = ',maxf:6:3);  {вывод на экран результата}
Writeln('MinF = F(',minx:3:1,') = ',minf:6:3);
Repeat Until KeyPressed;
End.

А еще по поводу Метода промежуточного аргумента :

Ввести с клавиатуры x и вычислить y, используя метод промежуточного    аргумента:

y=( (1+|x|+sin(x))^1/3  / x )  + lg(1+|x|+sin(x)) + (1+|x|+sin(x))^1/2
  (делить на Х всё первое выражение в степени одна треть,потом в этому всему выражение прибавляеться lg(1+|x|+sin(x)) )
Прежде всего заметим, что в выражение для y три раза входит блок  1+|x|+sin(x) . Чем       три раза выписать его в программе, лучше вычислить его как промежуточный аргумент, обозвав его каким-либо именем (например р) . Тогда при описании переменных в начале программы необходимо предусмотреть введение величины р вещественного типа:

Program Argument;

Uses CRT;          {стандартная библиотека}

Label start;

Var x, y, p :    real;
Begin
start: Write(‘x =’); Readln(x);
    if (x=0) then goto start;
    p:=1+abs(x)+sin(x);
    y:=exp(1/3*ln(p))/x +ln(p)/ln(10)+sqrt(p);

    Writeln(‘y =’,y:6:3); {вывод на экран результата}

    Repeat Until Keypressed;

End.

Сделаем несколько необходимых замечаний.

1)    Поскольку при x=0 в первой дроби будет деление на 0, и ЭВМ выдаст сообщение об ошибке “Division by zero”, в программу поставлена проверка условия “x=0?” и при положительном ответе программа повторяет ввод.

2)    Оператор Repeat Until Keypressed приводит к паузе до нажатия любой клавиши.


Post #: 9
RE: задачи на турбо паскале - 2008-12-25 14:41:39.230000   
ylyaka

Сообщений: 4
Оценки: 0
Присоединился: 2008-12-24 16:19:14.093333
Посмотрите плз 4 задачу) я сама по шаблону решила )

Для решения задачи выделим закономерность в этих слагаемых. Каждое слагаемое представляет из себя дробь вида:
          tg a
  +/- ——-
       b +/- c
где “a” от шага к шагу увеличивается на 2 “b” – на 2 “c” -на 1 Чередование знака введем через вспомогательную переменную “p”, принимающую значения +1 и -1.
 
Program Summa;
 
Uses Crt;
 
Var
 
     a,b,c: integer;
 
     p: integer;
 
     s :real;
 
Begin
 
s:=0; a:=1 b:=3 c:=2  p:=1;
 
Repeat
 
     s:=s+p*(tg a / (b+p*c)
     inc(a,2); inc(b,2);  inc(c,1);        {Стандартные процедуры}
 
      p:=-p;
 
Until (a>19);                                     {условие остановки}
 
Writeln('s = ',s:8:3);                          {вывод на экран результата}
 
Repeat Until KeyPressed;
 
End.
Post #: 10
RE: задачи на турбо паскале - 2008-12-25 19:17:05.260000   
K1ller

Сообщений: 94
Оценки: 0
Присоединился: 2008-11-25 23:19:36.140000
Program Summa; Uses Crt; Var &nbsp;&nbsp;&nbsp;&nbsp; a,b,c: integer; &nbsp;&nbsp;&nbsp;&nbsp; p: integer; &nbsp;&nbsp;&nbsp;&nbsp; s :real; Begin s:=0; a:=1; b:=3; c:=2;&nbsp; p:=1; Repeat &nbsp;&nbsp;&nbsp;&nbsp; s:=s+p*(sin(a)/cos(a) / (b+p*c)); &nbsp;&nbsp;&nbsp;&nbsp; inc(a,2); inc(b,2);&nbsp; inc(c,1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {Стандартные процедуры} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p:=-p; Until (a&gt;19);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {условие остановки} Writeln('s = ',s:8:3);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {вывод на экран результата} Repeat Until KeyPressed; End. Из всеми исправлениями… Алгоритм вроде правильный. Посчитай вручную и сравни из результатом программы.
Post #: 11
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> задачи на турбо паскале







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.