Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2012, 07:53   #1
gennadii
Пользователь
 
Регистрация: 12.01.2011
Сообщений: 37
По умолчанию Паскаль вывод суммы кубов

Здравствуйте уважаемые форумчане! У меня возник вопрос, что-то никак не догоню, как сделать так, чтобы сумма кубов в этой программе, выводилась один раз в самом конце? Похоже конкретно туплю, но всё же, в условии конкретно сказано, найти сумму кубов чисел от 25 до 55? вот программа:

Код:
Program kubi;
Uses crt;
Var
  x,sum:real;
  i:longint;
Begin
  clrscr;
  sum:=0;
  for i:=25 to 55 do begin
    x:=(exp(3*ln(i)));
    Writeln('kub ',i,' = ',x:8:2);
    Writeln;
    sum:=sum+x;
    Writeln('summa kubov = ',sum:8:2);
    end;
    Readkey;
End.
gennadii вне форума Ответить с цитированием
Старый 02.11.2012, 08:45   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

всё что нужно выполнять в цикле, пишем внутри цикла, всё, что нужно выполнять после цикла - выносим из цикла за его окончание.

сравните со своим кодом:
Код:
  for i:=25 to 55 do begin
    x:=(exp(3*ln(i)));
    Writeln('kub ',i,' = ',x:8:2);
    Writeln;
    sum:=sum+x;
  end;
  Writeln('summa kubov = ',sum:8:2);  
  Readkey;
end.
это раз. второе.

Вам не кажется, что куб целого числа будет ЦЕЛЫМ числом?
Зачем Вы используете для него вещественный тип данных, да ещё и выводите два знака после запятой?
Ну и последнее. не понимаю, зачем в данном случае использовать теорему логарифмов?
разве так не проще?
x := i * i * i;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.11.2012, 09:00   #3
gennadii
Пользователь
 
Регистрация: 12.01.2011
Сообщений: 37
По умолчанию

Код:
Program kubi;
Uses crt;
Var
  x,sum,i:longint;
Begin
  clrscr;
  sum:=0;
  for i:=25 to 55 do begin
    x:=sqr(i)*i;
    Writeln('kub ',i,' = ',x);
    sum:=sum+x;
    end;
    Writeln('summa kubov = ',sum);
    Readkey;
End.
Согласен, так лучше, но там в задание (exp(n*ln(x))) нужна, изгаляются! Но вам спасибо большое, я все время путаюсь в закрытии цикла.
gennadii вне форума Ответить с цитированием
Старый 02.11.2012, 09:22   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Но вам спасибо большое, я все время путаюсь в закрытии цикла.
тогда ещё совет. Обратите внимание на то, как отформатирован мой код.
"лесенку" видите?
то, что внутри цикла сдвигается на несколько позиций вправо. end сдвинут ровно так, как и тот оператор, где цикл начинается.
Сразу по отступу видно, что внутри цикла, а что - вне его.
особенно удобно, когда вложенность циклов (и других операторов) больше 2-х...
Рекомендую.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычесление суммы кубов londoncold Помощь студентам 2 21.12.2011 20:22
Вывод суммы факториалов Bekzat Помощь студентам 1 06.12.2011 17:46
Msgbox вывод суммы Palomnik1096 Microsoft Office Excel 5 13.12.2010 13:12
C++/ Все способы представления заданного натурального числа N в виде суммы двух кубов натуральных чисел / acko Помощь студентам 1 25.09.2010 12:15
Вывод суммы значений на страницу сайта BIOX PHP 6 22.06.2009 16:37