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

перевести с Паскаля на Visual C++ - C++

Восстановить пароль Регистрация
 
Deakon
0 / 0 / 0
Регистрация: 19.03.2010
Сообщений: 5
24.03.2010, 05:01     перевести с Паскаля на Visual C++ #1
помогите новичку перевсти с Паскаля на С++. Пожалуйста.
Само задание: "ПУсть дан файл целых чисел f. Определите, сколько раз в нем повторяется максимальное значение(за 1 проход)."

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
program pos;
type
mas=array[1..100] of integer;
 
procedure fileread(var f:text; var k:integer; var a:mas);
begin
assign(f,'input.txt');
reset(f);
k:=0;
while not eof(f) do begin
inc(k);
read(f,a[k]);
end;
end;
 
function MaxPos (a:mas; k:integer):integer;
var
max,n,i:integer;
begin
max:=-32768;
for i:=1 to k do
if a[i]>max then max:=a[i];
n:=0;
for i:=1 to k do
if a[i]=max then inc(n);
MaxPos:=n;
end;
 
var
f:text;
k:integer;
a:mas;
 
begin
assign(f,'input.txt');
reset(f);
fileread(f,k,a);
writeln(MaxPos(a,k));
readln
end.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2010, 05:01     перевести с Паскаля на Visual C++
Посмотрите здесь:

Перевести из паскаля в C++ C++
Перевести из паскаля в С C++
C++ C Паскаля перевести в С++
Перевести с Паскаля на C++ C++
Перевести из паскаля на c++ C++
Перевести из паскаля на c++ C++
C++ Перевести из паскаля на с++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
24.03.2010, 06:48     перевести с Паскаля на Visual 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
#incklude <iostream>
#include <fstream>
void fileread(std::ifstream &f, int &k; int *&a)
{
 if (a)
 {
  delete [] a;
  a=NULL;
 }
 f.open("input.txt");
 for (k=0; !eof(f); ++k);
 {
  a=(int *)reaaloc((void *)a,k+1);
  f>>a[k];
 }
}
int MaxPos (int *a; int k)
{
 int max,n,i;
 for (max=a[0], i=0, i<=k, ++i)
 { 
  if (a[i]>max)
  {
   max=a[i];
  }
 }
 for (i=0, n=0; i<=k;  ++i)
 {
  if (a[i]==max)
  {
   ++n;
  }
 }
 return n;
}
int mian ()
{
 std::ifstream f;
 int k;
 int *a=NULL;
 f.open('input.txt');
 fileread(f,k,a);
 cout<<MaxPos(a,k);
 return 0;
}
Где ты у себя увидел один проход? И нафига ты дважды открываешь родин файл ? Почему не закрываешь? Твоя задача и на пасе выглядит иначе:
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
program pos;
type
mas=array[1..100] of integer;
 
procedure fileread(var f:text; var k:integer; var a:mas);
begin
assign(f,'input.txt');
reset(f);
k:=0;
while not eof(f) do begin
inc(k);
read(f,a[k]);
end;
close(f);
end;
 
function MaxPos (a:mas; k:integer):integer;
var
max,n,i:integer;
begin
max:=-32768;
n:=0;
for i:=1 to k do
begin
if a[i]>max then
begin
max:=a[i];
n:=0;
end;
if a[i]=max then inc(n);
end;
MaxPos:=n;
end;
var
f:text;
k:integer;
a:mas;
 
begin
fileread(f,k,a);
writeln(MaxPos(a,k));
readln
end.
Тогда:
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
#incklude <iostream>
#include <fstream>
void fileread(std::ifstream &f, int &k; int *&a)
{
 if (a)
 {
  delete [] a;
  a=NULL;
 }
 f.open("input.txt");
 for (k=0; !eof(f); ++k);
 {
  a=(int *)reaaloc((void *)a,k+1);
  f>>a[k];
 }
}
int MaxPos (int *a; int k)
{
 int max,n,i;
 for (max=a[0], n=0, i=0, i<=k, ++i)
 { 
  if (a[i]>max)
  {
   max=a[i];
   n=0;
  }
  if (a[i]==max)
  {
   ++n;
  }
 }
 return n;
}
int mian ()
{
 std::ifstream f;
 int k;
 int *a=NULL;
 fileread(f,k,a);
 cout<<MaxPos(a,k);
 return 0;
}
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
#incklude <iostream>
#include <fstream>
void fileread(std::ifstream &f, int &k; int *&a)
{
 if (a)
 {
  delete [] a;
  a=NULL;
 }
 f.open("input.txt");
 for (k=0; !eof(f); ++k);
 {
  a=(int *)reaaloc((void *)a,k+1);
  f>>a[k];
 }
}
int MaxPos (int *a; int k)
{
 int max,n,i;
 for (max=a[0], i=0, i<=k, ++i)
 { 
  if (a[i]>max)
  {
   max=a[i];
  }
 }
 for (i=0, n=0; i<=k;  ++i)
 {
  if (a[i]==max)
  {
   ++n;
  }
 }
 return n;
}
int mian ()
{
 std::ifstream f;
 int k;
 int *a=NULL;
 f.open('input.txt');
 fileread(f,k,a);
 cout<<MaxPos(a,k);
 return 0;
}
Где ты у себя увидел один проход? И нафига ты дважды открываешь родин файл ? Почему не закрываешь? Твоя задача и на пасе выглядит иначе:
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
program pos;
type
mas=array[1..100] of integer;
 
procedure fileread(var f:text; var k:integer; var a:mas);
begin
assign(f,'input.txt');
reset(f);
k:=0;
while not eof(f) do begin
inc(k);
read(f,a[k]);
end;
close(f);
end;
 
function MaxPos (a:mas; k:integer):integer;
var
max,n,i:integer;
begin
max:=-32768;
n:=0;
for i:=1 to k do
begin
if a[i]>max then
begin
max:=a[i];
n:=0;
end;
if a[i]=max then inc(n);
end;
MaxPos:=n;
end;
var
f:text;
k:integer;
a:mas;
 
begin
fileread(f,k,a);
writeln(MaxPos(a,k));
readln
end.
Тогда:
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
#incklude <iostream>
#include <fstream>
void fileread(std::ifstream &f, int &k; int *&a)
{
 if (a)
 {
  delete [] a;
  a=NULL;
 }
 f.open("input.txt");
 for (k=0; !eof(f); ++k);
 {
  a=(int *)reaaloc((void *)a,k+1);
  f>>a[k];
 }
 f.close();
}
int MaxPos (int *a; int k)
{
 int max,n,i;
 for (max=a[0], n=0, i=0, i<=k, ++i)
 { 
  if (a[i]>max)
  {
   max=a[i];
   n=0;
  }
  if (a[i]==max)
  {
   ++n;
  }
 }
 return n;
}
int mian ()
{
 std::ifstream f;
 int k;
 int *a=NULL;
 fileread(f,k,a);
 cout<<MaxPos(a,k);
 return 0;
}
В следющий раз буду перводить только после того, как сам исправишь исходник.
Yandex
Объявления
24.03.2010, 06:48     перевести с Паскаля на Visual C++
Ответ Создать тему
Опции темы

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