Форум программистов, компьютерный форум CyberForum.ru

Программирование циклического вычислительного процесса - C++

Восстановить пароль Регистрация
 
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 108
08.09.2013, 09:42     Программирование циклического вычислительного процесса #1
12. Дан набор ненулевых целых чисел; признак его завершения — число 0. Вывести сумму всех положительных четных чисел из данного набора. Если требуемые числа в наборе отсутствуют, то вывести 0.
Даже представить не могу, как это можно реализовать средствами С++(вот такой вот я чайник). Хотя бы дайте алгоритм действий или натолкните на нужную мысль
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2013, 09:42     Программирование циклического вычислительного процесса
Посмотрите здесь:

Создание циклического алгоритма C++
Составление схем алгоритмов циклического процесса C++
C++ Вычислить значения функции. Программирование разветвляющегося вычислительного процесса.
Не работает программа разветвляющегося вычислительного процесса C++
Задача на составление программы с ветвлением вычислительного процесса C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
08.09.2013, 09:54     Программирование циклического вычислительного процесса #2
Цитата Сообщение от r00712 Посмотреть сообщение
Хотя бы дайте алгоритм действий или натолкните на нужную мысль
C++
1
2
3
4
5
6
cin>>i;
while(i)
{
if(i>0 && i%2==0)
  sum+=i;
}
elivin
65 / 65 / 1
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
08.09.2013, 10:06     Программирование циклического вычислительного процесса #3
Если эти числа вводит пользователь, то берёшь две переменные, одной присваиваешь значение 0, в цикле берёшь значение очередного числа, если оно больше нуля и чётное, увеличиваешь первую переменную на это число. Условие выхода из цикла - вторая переменная равна нулю. В первой переменной будет ответ.

Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main() {
   int total = 0, tmp;
   do {
      std::cin >> tmp;
      if (tmp > 0 && tmp % 2 == 0)
         total += tmp;
   } while(tmp);
   std::cout << "Total: " << total << std::endl;
   return 0;
}
Catstail
Модератор
 Аватар для Catstail
21501 / 10254 / 1670
Регистрация: 12.02.2012
Сообщений: 17,139
08.09.2013, 10:51     Программирование циклического вычислительного процесса #4
ValeryS, Ваша мысль понятна, но Ваш код вызовет зацикливание... Чтение числа нужно занести в цикл.
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 108
08.09.2013, 11:03  [ТС]     Программирование циклического вычислительного процесса #5
elivin,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <math.h>
int main() {
int total = 0, tmp;
 
 
   do { 
      std::cin >> tmp;
      if (tmp > 0 && tmp % 2 == 0)
         total += tmp;
   } while(tmp);
   std::cout << "Total: " << total << std::endl;
     getch();
   return 0;
}
Код работает, но считает не правильно В чем моя ошибка?
za5
440 / 344 / 30
Регистрация: 16.10.2010
Сообщений: 842
Записей в блоге: 7
08.09.2013, 11:17     Программирование циклического вычислительного процесса #6
C++
1
2
3
4
5
   for(;;){ 
      std::cin >> tmp;
      if (tmp > 0 && tmp % 2 == 0) total += tmp;
      else if (tmp==0) break;
   }
а может и так сработает:
C++
1
for(std::cin >> tmp;tmp!=0;std::cin >> tmp) {if (tmp > 0 && tmp % 2 == 0) total += tmp;}
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 108
08.09.2013, 11:25  [ТС]     Программирование циклического вычислительного процесса #7
C++
1
2
3
4
5
6
7
8
9
10
int main() {
int total = 0, tmp;
   do { 
      for(std::cin >> tmp;tmp!=0;std::cin >> tmp) {if (tmp > 0 && tmp % 2 == 0) total += tmp;}
 
   } while(tmp);
   std::cout << "Total: " << total << std::endl;
     getch();
   return 0;
}
Увы, считает он не правильно)
za5
440 / 344 / 30
Регистрация: 16.10.2010
Сообщений: 842
Записей в блоге: 7
08.09.2013, 12:43     Программирование циклического вычислительного процесса #8
C++
1
2
3
4
5
6
7
int main() {
   int total = 0, tmp;
   for(std::cin >> tmp;tmp!=0;std::cin >> tmp) {if (tmp > 0 && tmp % 2 == 0) total += tmp;}
   std::cout << "Total: " << total << std::endl;
   getch();
   return 0;
}
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 108
08.09.2013, 14:37  [ТС]     Программирование циклического вычислительного процесса #9
za5, работает!!! Очень благодарен
elivin
65 / 65 / 1
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
08.09.2013, 19:55     Программирование циклического вычислительного процесса #10
Странные дела тут творятся. Мой и za5 коды, если не учитывать несущественную в данном случае разницу работы for и do while, можно считать эквивалентными - они выполняют один и тот же алгоритм и оба работают правильно
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
08.09.2013, 20:02     Программирование циклического вычислительного процесса #11
Вообще не могу понять читали ли вы задание?
Цитата Сообщение от r00712 Посмотреть сообщение
12. Дан набор ненулевых целых чисел; признак его завершения — число 0. Вывести сумму всех положительных четных чисел из данного набора. Если требуемые числа в наборе отсутствуют, то вывести 0.
первые два слова: Дан набор, что подразумевает int arr[size] = {...};
Соответственно, работайте с ним, как с массивом:
C++
1
2
for (int i = 0; i < size; ++i)
    summ += ((arr[i] > 0 && arr[i]%2 ==0) ? arr[i] : 0);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2013, 08:20     Программирование циклического вычислительного процесса
Еще ссылки по теме:

C++ Ошиба циклического сдвига
Программирование циклического вычислительного процесса C++
Отладить программу циклического процесса C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
09.09.2013, 08:20     Программирование циклического вычислительного процесса #12
Цитата Сообщение от Catstail Посмотреть сообщение
Ваша мысль понятна, но Ваш код вызовет зацикливание... Чтение числа нужно занести в цикл.
да заметил я а поправить не смог)время ушло
но меня оправдывает, что это не рабочий код а так зарисовка
Yandex
Объявления
09.09.2013, 08:20     Программирование циклического вычислительного процесса
Ответ Создать тему
Опции темы

Текущее время: 02:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru