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

Pascal to C++, задача с функцией - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Картинка в движении http://www.cyberforum.ru/cpp-beginners/thread411940.html
Здрасьте люди добрыеее ! Помогите создать графическую программу на языке си , любое главное чтоб она двигалась мне надо завтра курсовую сдать плз..
C++ Обращение к методу string Подскажите пожалуйста, как обратиться к методу string передаваемой по ссылке в функцию? http://www.cyberforum.ru/cpp-beginners/thread411932.html
Чтение данных из файла C++
Вот программа она работает по алгоритму дейкстры //Нахождение расстояния от источника до всех вершин в графе //с неотрицательными весами (метод Дейкстры). //Нахождение кратчайшего пути из S в T. #include <iostream> #include<locale.h> #include <conio.h> #include <math.h> #include <string> #include <windows.h>
C++ Найти точку на плоскости, сумма расстояний от которой до остальных точек множества максимальна
Друзья, мне вновь необходима любая ваша помощь по теме) Задача такова: решить задачу, с помощью структуру для хранения координат точки, нужно найти точку на плоскости сумма расстояний от которой до остальных точек множества максимальна.
C++ как сделать чтобы программа после определенного срока перестала работать http://www.cyberforum.ru/cpp-beginners/thread411929.html
нужно сделать, чтобы с момента запуска приложение работало,например, 2 года. а потом - кердык. база,чтобы читалась, а экзешник - не работал уже после этого срока.
C++ Считать текст из файла и вывести на экран только предложения, содержащие введенное с клавиатуры слово Написать программу, которая считывает текст из файла и выводит на экран только предложения, содержащие введенное с клавиатуры слово. Добавлено через 4 минуты данную программу нужно выполнить в BORLANDC 3,1 подробнее

Показать сообщение отдельно
Decart
1 / 1 / 1
Регистрация: 19.12.2011
Сообщений: 19

Pascal to C++, задача с функцией - C++

19.12.2011, 21:03. Просмотров 274. Ответов 3
Метки (Все метки)

Написал задачу на Паскале. Нужно перевести ее для C++,а у меня что-то не выходит с синтаксисом.

Условие:Заданы одномерные массивы(вектора) целых чисел со знаком: v1(m), v2(n), v3(k).
Функция: длина вектора. Из векторов v1,v2,v3 одинаковой размерности,построить вектор, как сумму векторов, которые имеют наибольшую и наименьшую длину (если таких векторов несколько,взять в каждом случае тот вектор, который имеет наименьший номер). Вывести длину каждого вектора,отобранные вектора,вывести построенный вектор.

Паскаль:
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
Program vector;
Const m=5;n=5;k=5;
Type ms=array[1..k] of integer; {объявляем по максимальному числу}
 
Var v1,v2,v3,vmx,vmn,vs:ms; {vmx -вектор мах длины, vmn-минимальной)}
i:byte; dl1,dl2,dl3:real;
 
 
function modv(a:ms;kol:integer):real; { в массив а передадим конкретный v и кол-во элементов в нем}
var j:byte;S:integer;
begin
s:=0;
for j:=1 to kol do
S:=s+sqr(a[j]);
modv:=sqrt(s);
end;
begin
for i:=1 to m do begin
Write('v1[',i,']');readln(v1[i]); end;
dl1:=modv(v1,m);
 
for i:=1 to n do begin
Write('v2[',i,']');readln(v2[i]); end;
dl2:=modv(v2,n);
for i:=1 to k do begin
Write('v3[',i,']');readln(v3[i]); end;
dl3:=modv(v3,k);
 
