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

Форум АНТИЧАТ (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-ом классе даже близко таких задач не решали...

Zakary 13.05.2006 15:01

Deem3n
ещё раз спасибо!
Zarakul
А у нас вот так вот)))

Sn@k3 13.05.2006 15:21

Цитата:

Сообщение от [Zarakul]
Ни разу в 11-ом классе даже близко таких задач не решали...

вы чё серъёзно.блин а нас закидывают такие барахлом.приходится делать

Otaku 13.05.2006 17:17

Блин. Ведь я лет в 15 такие задачки щёлкал. Экзамены сдавл даже. А сейчас паскаль забыл совсем :(
Старею?

Zakary 14.05.2006 14:44

Вот здесь ну очень легкая задача...больше по математике надо))) Решить задачу с использованием условного оператора. Составить программу для определения вида треугольника по двум сторонам и углу меджду ними. Определяемое совйство: равностороний, равнобедренный или прямоугольный(обратите внимание, что треугольник может быть равнобедренным прямоугольным). Для корректного анализа нужно определить ещё третью сторону (например, по теореме косинусов sqr(c)=sqr(a)+sqr(b)-2*a*b*cos(a)). вот что получилось у меня, но не правильно работает.
Код:

program abc;
var a,b,c,d:real;
begin
write('enter 1 side:'); readln(a);
write('enter 2 side:'); readln(b);
write('enter angle:'); readln(c);
d:=sqrt(sqr(a)+sqr(b)-2*a*b*cos(a));
if c=90 then writeln('priamougolnii');
if (a=b) and (a=d) and (c=60) then writeln('ravnostoronii');
if (a=b) or (b=d) or (a=d) and (c<>60)then writeln ('ravnobedrenii');
readln;
end.(


Zakary 16.05.2006 16:22

Все ещё требуется ваш хелп.

Li4inka 16.05.2006 17:36

1) 2Mobile ты мудак
2) все кто хотели на этом срубить деньги просто гады :) должно быть стыдно.
3) Zakary - программирование это лишь умение задачу вбить комуптеру чтобы он ее делал, но если ты сам не знаешь как решать задачу теб нужно сначала над первым работать, а не браться за второе - это так совет.
1) стандартные тригонометрические функции в паскале берут угол как аргумент не в градусах, а радианах, для перевода градусов в радианы : rad=gradus*pi/180;
2) замени:
Код:

if (a=b) then if (c=60) then writeln('ravnostoronii')
  else writeln ('ravnobedrenii');


SanyaX 16.05.2006 19:49

Li4inka вот закрыла бы твой маленький ротик. Програмист-тракторист широкого профиля тебе звание было бы.

Zakary 18.05.2006 09:59

Li4inka
Спасибо за сове. но оскорблять не надо.....Mobile ведь пошутил)))


Время: 02:41