Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 02.08.2010
Сообщений: 9
1

Программа расчитывает время и расстояние и выводит в виде диаграммы.

03.08.2010, 03:09. Просмотров 997. Ответов 3
Метки нет (Все метки)

Есть три самолета(S1,S2,S3) и два города(N и M). Данные о скоростях самолетов и расстоянии между городами должен вводить ползователь, нужна проверка что бы S1<S2,S3.
Два самолета(S1,S2) вылетают из города N в город M в тоже время им на встречу вылетает S3 из города M в город N. Самолет S1 долетает до S3 потом разворачивается и летит к S2, потом от S2 к S3 и т.д. пока самолеты не столкнутся( когда расстояние между самолетами будет 40 метров).
Нужно построить диаграмму по вертикали время преодоления отрезка от от S2 до S3 или от S3 до S2, а по горизонтали длину соответствующих отрезков.
Вот мой неработающий бред
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Program dz;
uses crt,graph;
var
 t1,t2,t3,t4,t5,t6,t7,t8:real;
 l1,l2,l3,l4,l5,l6,l7,l8:real;
 S1,S2,S3,l:real;
 i:byte;
Procedure Vvod;
 Begin
  Writeln ('Vvedite skorost S1 (minimum 100 maximum 300)');
  Readln (vm);
  Writeln ('Vvedite skorost S2 (maximum 100) ');
  Readln (vsh);
  Writeln ('Vvedite skorost S3 (maximum 100)');
  Readln (vsk);
  Writeln ('Vvedite rastoyanie L');
  Readln (L);
 End;
  
Procedure Raschet (S1,S2,S3,L:byte);
 Begin
  t1:=l/(S1+S3);
  l1:=t1*S1;
  t2:=l1/(S1+S2);
  l2:=t2*S1;
  t3:=l2/(S1+S3);
  l3:=t3*S1;
  t4:=l3/(S1+S2);
  l4:=t4*S1;
  t5:=l4/(S1+S3);
  l5:=t5*S1;
  t6:=l5/(S1+S2);
  l6:=t6*S1;
  t7:=l6/(S1+S3);
  l7:=t7*S1;
  t8:=l7/(S1+S2);
  l8:=t8*S1;
 end;
Procedure Grafik;
const god:array[1..8] of real=(t1,t2,t3,t4,t5,t6,t7,t8);
      cen:array[1..8] of real=(l1,l2,l3,l4,l5,l6,l7,l8);
var i,j,gd,gm,x0,y0,w:integer;
    mx,h:real;
    s:string;
Begin
clrscr;
gd:=0;
initgraph(gd,gm,'');
w:=18;{shirina stolbcov}
x0:=29;{left krai diagramm}
y0:=410;{nignii krai}
mx:=cen[1];
for i:=1 to 8 do
if cen[i]>mx then mx:=cen[i];{naxodim maximum}
h:=(y0-40)/mx;{masshtab po vertikali}
for i:=1 to 8 do
 begin
  setcolor(i+1);{cvet}
  Setfillstyle(i+1,i+1);{stil zapolnenia}
  bar3d(x0+4*w*(i-1),y0-round(cen[i]*h),x0+w*(4*i-2),y0,15,topon);
  outtextXY(x0+4*w*(i-1),y0+18,god[i]);{vivodim po nizu vremya}
  str(cen[i]:5:2,s);{preobrazuem rasstoyanie v stroku}
  outtextXY(x0+4*w*(i-1)+w,y0-round(cen[i]*h)-20,s);{vivodim rasstoyanie vishe stolbika}
 end;
readln
end;
 
Begin
vvod;
Raschet;
Grafik;
end.
П.С. не судите строго...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2010, 03:09
Ответы с готовыми решениями:

После ввода времени в минутах программа выводит, какое расстояние в метрах пройдёт свет за это время
Выполнил данную задачу, но преподаватель сказал что не верно, вставляю код, подскажите в чём ошибка...

не правильно расчитывает время сортировки и количество сравнений и присваений
Помогите разобраться в программе не правильно расчитывает время сортировки и количество сравнений...

Программа , которая выводит время, за которое программа работает
Вообщем, нужно что бы считалось время от начала работы программы, и выводилось на экран.

программа не расчитывает десятые доли чисел
День добрый! Подскажите, почему программа (см. ниже) расчитывает частное (7/9) как 0 а не как 0,8?...

3
Модератор
61721 / 46201 / 31872
Регистрация: 18.05.2008
Сообщений: 111,466
03.08.2010, 08:37 2
Цитата Сообщение от TNA400 Посмотреть сообщение
нужна проверка что бы S1<S2,S3.
А не наоборот? Если самолет s1 снует между s2,s3, то скорость его должна быть больше чем у тех самолетов.
Вообще это вариация классической задачи о двух путниках и мухе.

Добавлено через 21 минуту
Насчет диаграммы с двумя измерениями не понял, а решается так.
Исходные данные для диаграмм записываются в массивы.

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
uses crt;
var v1,v2,v3,r:real;
    t,d:array[1..100] of real;
    n,i,j:byte;
begin
clrscr;
write('Расстояние между городами r=');
readln(r);
repeat
writeln('Введите скорости 3х самолетов, s1>s2,s3');
readln(v1,v2,v3);
until (v1>v2)and(v1>v3);
n:=0;
while r>40 do{пока расстояние больше 40 м}
 begin
  n:=n+1;{от 2 к 3}
  t[n]:=r/(v1+v3);{время}
  d[n]:=t[n]*v1;{путь}
  r:=r-d[n];{новое расстояние}
  n:=n+1;{от 3 к 2}
  t[n]:=r/(v1+v2);{время}
  d[n]:=t[n]*v1;{путь}
  r:=r-d[n];{новое расстояние}
 end;
writeln('Время отрезков:');
for i:=1 to n do
write(t[i]:8:2);
writeln;
writeln('Длины отрезков:');
for i:=1 to n do
write(d[i]:8:2);
writeln;
readln
end.
1
0 / 0 / 0
Регистрация: 02.08.2010
Сообщений: 9
03.08.2010, 10:25  [ТС] 3
Тьфу, да именно так S1>S2,S3. Опечатался.
Нет не 2 измерения, диаграмма должна изменятся только по длине отрезка, а а время просто как подпись.
Да и как перевести результат времени из дробного числа в часы, минуты, секунды.
0
Модератор
61721 / 46201 / 31872
Регистрация: 18.05.2008
Сообщений: 111,466
03.08.2010, 10:57 4
и как перевести результат времени из дробного числа в часы, минуты, секунды.
А зачем? Можно же и просто 2,35 часа. Но если очень нужно, то так
Pascal
1
2
3
4
5
var h,m,s:word;
..................
h:=trunc(t[i]);
m:=trunc(frac(t[i])*60);
s:=trunc(frac(t[i])*3600-m*60);
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.08.2010, 10:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Не выводит данные во время работы программа
При работе программы не выводятся результаты , а как тока код весь отработал так выводится все...

Программа выводит значения в виде Nan при некоторых условиях в уравнении
Здравствуйте! Помогите разобраться. Написал программу для решения уравнений вида x^n=a. Почему при...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.