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

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

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

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

19.06.2011, 01:34. Просмотров 330. Ответов 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.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2011, 01:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос нужно перевести с Паскаля на С++ (C++):

нужно перевести с паскаля на с++ - C++
uses crt; var E,x,p,t:real; k:integer; { Возведение х в степень к } function step(x:real;k:integer):real; var i: integer; ...

Нужно перевести программу из Паскаля в С++ - C++
К сожалению С++ только начали изучать, а программ задали много Delphi знаю хорошо Задача 1.Составить программу упорядочения по...

Нужно перевести программу из Паскаля в С++ - C++
Помогите пожалуйста перевести. Из Паскаля в С++ Код программы Паскаля: program Hello; var i:integer; begin ...

Нужно перевести коды программ с паскаля, в С++! - C++
Если целое число M делится нацело на целое число N, то вывести на экран частное от деления, в противном случае - сообщение ''M на N нацело...

Нужно перевести из паскаля в Си. Определить сумму положительных элементов - C++
uses crt; const nmax=20; var a:array of integer; b,ab:array of integer; m,n,i,j,k:byte; begin clrscr; randomize; ...

перевести на c++ с паскаля - C++
переведите пожалуйста как написать эти строчки на с++ for i:=1 to Length(s) do for j:=length(sl) downto 1 do Добавлено...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
xAtom
915 / 740 / 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();
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2011, 03:36
Привет! Вот еще темы с ответами:

Перевести с Паскаля на C++ - C++
как заменить этот же код на С++ ?? const nmax = 100; type arr = array of real; var a:arr; i,j,n,imax,jmax:integer; ...

перевести в си++ из паскаля - C++
var n:longint; i,c:integer; s:string; A:array of boolean; begin write('Введите N: '); readln(n); str(n,s); ...

Перевести из Паскаля на С++ - C++
var d, m: integer; begin writeln('Введіть день'); readln (d); writeln('Введіть мiсяць'); readln (m); case m of 1, 3, 5, 7,...

Перевести с Паскаля на С++ - C++
Здравствуйте! Можете помочь, мне надо перевести код с Паскаля на С++ (код паскаля на фото). Вот что получилось у меня. Но код не...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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