1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

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

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

  1. vlastelin

    vlastelin Гость

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

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

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

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

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

    Vadik(R) Well-Known Member

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

    vlastelin Гость

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

    V88 Well-Known Member

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

    vlastelin Гость

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

    etc Гость

    Репутация:
    0
    Закинте все енто в массив а потом по нем и фором не проблема.
     
  7. V88

    V88 Well-Known Member

    Репутация:
    0
    Регистрация:
    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 Гость

    Репутация:
    0
    а Round - это что такое? =)
     
  9. etc

    etc Гость

    Репутация:
    0
    Об том знает великий эфадын!
     
  10. V88

    V88 Well-Known Member

    Репутация:
    0
    Регистрация:
    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 Гость

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

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

    vlastelin Гость

    Репутация:
    0
    спасибо всем! =)
     
Загрузка...

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