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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2009, 15:11   #1
Foxtrot_1
Пользователь
 
Аватар для Foxtrot_1
 
Регистрация: 14.06.2009
Сообщений: 67
Стрелка Перевод из Pascal в С

1.Написать программу для учета радиостанций.
2.Параметры станций (вводные данные): координаты,дальность действия (от 0 до 50 км).
3.Установить возможность связи двух абонентов с заданными координатами, а также ближайшие к ним
станции.
//----------------------------------------------------------------------
Помогите перевести в С!!!
//----------------------------------------------------------------------
Код:
uses
crt;
var
x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,z1,z2,z3,z4,z5,z6,z7,z8 :real;
begin
clrscr;
writeln('dalnost deystvia 1,2,3 radiostanciy = 50 kilometrov');
writeln('vvedite koordinaty 1 radiostanciy');
readln(x1,y1);
writeln('vvedite koordinaty 2 radiostanciy');
readln(x2,y2);
writeln('vvedite koordinaty 3 radiostanciy');
readln(x3,y3);
writeln('vvedite koordynaty 1 cheloveka');
readln(x4,y4);
writeln('vvedite koordynaty 2 cheloveka');
readln(x5,y5);
z1:=sqrt(sqr(x4-x1)+sqr(y4-y1));
z2:=sqrt(sqr(x4-x2)+sqr(y4-y2));
z3:=sqrt(sqr(x4-x3)+sqr(y4-y3));
z4:=sqrt(sqr(x5-x1)+sqr(y5-y1));
z5:=sqrt(sqr(x5-x2)+sqr(y5-y2));
z6:=sqrt(sqr(x5-x3)+sqr(y5-y3));
z7:=sqrt(sqr(x5-x4)+sqr(y5-y4));
z8:=sqrt(sqr(x4-x5)+sqr(y4-y5));
writeln('1 chelovek');
if z1<=50 then
begin
writeln('svyas s 1 radiostanciey est');
writeln('rasstoyanie do nee=' ,z1:3:3, 'metrov');
end;
if z1>50 then
begin
writeln('svyasi s 1 radiostanciey net');
writeln('rasstoyanie do nee=',z1:3:3, 'metrov',' ','previshenie na',' ',(z1-50):3:3, 'metrov');
end;
if z2<=50 then
begin
writeln('svyas s 2 radiostanciey est');
writeln('rasstoyanie do nee=',z2:3:3, 'metrov');
end;
if z2>50 then
begin
writeln('svyasi s 2 radiostanciey net');
writeln('rasstoyanie do nee=',z2:3:3, 'metrov',' ','previshenie na',' ',(z2-50):3:3, 'metrov');
end;
if z3<=50 then
begin
writeln('svyas s 3 radiostanciey est');
writeln('rasstoyanie do nee=',z3:3:3, 'metrov');
end;
if z3>50 then
begin
writeln('svyasi s 3 radiostanciey net');
writeln('rasstoyanie do nee=',z3:3:3, 'metrov',' ','previshenie na',' ',(z3-50):3:3, 'metrov');
end;
if z8<=50 then
begin
writeln('svyas s 2 chelovekom est');
writeln('rasstoyanie do nego=',z8:3:3, 'metrov');
end;
if z8>50 then
begin
writeln('svyas s 2 chelovekom net');
writeln('rasstoyanie do nego=',z8:3:3, 'metrov',' ','previshenie na',' ',(z5-50):3:3, 'metrov');
end;
writeln('2 chelovek');
if z1<=50 then
begin
writeln('svyas s 1 radiostanciey est');
writeln('rasstoyanie do nee=',z4:3:3, 'metrov');
end;
if z1>50 then
begin
writeln('svyasi s 1 radiostanciey net');
writeln('rasstoyanie do nee=',z4:3:3, 'metrov',' ','previshenie na',' ',(z1-50):3:3, 'metrov');
end;
if z2<=50 then
begin
writeln('svyas s 2 radiostanciey est');
writeln('rasstoyanie do nee=',z5:3:3, 'metrov');
end;
if z2>50 then
begin
writeln('svyasi s 2 radiostanciey net');
writeln('rasstoyanie do nee=',z5:3:3, 'metrov', ' ','previshenie na',' ',(z2-50):3:3, 'metrov');
end;
if z3<=50 then
begin
writeln('svyas s 3 radiostanciey est');
writeln('rasstoyanie do nee=',z6:3:3, 'metrov');
end;
if z3>50 then
begin
writeln('svyasi s 3 radiostanciey net');
writeln('rasstoyanie do nee=',z6:3:3, 'metrov',' ','previshenie na',' ',(z3-50):3:3, 'metrov');
end;
if z7<=50 then
begin
writeln('svyas s 1 chelovekom est');
writeln('rasstoyanie do nego=',z7:3:3, 'metrov');
end;
if z7>50 then
begin
writeln('svyas s 1 chelovekom net');
writeln('rasstoyanie do nego=',z7:3:3, 'metrov',' ', 'previshenie na',' ',(z4-50):3:3, 'metrov');
end;
writeln('press any key for exit');
readkey;
end.
Изображения
Тип файла: jpg strctr.jpg (37.0 Кб, 146 просмотров)
Всегда бывает лучше, чем ты хочешь!!!

Последний раз редактировалось Foxtrot_1; 21.06.2009 в 00:07.
Foxtrot_1 вне форума Ответить с цитированием
Старый 20.06.2009, 15:49   #2
Foxtrot_1
Пользователь
 
Аватар для Foxtrot_1
 
Регистрация: 14.06.2009
Сообщений: 67
По умолчанию

Как сделать, чтобы прога выдавала ответ в километрах???
Всегда бывает лучше, чем ты хочешь!!!
Foxtrot_1 вне форума Ответить с цитированием
Старый 20.06.2009, 16:07   #3
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию

