Страница 1 из 3

очень нужна помощь по турбо-паскалю

Добавлено: 17 май 2007, 08:47
ExPeL
Сильно горят лабы для зачёта, а я в Паскале почти нуб. Понимаю что вас уже наверное достали такие топики, но всё же буду премного благодарен если посодействуете решению моих проблем. За работу готов вознаградить пивом, соками чем угодно, но только в Спб, т.к. вебмани не пользуюсь. Вот сообственно и Лабы:

1)Составьте программу табулирования функции, заданной параметрически, при изменении параметра t от a до b с шагом h.

x=sh 1/2(степень) t +t, y=ch 1/2(степень)t -t

2) Дана последовательность целых чисел x=(x1,x2,x3...,xn). Найдите y=x1+x1*x2+x1*x2*x3+ ... + x1*x2*x3*...*xm, где m - номер первогоотрицательного элемента, или 0, если отрицательных элементов нет.

3) Составьте процедуру, переставляющую в заданной матрице А первую и последнюю строки, вторую и предпоследнюю и т.п.

Re: очень нужна помощь по турбо-паскалю

Добавлено: 17 май 2007, 09:41
wewe
2 задание это случайно не матрица

Re: очень нужна помощь по турбо-паскалю

Добавлено: 17 май 2007, 09:45
ExPeL
нет тема одномерных массивов

Re: очень нужна помощь по турбо-паскалю

Добавлено: 17 май 2007, 10:04
somewhere
Второе:

Код: Выделить всё

uses crt;

const n = 20;

var
a	: Array[1..n] of Integer;
x, m	: Integer;
pr, s	: Longint;

begin
ClrScr; Randomize;
{	Filling an array	}
for x := 1 to n do a[x] := random(20) - 2;
For x := 1 to n do Write(a[x]:8);
Writeln;
{	Search the negative number	}
m := 1;
While (m <= n) and (a[m] >= 0) do inc(m);
if m <= n then
	begin
        { If is }
        Writeln('The first negative number found at position ', m);
        pr := 1; s:= 0;
        for x := 1 to m do
        	begin
                pr := pr * a[x];
                s := s + pr;
                end;
        Writeln('Summ is ', s);
        end else {If not } Writeln('There is no negative numbers');
end.

Re: очень нужна помощь по турбо-паскалю

Добавлено: 17 май 2007, 10:10
somewhere
ExPeL,
&quot писал(а):x=sh 1/2(степень) t +t, y=ch 1/2(степень)t -t
sh и ch - это гиперболические синус и косинус или нет? И можно понятнее формулу написать?

Re: очень нужна помощь по турбо-паскалю

Добавлено: 17 май 2007, 10:20
somewhere
Третья:

Код: Выделить всё

uses crt;

const m = 10;
      n = 8;

var
a 	: array[1..m, 1..n] of integer;
x, y 	: Integer;

Procedure MatrixRevert;
var x, y, t: Integer;
begin
For y := 1 to n div 2 do
        for x := 1 to m do
        	begin
                t := a[x, n-y+1];
                a[x, n-y+1] := a[x, y];
                a[x, y] := t;
                end;
end;

begin
ClrScr; Randomize;
For x := 1 to m do for y := 1 to n do a[x,y] := random(200)-100;
Writeln('Source matrix: ');
Writeln;
For y := 1 to n do
	begin
        for x := 1 to m do Write(a[x,y]:4);
        Writeln;
        end;
MatrixRevert;
Writeln;
Writeln('Reverted matrix: ');
Writeln;
For y := 1 to n do
        begin
        for x := 1 to m do Write(a[x,y]:4);
        Writeln;
        end;
end.

Re: очень нужна помощь по турбо-паскалю

Добавлено: 17 май 2007, 10:23
ExPeL
Огромный Сэнкс за 2ое и 3е=)
Да это гиперболические косинус (t) и синус (t) в степени 1/2 каждый.
+t и -t соответственно.

Re: очень нужна помощь по турбо-паскалю

Добавлено: 17 май 2007, 10:27
somewhere
&quot писал(а):Да это гиперболические косинус (t) и синус (t) в степени 1/2 каждый.
+t и -t соответственно.
Все-равно че-то туплю, картинкой никак не выложить?

Re: очень нужна помощь по турбо-паскалю

Добавлено: 17 май 2007, 10:36
ExPeL

Код: Выделить всё

Попробую так :
       1                         1              
       -                         --           
       2                         2       
X= sh     (t) +t      ,    y=ch    (t)-t



1/2 - это степени
Блин перепробывал все способы нарисовать, но отображается это не корректно. Вообщем степени 1/2 над sh(t) и ch(t)

Re: очень нужна помощь по турбо-паскалю

Добавлено: 17 май 2007, 10:48
somewhere
Так что-ли?