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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2013, 19:34   #1
Sheva95
Пользователь
 
Регистрация: 15.01.2013
Сообщений: 16
По умолчанию Перевести из Pascal в C++ (VS2008)

Вобщем задание было:по выбору пользователя через оператор Switch решить указаное задание. И оформить все это в оконно-текстовом интерфейсе.

1. площадь треугольника по координатам его вершин
2. сопротивление последовательного соединения 5-и проводников
3. сопротивление последовательного соединения 3 - проводников

Вот код:
program l_4_2;
uses crt;
label st;
const str='* * * * * * * * * * * * * * * *';
var suma,r,r3:real; n,x,y:integer; otveti:integer;
function f(suma:real):real;
var sum,x1,x2,x3,y1,y2,y3:real;
begin
writeln('vvedite koordinati е1,е2,е3,г1,г2,г3');
readln(x1,x2,x3,y1,y2,y3);
sum:=abs((x1-x3)*(y2-y3)-(x2-x3)*(y1-y3))/2;
writeln('S treugolnika= ',sum:4:1);
end;
function f2(R:real):real;
var op,U,I:real; z:integer;
begin
for z:=1 to 5 do
begin
writeln('Vvedite U,I');
readln(u,i);
op:=u/i;
writeln(z:2,')Pri U=',U:4:2,' ,i I=',I:4:2,' R=',op:4:2);
end;
end;
function f3(r3:real):real;
var op,U,I:real; z:integer;
begin
for z:=1 to 3 do
begin
writeln('‚Vveditr U,I');
read(u);
read(i);
op:=u/i;
writeln(z:2,')Pri U=',U:4:2,' ,i I=',I:4:2,' R=',op:4:2);
end;
end;
(тут уже оформление интерфейса):

BEGIN
st: ClrScr;
gotoXY(20,8);
write(str);
writeln;
gotoXY(22,8);
y:=9;
repeat
gotoxy(20,y);
writeln('*');
inc(y);
until y=15;
y:=9;
repeat
gotoxy(50,y);
writeln('*');
inc(y);
until y=15;
gotoXY(20,15);
write(str);
gotoXY(22,11);
writeln('Viberite zadanie.1,2 ili 3?');
gotoXY(24,12);
read(n);
gotoXY(28,16);
case n of
1:f(suma);
2:f2(R);
3:f3(R3);
end;
writeln('1 - vernutsya k viboru zadach');
readln(otveti);
if otveti=1 then
begin
goto St;
ClrScr;
end
else
write;
readln;
END.

Спасибо большое, если кто поможет перевести...
Sheva95 вне форума Ответить с цитированием
Старый 19.03.2013, 23:27   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
Хорошо

Вот что у меня получилось, проверяйте... Если будут вопросы по коду пишите... Посмотрим
Код:
#include <iostream>
#include <stdlib.h>
#include <conio.h>

using namespace std;

void area(void);
void resist(int pr);

int main()
{
	char ch;

	system("chcp 1251 > nul");

	for(;;)
	{
		system("CLS");
		cout << " Выберите задание." << "\n [1] Площадь треугольника" << "\n [2] Сопрот. для 5 проводников" << "\n [3] Сопрот. для 3 проводников" << "\n [0] Выход" << endl;
		ch = _getch();
		switch(ch)
		{
		case '1':	area();		_getch();	break;
		case '2':	resist(5);	_getch();	break;
		case '3':	resist(3);	_getch();	break;
		case '0':	return 0;
		default:
			cout << "\n Вы ввели неверное значение";
			_getch();
		}
	}
	return 0;
}

/* Площадь треугольника */
void area(void)
{
	int		x1, x2, x3;
	int		y1, y2, y3;
	int		S = 0;
	
	system("CLS");
	cout << "\n Введите координаты треугольника: \n" << endl;
	
	cout << " x1 y1 - ";	cin >> x1 >> y1;
	cout << " x2 y2 - ";	cin >> x2 >> y2;
	cout << " x3 y3 - ";	cin >> x3 >> y3;

	S = abs((x1-x3)*(y2-y3)-(x2-x3)*(y1-y3))/2;
	cout << "\n Площадь треугольника S = " << S << endl;
	
	return;
}

/* Вычисление сопротивления в цепи */
void resist(int pr)
{
	int		i;
	float	U = 0.0, I = 0.0, R = 0.0;
	
		system("CLS");
		cout << "\n Введите напряжение(U) и силу тока(I) для " << pr << " элементов" << endl;
		for(i = 0; i < pr; i++)
		{
			cout << "\n ************************ \n [" << i+1 << "] элемент" << endl;
			cout << " U" << i+1 << " = ";	cin >> U;
			cout << " I" << i+1 << " = ";	cin >> I;
			cout << " Сопротивление(R) = " << U/I << endl;
			R += (U/I);
		}
		cout << "\n **************************** \n Общее сопротивление в цепи = " << R << endl;
	return;
}
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевести на С++ (Pascal) spinogryz_ua Помощь студентам 4 23.11.2012 12:04
Перевести код с Pascal на C++ Aaaaaa111 Помощь студентам 1 22.02.2012 14:28
перевести с++ в pascal ApXaHreL Помощь студентам 1 19.06.2011 17:41
Win32 API. VS2008. Как создать приложение win32 в vs2008? Aleksandr_Yanov Visual C++ 4 12.09.2010 00:59
Перевести код с Pascal в C++ gigaman Общие вопросы C/C++ 1 26.03.2008 12:18