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

Написать / переделать под C++ - C++

Восстановить пароль Регистрация
 
Fbink
1 / 1 / 1
Регистрация: 19.07.2012
Сообщений: 114
01.08.2012, 08:47     Написать / переделать под C++ #1
Всем привет, нуждаюсь в вашей помощи, написать программу с паскаля на c++

Условие:В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов, с нечетными номерами; Сумма элементов массива, расположенных между первым и последним отрицательными элементами.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Program Eto_konec;
uses crt;
var
  A : array [1..500] of real;
  i, n : integer;
  FirstO, LastO :integer;
  Summa1, Summa2 : real;
BEGIN
ClrScr;
Write('Введите размерность массива: ');
Readln(n);
Write('Введите элементы массива: ');
Summa1 := 0; Summa2 := 0; FirstO := 0; LastO := 0;
{Ввод элементов и подсчёт их суммы}
for i := 1 to n do
 begin
 Read(A[i]);
 if i mod 2 <> 0 then Summa1 := Summa1 + A[i];
 end;
Writeln('Сумма нечетных элементов: ', Summa1:0:3);
{Поиск первого отрицательного} 
for i := 1 to n do
 if A[i] < 0 then begin FirstO := i; break; end;
{Поиск последнего отрицательного}
for i := n downto 1 do
 if A[i] < 0 then begin LastO := i; break; end;
if (LastO = 0) or (FirstO = 0) then Writeln('Отрицательных элементов нет')
 else
  begin
for i := FirstO + 1 to LastO - 1 do
 Summa2 := Summa2 + A[i];
Writeln('Сумма элементов расположенных между первым и последним отрицательным: ', Summa2:0:3);
 end; 
Readln; 
END.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.08.2012, 08:47     Написать / переделать под C++
Посмотрите здесь:

Переделать под Builder 6 C++
переделать под использаовние указателей C++
переделать под класс C++
C++ переделать под график
C++ Нужно переделать программу с С++ под С
C++ Переделать под динамический массив
Под С++ нужно переделать C++
C++ Переделать под реккурсию

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
01.08.2012, 09:50     Написать / переделать под C++ #2
Вместо ввода массива -- заполнение случайными числами.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <numeric>
 
// тип данных массива
typedef std::vector<float> Array;
 
// оператор для упрощенного вывода вектора
std::ostream &operator<<(std::ostream &stream, typename std::vector<float> &vector) {
  std::copy(vector.begin(), vector.end(), std::ostream_iterator<float>(stream, " "));
  return stream;
}
 
struct RandomFloat {
  // функтор случайного числа
  float operator()() { return (rand() % 200 - 100) / 10.; }
};
 
int main(int argc, char **argv) {
  srand(time(NULL));
 
  Array array;
  // заполнение массива случайными числами
  std::generate_n(std::back_inserter(array), 4 + rand() % 3, RandomFloat());
  // вывод массива
  std::cout << array << std::endl;
 
  // счетчик суммы нечетных элементов
  float sumOfOddElements = 0.0;
  // нахождение суммы нечетных элементов
  for (Array::const_iterator i = array.begin(); i < array.end(); ++(++i))
    sumOfOddElements += *i;
  // вывод результата
  std::cout << "Sum of odd elements: " << sumOfOddElements << std::endl;
 
  // первое отрицательное значение
  Array::iterator firstNegative = std::find_if(array.begin(), array.end(),
    std::bind2nd(std::less<float>(), 0));
 
  // проверка, что первое отрицательное значение существует
  if (firstNegative != array.end()) {
    // последнее отрицательное значение
    Array::iterator lastNegative = (std::find_if(array.rbegin(), array.rend(),
      std::bind2nd(std::less<float>(), 0))).base() - 1;
    // проверка, что первое и последнее отрицательные значения
    // не одно и то же
    if (firstNegative != lastNegative)
      // нахождение и вывод результата.
      std::cout << "First negative: " << *firstNegative << std::endl <<
        "Last negative: " << *lastNegative << std::endl <<
        "Sum between (exclusive): " << std::accumulate(firstNegative + 1,
        lastNegative, 0.0) << std::endl;
    else
      // существует только одно отрицательное значение
      std::cout << "There is only one negative value." << std::endl;
  } else {
    // нет отрицательных значений
    std::cout << "No negative elements." << std::endl;
  }
  return 0;
}
Fenixsar
 Аватар для Fenixsar
3 / 3 / 0
Регистрация: 26.08.2008
Сообщений: 19
01.08.2012, 11:47     Написать / переделать под C++ #3
Fbink, пожалуй, вот так будет проще.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
 
using namespace std;
 
int n, summa=0, summa1=0, first, last;
bool raz=true, dva=true;
 
int main(){
    cout << "Vvedite razmernost' massiva: ";
    cin  >> n;  
    int A[n];
    for (int i=0;i < n; i++){
        cout << "Vvedite element massiva: ";
        cin >> A[i];//Ввод элементов
        if (i%2==0){
           summa+=A[i];//Подсчет суммы элементов с нечетными номерами
        }
        if (raz){
           if (A[i]<0){
              first = i;
              raz = false;//Нахождение первого отрицательного
           }
        }
        if (A[i]<0) last = i; //Второго
    }
    for(int i=first+1; i < last;i++) summa1+=A[i];//Подсчет суммы элементов находящихся между ними
    cout << "Summa nechetnix elementov massiva: " << summa<<'\n';
    cout << "Summa elementov raspolozennix mejdu pervim i poslednim otricatel'nim: " << summa1<<'\n';
    system("pause");
    return 1;
}
Yandex
Объявления
01.08.2012, 11:47     Написать / переделать под C++
Ответ Создать тему
Опции темы

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