подсчёт суммы

Тема в разделе "Delphi - Multimedia, Графика, Игры", создана пользователем vlastelin, 3 янв 2009.

  1. vlastelin

    vlastelin Гость

    ммм... не знаю, не под одну категорию не подходило, поэтому сюда пишу

    Помогите написать следующую прогу на Pascal'e через оператор For.
    Делал через while, ему не понравилось... а через for не могу понять как сделать

    вообщем суть проги в следующем
    есть ряд 1+3+5+7...+n
    в цикле должен быть этот ряд

    а в итоге (т.е. при задание значения n=11 гденить, пусть даже ввод с клавиатуры) мы должны сосчитать вот это:
    1+3+5+...+11

    вообще там задание через функцию сделать и т.д., но в функцию я запихну, мне главное понять как сделать вот выше сказанное
     
  2. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Если еще актуально, то стучи в асю 34-98-34-73, сделаю за WMR ;)
     
  3. vlastelin

    vlastelin Гость

    да я сам могу написать, главное подскажите как цикл тот сделать
     
  4. V88

    V88 Well-Known Member

    Регистрация:
    22 окт 2008
    Сообщения:
    51
    Симпатии:
    0
    Можно сделать вот так:
    s:=0;
    i:=1;
    while i<>n do begin
    s:=s+i;
    i:=i+2;
    end;
    где n можно вводить программно или с клавиатуры.
     
  5. vlastelin

    vlastelin Гость

    ну я же сказал что знаю как через while, мне через for надо =(
     
  6. etc

    etc Гость

    Закинте все енто в массив а потом по нем и фором не проблема.
     
  7. V88

    V88 Well-Known Member

    Регистрация:
    22 окт 2008
    Сообщения:
    51
    Симпатии:
    0
    Можно и сделать без использования массива. Вот так:
    s:=0;
    j:=1;
    for i:=1 to Round(n/2) do begin
    s:=s+j;
    j:=j+2;
    end;
    где n - это либо 1, 3, 5 ...
     
  8. vlastelin

    vlastelin Гость

    а Round - это что такое? =)
     
  9. etc

    etc Гость

    Об том знает великий эфадын!
     
  10. V88

    V88 Well-Known Member

    Регистрация:
    22 окт 2008
    Сообщения:
    51
    Симпатии:
    0
    Round() - это функция, берущая целую часть числа в большую сторону, т.е, напр., если round(2.3) = 2, round(2.8) = 3, round(2.5) = 3. Иными словами она округляет вещественное число.
    А есть ещё функция Trunc(), которая возвращает целочисленную часть числа с плавающей запятой, т.е. опять же trunc(2.3) = 2, trunc(2.8) = 2, trunc(2.5) = 2
     
  11. BurcevD

    BurcevD Гость

    можно еще двумя способами:
    Код (Text):
    s:=0;
    For i:=1 to n div 2 do
    s:=s+(i*2-1);
    Writeln(S);
    или так

    Код (Text):
     s:=0;
    For i:=1 to n do
    if (i mod 2=1) then s:=s+i;
    Writeln(s);
     
  12. vlastelin

    vlastelin Гость

    спасибо всем! =)
     
Загрузка...
Похожие Темы - подсчёт суммы
  1. ZMihail
    Ответов:
    2
    Просмотров:
    1.689
  2. maliy
    Ответов:
    1
    Просмотров:
    320
  3. zamanov
    Ответов:
    1
    Просмотров:
    655
  4. sunni
    Ответов:
    0
    Просмотров:
    1.239
  5. sunni
    Ответов:
    0
    Просмотров:
    1.051

Поделиться этой страницей