Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2014, 20:24   #1
vigorouz
Новичок
Джуниор
 
Регистрация: 21.05.2014
Сообщений: 2
По умолчанию Перевод из паскаля в С++

с++ вообще не знаю.
Помогите, пожалуйста( времени вообще мало, спросить некого.

Код:
var
  a: array[1..100] of real;
  x,y,z,s,buf: real;
  i,j,n: integer;
begin
  write('введите количество точек: ');
  readln(n);               {количество точек}
  for i:=1 to n do
  begin
    writeln('введите координаты ',i,' точки:');
    read(x,y,z);           {вводим координаты каждой точки}
    s:=(sqrt(x*x+y*y+z*z));
    writeln('расстояние ',i,' = ',s:6:2);
    a[i]:=s;               {расстояние - в массив}
  end;
  readln;
                           {упорядочиваем массив}
  for i:=2 to n do
    for j:=n downto i do
    if a[j-1]>a[j] then
    begin
      buf:=a[j-1];
      a[j-1]:=a[j];
      a[j]:=buf;
    end;
  write('расстояния, отсортированные по неубыванию:');
  for i:=1 to n do write(a[i]:5:2,' '); {выводим на печать}
  readln;
end.

Последний раз редактировалось vigorouz; 21.05.2014 в 21:23.
vigorouz вне форума Ответить с цитированием
Старый 21.05.2014, 22:14   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Немного переработано:
Код:
#include <iostream>
#include <locale>
#include <cstdlib>
#include <cmath>

using namespace std;

void BubbleSort(double [], int);
void PrintArray(double [], int);
const int MAX = 100;

int main() {
	double A[MAX] = {0};
	int n;
	int x, y, z;
	double s;
	
	setlocale(0, "rus");

	cout << "\n Введите количество точек: ";
	cin >> n;

	for(int i = 0; i < n; i++) {
		cout << "\n Координаты точки № " << (i + 1) << "\n --------------------"<< endl;;
		cout << " x = ";
		cin >> x;
		cout << " y = ";
		cin >> y;
		cout << " z = ";
		cin >> z;

		s = sqrt((double)(x * x) + (y * y) + (z + z));
		A[i] = s;
		cout << "\n Расстояние " << (i + 1) << " = " << s << endl;
	}

	/* Сортировка */
	BubbleSort(A, n);
	/* Вывод на экран */
	cout << "\n Расстояния, отсортированные по возрастанию:" << endl;
	PrintArray(A, n);

	system("pause");
	return 0;
}

void BubbleSort(double A[MAX], int n) {
	for(int i = n-1; i > 0; i--) {
	bool flag = false;
	for(int j = 0; j < i; j++) {
		if(A[j] > A[j+1]) {
			double temp = A[j];
			A[j] = A[j+1];
			A[j+1] = temp;
			flag = true;
			}
		}
	if(!flag)	// Если перестановок не было, завершить сортировку
		break;
	}
	return;
}

/* Печать массива */
void PrintArray(double A[MAX], int n) {
	cout << endl;
	for(int i = 0; i < n; i++) {
		cout << " [" << A[i] << "]";
	}
	cout << endl;
	return;
}
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод на C++ с паскаля dimka123 Помощь студентам 0 12.04.2014 23:16
перевод из паскаля на с++ Olgaandsasha Общие вопросы C/C++ 0 06.03.2014 19:43
Перевод с паскаля на С++ trum Помощь студентам 0 01.11.2013 19:23
Перевод с Паскаля на С++ MrJenika Помощь студентам 2 20.11.2009 20:42