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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2013, 20:08   #11
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

BDA
че то я не понял, зачем там ваще чето складывать и почему первый элемент умножается на ноль.

Код:
int SumList(PList List){
    int s = 1;
    while(List ) {
        s *= List->Info;
        List = List->Next;
    }
    return s;
}
Что не так?
rrrFer вне форума Ответить с цитированием
Старый 10.09.2013, 20:10   #12
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

еще раз большое спасибо
fkty вне форума Ответить с цитированием
Старый 10.09.2013, 20:11   #13
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,341
По умолчанию

rrrFer, a1*a2+a2*a3+...+a n-1*an, а не a1*a2*...*an.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.09.2013, 20:17   #14
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

rrrFer,в вашем случае сумма не правильно считается
fkty вне форума Ответить с цитированием
Старый 10.09.2013, 21:15   #15
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
rrrFer, a1*a2+a2*a3+...+a n-1*an, а не a1*a2*...*an.
Цитата:
rrrFer,в вашем случае сумма не правильно считается
Точно, разглядел плюсы )
rrrFer вне форума Ответить с цитированием
Старый 11.09.2013, 16:23   #16
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Код:
int SumList(PList List){
  int n = 0;
  int Last;
  if(List != NULL) {
    Last = List->Info;
    List = List->Next;
    if(List == NULL)
      n = Last;
    else
      while(List != NULL){
        n += Last * List->Info;
        Last = List->Info;
        List = List->Next;
      }
  }
  return n;
}
Решение не особо красивое, зато простое и понятное

Последний раз редактировалось GreenWizard; 11.09.2013 в 16:33.
GreenWizard вне форума Ответить с цитированием
Старый 21.09.2013, 14:20   #17
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

из-за других имен мало что поняла в программе....что делают эти функции PList NewListNode(),void FreeList(PList *List),что здесь передаем,что за параметры int main(int argc, char* argv[]),зачем нужна эта строчка PList List; PList Result = new TList;что за Result
Не хотелось бы в программу добавлять другие функции,надо строго по исходной программе

Последний раз редактировалось fkty; 21.09.2013 в 14:31.
fkty вне форума Ответить с цитированием
Старый 21.09.2013, 19:44   #18
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,341
По умолчанию

"надо строго по исходной программе" - зачем?)

PList NewListNode() - выделение памяти и заполнение полей нового элемента списка (возвращает указатель на него)

void FreeList(PList *List) - освобождает память, удаляя все элементы списка (в исходном коде на паскале этого вообще не делалось)

int main(int argc, char* argv[]) - эти параметры позволяют узнать программе параметры (извините за каламбур) запуска (например, программа запущена как start.exe 1 2 3, где 1, 2, 3 - параметры запуска). В вашем случае можно написать int main()

PList List; - объявление переменной List типа PList (в си и с++ можно объявлять переменные в любом месте до использования; есть свои нюансы (локальные и глобальные переменные, области видимости), но пока оставим объяснения на таком уровне - прочтите какой-нибудь обучающий материал, а то вопросы получаются по первым страницам такого материала)

PList Result = new TList; - объявление переменной Result типа PList и присвоение ей результата выделения памяти с помощью new (оператор new)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 25.09.2013, 16:10   #19
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

а что означает typedef TList *PList;
fkty вне форума Ответить с цитированием
Старый 25.09.2013, 16:45   #20
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,341
По умолчанию

Это значит, что PList теперь обозначает TList *. PList будет указателем на TList. Более подробно можно прочесть в интернете или какой-нибудь книжке или методичке.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти сумму irina.yurl Паскаль, Turbo Pascal, PascalABC.NET 2 25.02.2013 23:12
Три задачи - Найти сумму натуральных чисел; Протабулировать функцию; вычислить сумму kolya1114 Паскаль, Turbo Pascal, PascalABC.NET 3 01.12.2012 19:01
Pascal. Найти сумму отрицательных и сумму положительных элементов линейного массива. badname47 Паскаль, Turbo Pascal, PascalABC.NET 1 07.02.2012 06:29
Pascal в последовательность произведений найти первое произведение, не превосходящее по величине В IIyX Помощь студентам 5 15.03.2011 12:41
Массив! Найти сумму произведений цифр perojenko Помощь студентам 3 22.06.2009 11:48