if (k=m)and (k=n) then begin {для одноmерных }
if (dl1dl2) and(dl2dl3) and (dl3dl1) then begin { если среди длин нет}
if (dl1dl2) and (dl1dl3) then vmx:=v1 else { одинаковых то запоминаем векторы с наименьшей}
if (dl2dl1) and (dl2dl3)then vmx:=v2 else vmx:=v3; { и наиболшей длиной }
if (dl1dl2) and (dl1dl3) then vmn:=v1 else
if (dl2dl1) and (dl2dl3)then vmn:=v2 else vmn:=v3; end
else begin
if(dl1=dl2) and (dl1dl3) then vmn:=v1; {при совпадении двух выбираем вектор с наименьшим номером}
if(dl2=dl3) and (dl2dl1) then vmn:=v2;
if(dl1=dl3) and (dl1dl2) then vmn:=v1;
if(dl1=dl2) and (dl1dl3) then vmx:=v1;
if(dl2=dl3) and (dl2dl1) then vmx:=v2;
if(dl1=dl3) and (dl1dl2) then vmx:=v1;
if(dl1=dl2) and (dl1=dl3) then begin vmn:=v1; vmx:=v2;end; {при совпадении трех выбираем первый и второй}
end;
writeln(dl1:0:4,' ',dl2:0:4,' ',dl3:0:4);
for i:=1 to k do Vs[i]:=vmn[i]+vmx[i];
for i:=1 to k do
Write(vmn[i],' '); Writeln;
for i:=1 to k do
Write(vmx[i],' '); writeln;
for i:=1 to k do Write(vs[i],' ');writeln; end else
writeln('ODNOMERNYX NET');
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include <conio.h>
#include <cmath>
#include <stdafx.h>
using namespace std;
//function
 
int modv(int a[i];int kol){
    char j;
    int s;
    s=0;
    for(j=1;j<=kol;j++)
        s=s+pow(a[j],2);
    modv=sqrt(s);
    return modv;
}
 
//osnovnaya programma
int main()
{
    int v1,v2,v3,vmx,vmn,vs;
    char i;
    double dl1,dl2,dl3;
    clrscr();
    for(i=1;i<=m;i++){
        cout<<"v1["<<i<<"]=";
        cin>>v1[i];
    }
        dl1=modv(v1,m);
 
    for(i=1;i<=n;i++){
        cout<<"v2["<<i<<"]=";
        cin>>v2[i];
    }
        dl2=modv(v2,n);
 
    for(i=1;i<=;i++){
        cout<<"v3["<<i<<"]=";
        cin>>v1[i];
    }
        dl3=modv(v3,k);
 
        if((k=m) && (k=n){//dlya odnomernih
            if((dl1!=dl2)&&(dl2!=dl3)&&(dl3!=dl1)) {//esli sredi dlin net ravnih
                if((dl1>dl2)&&(dl1>dl3)) vmx=v1
                    else if((dl2>dl1)&&(dl2>dl3)) vmx=v2 else vmx=v3;
                    if((dl1<dl2)&&(dl1<dl3)) vmn=v1
                    else if((dl2<dl2)&&(dl2<dl3)) vmn=v2 else vmn=v3;
            }
            else {
                if((dl1==dl2)&&(dl1<dl3)) vmn=v1;
                if((dl2==dl3)&&(dl2<dl1)) vmn=v2;
                if((dl1==dl3)&&(dl1<dl2)) vmn=v1;
                if((dl1==dl2)&&(dl1>dl3)) vmx=v1;
                if((dl2==dl3)&&(dl2>dl1)) vmx=v2;
                if((dl1==dl3)&&(dl1>dl2)) vmx=v1;
                if((dl1==dl2)&&(dl1==dl3)){
                    vmn=v1;
                    vmx=v2;
                }
            }
            cout<<dl1<<" "<<dl2<<" "<<dl3;
            for(i=1;i<=k;i++)
                vs[i]=vmn[i]+vmx[i];
            for(i=1;i<=k;i++)
                cout<<vmn[i]<<" ";
            cout<<endl;
            for(i=1;i<=k;i++)
                cout<<vmx[i]<<" ";
            cout<<endl;
            for(i=1;i<=k;i++)
                cout<<vs[i]<<" ";
            cout<<endl;
        }
        else cout<<"odnomernih net";
        cout<<endl;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru