Помогите пожалуйста с задачами.(Pascal)

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Помогите пожалуйста с задачами.(Pascal)

Re: Помогите пожалуйста с задачами.(Pascal)

MorS » 20 ноя 2010, 23:59

Здравствуйте. Помогите, пожалуйста, решить задачи
1.Дано действительное число а. Вычислить f(x), где f - периодическая функция, период которой равен 2. На отрезке[-1;1] функция f(x) совпадает с функцией, график которой изображён на рисунке. На рисунке изображён график, состоящий из двух функций: 1) x+1, 2) 1-sqr(x)*x.
Непонятно как сделать, если заданы 2 функции, а не одна!!!!! Заранее спасибо!

Re: Помогите пожалуйста с задачами.(Pascal)

Хыиуду » 08 окт 2007, 12:28

2.
inverces:=0;
for i:=1 to 39 do
if a>a[i+1] then inc(inverces);

Re: Помогите пожалуйста с задачами.(Pascal)

Rus32 » 28 сен 2007, 21:57

Помогите пожалуйста еще несколько задач решить.))))))

1.Решить задачу, организовав итерационный цикл. Вычислить длину кривой на участке xЭ[0,4], если она задана уравнением:y=x^3/2(x в степени три вторых) . Вычисления произвести с точностью eps=10^-3, 10^-2, считать точным значением 9,073415289388. Определить, как изменяется число итераций при изменении точности.

2.Написать программу на обработку одномерного массива. Определить число инверсий в массиве из 40 целых чисел (инверсия - это пара элементов, в которой большее число расположено слева от меньшего).

3.Решить поставленную задачу, используя средства управления вводом/выводом Турбо Паскаля. Дан массив литер L(8,6,4). Вывести его элементы на экран строками по 12 литер в виде параллелограмма.

Заранее благодарен. :)

Re: Помогите пожалуйста с задачами.(Pascal)

BBB » 27 сен 2007, 17:37

somewhere писал(а):
Может, так?
1) for
2) while () do begin end;
3) repeat until ();
А какой из них наиболее рациональный? )))))) тут надо дисассемблировать, авось из них будет какой-то, на пару десятков тактов быстрее ))))))
Ну, это ж учеьная задача. Так что, обосновывать выбор (c), возможно, также надо исходя именно из теории (красоты получаеммого исходного текста), а не быстродействия :)
Например. Если перед выполнением цикла ясно, сколько именно раз его нужно выплонить, то выбираем for.
Если алгоритм таков, что по крайней мере один раз тело цикла надо выполнить, а после этого смотреть (по какому-либо условию), продолжать цикл дальше или прерывать, то берем repeat until () (Пример: делаем что-то, затем запрашиваем пользователя, хочет ли он повторить операцию)
Ну а если алгоритм таков, что, возможно, цикл будет не выполнен вообще ни разу, то берем while () do begin end;. (Классический пример будет чтение из файла:
while (not EOF ()) do begin end;)

Re: Помогите пожалуйста с задачами.(Pascal)

somewhere » 27 сен 2007, 11:29

&quot писал(а):Может, так?
1) for
2) while () begin end;
3) repeat until ();
А какой из них наиболее рациональный? )))))) тут надо дисассемблировать, авось из них будет какой-то, на пару десятков тактов быстрее ))))))

Re: Помогите пожалуйста с задачами.(Pascal)

BBB » 27 сен 2007, 11:24

somewhere писал(а):Я никак не могу понять о каких трех видах здесь говорится.
Может, так?
1) for
2) while () begin end;
3) repeat until ();

Re: Помогите пожалуйста с задачами.(Pascal)

somewhere » 27 сен 2007, 08:54

&quot писал(а):If K <= 0 then summ := 0;
Следует читать:

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

If K < 0 then K := 0;

Re: Помогите пожалуйста с задачами.(Pascal)

Rus32 » 26 сен 2007, 20:50

На счет второй задачи там надо с любым одним циклом.))Спасибо за ее решение.
Вот первая задача на самом деле с условием туповатая,я сам без понятий как там что.Спасибо за помощь.)

Re: Помогите пожалуйста с задачами.(Pascal)

somewhere » 26 сен 2007, 15:21

&quot писал(а):2.Рассмотреть решение предложенной задачи с использованием всех трех видов циклов. Отладить программу с наиболее рациональным вариантом цикла. Обосновать выбор.
Найти сумму первых k чисел последовательности Фибоначи. Последовательность определяется законом: F0=F1=1; Fn=Fn-1+Fn-2 для n>= 2.(задача на циклы).
Заранее благодарен.
Я никак не могу понять о каких трех видах здесь говорится. Лично мне приходит в голову только один:

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

uses crt;

var
f1, f2, fn, Summ : Longint;
k, x	  	 : Integer;

begin
Clrscr;
Write('Input K : ');
Readln(k);
Writeln;
If K <= 0 then summ := 0;
If K < 3 then summ := k else
	begin
	summ := 2;
	f1 := 1;
	f2 := 1;
	For x := 1 to k-2 do
		begin
	        fn := f1 + f2;
	        f1 := f2;
	        f2 := fn;
	        summ := summ + fn;
	        Write(fn:8);
	        end;
        end;
Writeln;
Writeln;
Writeln('Summ = ',Summ);
end.

Re: Помогите пожалуйста с задачами.(Pascal)

somewhere » 26 сен 2007, 13:27

Ну да, я про это и говорю

Вернуться к началу