используйте тег CODE.
bondik вне форума Ответить с цитированием
Старый 20.06.2009, 16:15   #4
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

>Как сделать, чтобы прога выдавала ответ в километрах???
Дели на 1000
Kostia вне форума Ответить с цитированием
Старый 20.06.2009, 17:36   #5
Foxtrot_1
Пользователь
 
Аватар для Foxtrot_1
 
Регистрация: 14.06.2009
Сообщений: 67
По умолчанию

Пример можно
writeln('rasstoyanie do nee=',z1:3:3, 'metrov');
Всегда бывает лучше, чем ты хочешь!!!
Foxtrot_1 вне форума Ответить с цитированием
Старый 20.06.2009, 17:38   #6
bullvinkle
Временно — юрист.
Форумчанин
 
Аватар для bullvinkle
 
Регистрация: 31.03.2008
Сообщений: 204
По умолчанию

Цитата:
Помогите перевести в С!!!
А что тут переводить?
В начале программы пишем
Код:
#include <iostream>
#include <math.h>
using namespace std;
Вместо глвных BEGIN END пишем int main(){ <тело> }
if-else выглядит так:
Код:
if(<условие>)
{
.....
}
else
{
.....
}
writeln
Код:
cout << "<тут пишем чего хотим>\n" << <тут, еслинадо, переменная> << "'\n'";
sqrt так и остается, либо pow(<твоя переменная>, 1*1.0/2)
вместо := пишем =
readkey = cin.get();
Как и в паскале точка с запятой после каждой строки, кроме операторных скобок.
Вместо var: x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,z1,z2 ,z3,z4,z5,z6,z7,z8 :real;
пишем double x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,z1,z2 ,z3,z4,z5,z6,z7,z8l;

Вроде все.
bullvinkle вне форума Ответить с цитированием
Старый 20.06.2009, 19:00   #7
Foxtrot_1
Пользователь
 
Аватар для Foxtrot_1
 
Регистрация: 14.06.2009
Сообщений: 67
По умолчанию

Вот новая прога, считает хорошо условия ТЗ
Вот её бы на С!!!
//-----------------------------------------------
Код:
uses crt;
type
Point=record
      x,y:real;
      end;
Stanc=record
      koor:Point;
      daln:byte;
      end;
function Rasst(a,b:Point):real;
begin
Rasst:=sqrt(sqr(a.x-b.x)+sqr(a.y-b.y));
end;
var m:array[1..4] of Stanc;
    ab1,ab2:Stanc;
    i,k:byte;
    min:real;
begin
clrscr;
writeln('Vvedite dannye po stancyam, dalnost ne dolgna prevyshat 50 km:');
for i:=1 to 4 do
 begin
  writeln('Stancya ',i);
  write(' Koordinata X=');readln(m[i].koor.x);
  write(' Koordinata Y=');readln(m[i].koor.y);
  repeat
  write(' Dalnoct=');readln(m[i].daln);
  until m[i].daln in [1..50];
 end;
writeln('Vvedite dannye po abonentam:');
writeln(' Abonent 1:');
write('  Koordinata X=');readln(ab1.koor.x);
write('  Koordinata Y=');readln(ab1.koor.y);
repeat
write('  Dalnoct=');readln(ab1.daln);
until ab1.daln in [1..50];
writeln(' Abonent 2:');
write('  Koordinata X=');readln(ab2.koor.x);
write('  Koordinata Y=');readln(ab2.koor.y);
repeat
write('  Dalnoct=');readln(ab2.daln);
until ab2.daln in [1..50];
if (Rasst(ab1.koor,ab2.koor)<=ab1.daln)and(Rasst(ab1.koor,ab2.koor)<=ab2.daln)
then writeln('Svyas megdy abonentami vozmogna!')
else writeln('Svyas megdy abonentami ne vozmogna!');
min:=50;k:=1;
for i:=1 to 4 do
if Rasst(ab1.koor,m[i].koor)<min then
 begin
  min:=Rasst(ab1.koor,m[i].koor);
  k:=i;
 end;
writeln('Bligayshaya k abonenty 1, stancya',k);
min:=50;k:=1;
for i:=1 to 4 do
if Rasst(ab2.koor,m[i].koor)<min then
 begin
  min:=Rasst(ab2.koor,m[i].koor);
  k:=i;
 end;
writeln('Bligayshaya k abonenty 2, stancya',k);
writeln('press any key for exit');
readkey;
end.
Изображения
Тип файла: jpg strctr.jpg (42.7 Кб, 153 просмотров)
Всегда бывает лучше, чем ты хочешь!!!

Последний раз редактировалось Foxtrot_1; 21.06.2009 в 00:07.
Foxtrot_1 вне форума Ответить с цитированием
Старый 20.06.2009, 19:00   #8
Foxtrot_1
Пользователь
 
Аватар для Foxtrot_1
 
Регистрация: 14.06.2009
Сообщений: 67
По умолчанию

ТЗ:
1.Написать программу для учета радиостанций.
2.Ввести параметры:
а) координаты,дальность действия стационарных радиостанций (от 0 до 50 км);
б) координаты 2-х людей,дальность действия их переносных радиостанций (от 0 до 50 км);
3.Установить возможность связи двух абонентов с заданными координатами, а также ближайшие к ним станции.
Всегда бывает лучше, чем ты хочешь!!!
Foxtrot_1 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перевод с Pascal в C++, ну не знаю я С++ :) roobpass Помощь студентам 1 24.04.2009 18:27
перевод из Pascal в C++ Valerik Общие вопросы C/C++ 5 22.04.2009 21:57
Перевод кода из Pascal в Object Pascal zemskov77 Общие вопросы Delphi 1 03.01.2009 09:37