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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Дарья Дмитренко
0 / 0 / 0
Регистрация: 10.02.2011
Сообщений: 44
#1

нужно перевести с Паскаля на С++ - C++

19.06.2011, 01:34. Просмотров 318. Ответов 1
Метки нет (Все метки)

Найти в массиве:
1) сумму элементов с нечётными номерами
2) Сумму элементов между первым и последним отрицательными элементами
3) в массиве отрицательные элементы заменить нулями и переставить в конец
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
uses
  crt;
const
  n=10;
var
  a:array[1..n]of real;
  i_perv,i_posled,i,j:integer;
  sum,summ,temp:real;
begin
 
  {задаем выводим считаем}
  sum:=0;
  summ:=0;
  writeln('Исходный массив:');
  for i:=1 to n do
  begin
    readln(a[i]);
     end;
     
     for i:=1 to n do begin
     if  i mod 2 <> 0 then sum:=sum+a[i];
     end;
     writeln('Сумма с нечёт.номерами: ',sum);
  {находим номер первого отрицательного элемента}
  for i:=1 to n do begin
  if a[i]<0 then begin
                 i_perv:=i;
                 break;
                 end;
  end;
        {находим номер последнего отрицательного элемента}
  for i:=1 to n do begin
  if a[i]<0 then i_posled:=i;
  end;
  {находим сумму между отрицательными элементами}
  for i:=(i_perv+1) to (i_posled-1) do begin
  summ:=summ+a[i];
  end;
  writeln('сумма между отр. ',summ);
  {меняем на 0}
  for i:=1 to n do
    if a[i]<0 then
      a[i]:=0;
  {переносим 0 в конец}
  for i:=1 to n-1 do
    if a[i]=0 then
      for j:=i to n-1 do
      begin
        temp:=a[j];
        a[j]:=a[j+1];
        a[j+1]:=temp
      end;
  {выводим массив}
  writeln('Полученный массив:');
  write('[ ');
  for i:=1 to n do
    write(a[i],' ');
  writeln(']');
end.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2011, 01:34     нужно перевести с Паскаля на С++
Посмотрите здесь:

Нужно перевести программу из Паскаля в С++ C++
C++ Перевести с Паскаля на С++
Перевести из Паскаля в с++ C++
C++ Нужно перевести коды программ с паскаля, в С++!
нужно перевести с паскаля на с++ C++
Нужно перевести из паскаля в Си. Определить сумму положительных элементов C++
Перевести из паскаля на c++ C++
Перевести из паскаля на c++ C++
C++ Перевести из паскаля на с++
Нужно перевести программу из Паскаля в С++ C++
C++ Перевести с Паскаля на С++
Перевести с Паскаля на C++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
913 / 738 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
19.06.2011, 03:36     нужно перевести с Паскаля на С++ #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
#include <stdio.h>
 
 void  main(void){
 
 
    int  arr[] = { 1, 1, 3, -2, 4, 6, 9, -10, 20, 50, -40, 3 };
    int size = sizeof(arr) / sizeof(int);
 
    // 1 - сумма не чётных чисел
    int sum = 0;
    for(int i = 0; i < size; i++) 
        sum += ((arr[i] % 2) ? arr[i] : 0);     
    printf("sum no chet = %d\n", sum);
 
 
 
// 2 - сумма от первого отрицательного  до последнего - отрезок
    int*  first = arr;
    int*  last  = arr + size;
    sum = 0;
    while(first != last) {
            if( *first < 0 )
                    break;
            ++first;
    }
    sum = size;
    while(sum--) {
            if( *last < 0 )
                  break;
            --last;
    }
    while( first != last )
        sum += *first++;
    printf("sum signed = %d\n", sum);
 
 
    // 3 - замена отрицательных на нули с перестановкой в хвост массива
    int*  ptr = arr;
    int    sz  = size;
    sum      = size;
    while(sum--) {
        if( *ptr < 0 ) {
            for(int i = ~(arr - ptr) + 1; i < sz - 1; i++)
                arr[i] = arr[i + 1];
            arr[sz - 1] = 0;
            sz--;
        }           
        ++ptr;
    }
    for(int a = 0; a < size; a++)
        printf("%d, ", arr[a] );
 
           getchar();
}
Yandex
Объявления
19.06.2011, 03:36     нужно перевести с Паскаля на С++
Ответ Создать тему
Опции темы

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