Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Болталка (https://forum.antichat.xyz/forumdisplay.php?f=46)
-   -   Pascal. Задачи. (https://forum.antichat.xyz/showthread.php?t=18995)

Zakary 12.05.2006 13:52

Pascal. Задачи.
 
Привет всем. хочу спросить..кто-нибудь может помочь сделать пару задач на паскале?
1-ая
Решить задачу с использованием цикла. найти сумму к чисел, стоящих на четных местах в геометрической прогрессии 2,8,32,128,512
2-ая
Даны числа a и х. Вычтислить значение выражения sqr(sqr(...sqr(sqr(х+а)+а)+...+а))+а всего н скобок.

кто сможет помогите пожалуйста по ним..особенно по первой. они вообще не сильно сложные(информатика 11 класс)..но я чета не могу.

Mobile 12.05.2006 21:04

10000$

Utochka 12.05.2006 21:10

Zakary - если согласен за 5-10$ я возьмусь.

Dronga 12.05.2006 21:16

Блин, подправьте, а то без компилятора под рукой фигово.
1.
Код:

var
  i,k:integer;
begin
  k:=2;
  writeln('Skolko wagov??');
  readln(n);
  for i:=1 to n do begin
    k:=k*4;
    writeln(k)    {для отладки}
  end;
end.

Сейчас вторую погляжу. Без компилятора фигово.

2.
sqr(sqr(...sqr(sqr(х+а)+а)+...+а))+а
Код:

var
  x,a,sum,i,k:real;
begin
  writeln('Vvedite X');
  readln(x);
  writeln('Vvedite A');
  readln(a);
  sum:=x+a;
  writeln('Vvedite shag');
  readln(k);
  for i:=1 to k do begin
    sum:=sqr(sum)+a;
    writeln(sum)    {для отладки}
  end;
end.

Если ничего не путаю, то должно работать правильно.

Utochka 12.05.2006 21:33

Dronga - конечно хорошо, что на халяву выложил ему код, но я хотел бабосы срубить )

Dronga 12.05.2006 21:44

На этом????? Побойся бога!

Deem3n® 12.05.2006 22:45

вот не успел запостить ))
1.
Код:

var
  i, n: integer;
  pr_item, sum: longint;
begin
    writeln('Enter num of progression elements (>=2):');
    readln(n);

    pr_item := 2;
    sum := 0;
    writeln('Summed progression elements:');
    for i := 0 to n do
    begin
          pr_item := pr_item shl 2;
          if (not odd(i)) then
          begin
            sum := sum + pr_item;
            write(pr_item, ' ');
          end;
    end;
    writeln;
    writeln('sum = ', sum);
end.

Код:

Enter num of progression elements (>=2):
10
Summed progression elements:
8 128 2048 32768 524288 8388608
sum = 8947848

2. Банальная рекурсия
Код:

var
  x, a, n, result: integer;
function f(var x:integer; var a:integer; n:integer):integer;
begin
    if (n = 1) then
        f := sqr(x+a)+a
    else
        f := sqr(f(x, a, n - 1)) + a;
end;
begin
    writeln('Enter x, a and n:');
    readln(x, a, n);
    writeln('Result = ', f(x, a, n));
end.

Код:

Enter x, a and n:
1 1 3
Result = 677

Обьяснять код не буду - сам разберешся
Цитата:

На этом????? Побойся бога!
ну ну ))

Zakary 13.05.2006 10:01

Deem3n, dronga
спасибо вам огромное!!! есть ещё добрые люди на свете...+
ещё. если можете объясните что значат эти две строчки
pr_item := pr_item shl 2;
if (not odd(i)) then

Deem3n® 13.05.2006 10:20

Цитата:

Сообщение от Zakary
Deem3n, dronga
спасибо вам огромное!!! есть ещё добрые люди на свете...+
ещё. если можете объясните что значат эти две строчки
pr_item := pr_item shl 2;
if (not odd(i)) then

pr_item := pr_item shl 2; экивалентно pr_item := pr_item * 4 - логический сдвиг влево на 2 бита битовой строки (написал так по привычке потому что первая инструкция выполняется намного быстрее второй)
Цитата:

Odd(X) Возвращает булево True (истина), если Х — нечетное целое, и False (ложь) — в противном случае

[Zarakul] 13.05.2006 11:26

Цитата:

они вообще не сильно сложные(информатика 11 класс)..но я чета не могу.
Ни разу в 11-ом классе даже близко таких задач не решали...


Время: 03:56